dev@jax-ws.java.net

Re: deployment bug?

From: Ryan Shoemaker - JavaSoft East <Ryan.Shoemaker_at_Sun.COM>
Date: Fri, 22 Sep 2006 14:32:57 -0400

Vijay Ramachandran wrote:
> Ryan,
>
> How does the @WebService annotation look ? Is there a wsdlLocation
> attribute that points to the wsdl location correctly.
>

I have:

@WebService(serviceName="Coordinator",
             portName="ActivationCoordinator",
             endpointInterface = "com.sun.org.xmlsoap.ws.coord.ActivationCoordinatorPortType",
             targetNamespace = "http://schemas.xmlsoap.org/ws/2004/10/wscoor",
             wsdlLocation = "WEB-INF/wsdl/wscoor.wsdl")
public class ActivationCoordinatorPortTypeImpl implements ActivationCoordinatorPortType {...}

and then my war has the wsdl under WEB-INF/wsdl/wscoor.wsdl.

FWIW, Bobby suggested putting a copy of the ws-addressing xml types in my
war file and edit my wsdl to point to it and that worked fine.

> This exception is caused because in the JavaEE environment, you cannot
> get access to your local file system. If you are packaging WSDL, then it
> should be in your WAR/JAR and the location in the WAR/JAR relative to
> the root of the module should be specified in the wsdlLocation
> attribute.
>

I think that's exactly what I'm doing. However:

When my wsdl has this:

     <wsdl:types>
         <xs:schema>
             <xs:import
                     namespace='http://schemas.xmlsoap.org/ws/2004/08/addressing'
                     schemaLocation='http://schemas.xmlsoap.org/ws/2004/08/addressing'/>
         </>
     </>

I get the exception:

file:/D:/gf-v2b17/domains/domain1/applications/j2ee-modules/wstx-services/WEB-INF/wsdl/http:/schemas.xmlsoap.org/ws/2004/08/addressing

It looks like the system is looking for the addressing file relative to
my wsdlLocation, which seems like a bug to me.

If I place a copy of addressing.xml in WEB-INF/wsdl and change wscoor.wsdl to:

     <wsdl:types>
         <xs:schema>
             <xs:import
                     namespace='http://schemas.xmlsoap.org/ws/2004/08/addressing'
                     schemaLocation='addressing.xml'/>
         </>
     </>

it works fine.

I'd rather not bundle the address types.

Thanks,

--Ryan