On Tuesday 26 October 2010 11:46:32 am slocum wrote: > Perhaps I need to be clearer. > > The right side of the /services page looks like this: > > Endpoint address: http://localhost:8080/ppp-1.0/services/PPPWebService > WSDL : {http://ws.stuff.ppp.abc.com/}PPPServiceImplService > Target namespace: http://ws.stuff.ppp.abc.com/ > > > The top is correct. That is the URL to get to the web service. > > The WSDL line has the wrong URL for the classes generated from the WSDL (it > should be ws.ppp.abc.com), plus the PPPServiceImplService must be generated > from CXF, because it doesn't appear anywhere else. The > PPPServiceImplService is a link to the WSDl, but instead of showing my > WSDL, clicking it shows some auto-generated WSDL that only has the WSDL > operations, and none of the underlying classes. I get the same thing if I > visit the > /services/PPPWebService?wsdl URL -- an auto-generated WSDL that is > incomplete. > > As for the (2) in your response, my @WebService in the auto-generated > wsdl:portType Java class has the proper targetNamespace > (@WebService(targetNamespace = "http://ws.ppp.abc.com", name = > "PPPWebServicePortType").
You most likely need a @WebService annotation on the Implementation as well that would define the targetNamespace again as well as the serviceName and portName annotations (that would match what's in the wsdl). I'd ALSO have the one on the impl use the wsdlLocation attribute to point to the wsdl on the file system so that it loads the proper wsdl and uses it. Per JAX-WS spec, that annotation needs to be there on the implementation. CXF does allow it (as some of the things can be overridden via config or via the JaxWsServiceFactoryBean), but the spec says it should be there. XFire was not JAX-WS compliant and thus did a lot of things wrong. -- Daniel Kulp [email protected] http://dankulp.com/blog
