Right, there are basically two namespaces that need to be in the correct places and matching:
1) The SEI interface. This would be the @WebService annotation you defined on the interface. 2) On the actual implementation. If you ALSO added a @WebService annotation to the impl, that would have worked. However, the endpointName/serviceName attributes on the jaxws:endpoint override those values so that worked for you. Dan On Sunday 16 November 2008 3:22:44 am snowbug wrote: > I tried that and it didn't help. > > But then I tried the following which fixed the problem: > In my cxf spring config file, I have: > <jaxws:endpoint id="userService" implementor="#userServiceBean" > endpointName="e:UserServiceEndpoint" > serviceName="s:UserService" > address="/user" > xmlns:e="http://service.jaxws.cxf.apache.org/endpoint" > xmlns:s="http://service.jaxws.cxf.apache.org/service" /> > > I changed the "xmlns:e" and "xmlns:s" to "http://service.mycompany.com/", > so it looks like this: > <jaxws:endpoint id="userService" implementor="#userServiceBean" > endpointName="e:UserServiceEndpoint" > serviceName="s:UserService" > address="/user" > xmlns:e="http://service.mycompany.com/" > xmlns:s="http://service.mycompany.com/" /> > > It was copied from the CXF online guide, and I didn't know it's purpose. > Now it seems that this is how you specify the target name spaces for the > endpointName and serviceName in the CXF Spring config file, and it should > be changed to my own domain instead of directly using what's from the > guide. > > Thank you for the helps and inspiration! > > Benson Margulies-4 wrote: > > Put it on the @WebService annotation in the code. > > > > On Sat, Nov 15, 2008 at 7:13 PM, snowbug <[EMAIL PROTECTED]> wrote: > >> I think that is definitely the reason why it's splitted into two wsdl > >> files. > >> However, can you tell me how to set the target namespace? Looks like the > >> <jaxws:endpoint> tag does not allow targetNamespace attribute, and > >> setting > >> the "targetNamespace" in the "@WebService" annotation of my UserService > >> does > >> not help. > >> > >> I'm using the CXF Spring configuration file and the configuration looks > >> like > >> this: > >> <jaxws:endpoint id="userService" implementor="#userServiceBean" > >> endpointName="e:UserServiceEndpoint" > >> serviceName="s:UserService" > >> address="/user" > >> xmlns:e="http://service.jaxws.cxf.apache.org/endpoint" > >> xmlns:s="http://service.jaxws.cxf.apache.org/service" /> > >> > >> Right now, the annotation on the UserService is bare-bone like this: > >> @WebService > >> public interface UserService { > >> ... > >> } > >> > >> The main wsdl file begins like this: > >> <wsdl:definitions name="UserService" > >> targetNamespace="http://service.jaxws.cxf.apache.org/service"> > >> <wsdl:import > >> location="http://localhost:8080/services/user?wsdl=UserService.wsdl" > >> namespace="http://service.semarca.com/"> > >> </wsdl:import> > >> > >> And the imported wsdl file begins like this: > >> <wsdl:definitions name="UserService" > >> targetNamespace="http://service.mycompany.com/"> > >> > >> Any idea where I need to change to have it setup correctly? I couldn't > >> find > >> any additional information from the official CXF online document. > >> > >> Thank you, > >> > >> Benson Margulies-4 wrote: > >>> If you spec out the target namespaces to be the same all around, it > >>> will all land in the same place. > >>> > >>> When you switch from Simple to JAX-WS, you also switch from Aegis to > >>> JAX-B. > >>> > >>> On Sat, Nov 15, 2008 at 1:39 AM, snowbug <[EMAIL PROTECTED]> wrote: > >>>> I just found out that the schema for the User object is actually there > >>>> with > >>>> the jax-ws implementation. > >>>> > >>>> What happens is that in the generated default wsdl, right after the > >>>> open > >>>> wsdl element, there is an import line like this: > >>>> <wsdl:import > >>>> location="http://localhost:8080/services/user?wsdl=UserService.wsdl" > >>>> namespace="http://service.mycompany.com/"></wsdl:import> > >>>> > >>>> And when I type in that address in browser, I see all the schema > >>>> definitions > >>>> for the classes referenced. > >>>> > >>>> snowbug wrote: > >>>>> Thanks for the reply. > >>>>> > >>>>> I didn't specify any databinding. For the jax-ws setting, I used: > >>>>> <!-- The user soap service --> > >>>>> <bean id="userServiceBean" > >>>>> class="com.mycompany.service.UserServiceBean" /> > >>>>> > >>>>> <!-- JAX-WS based configuration --> > >>>>> <jaxws:endpoint id="userService" implementor="#userServiceBean" > >>>>> endpointName="e:userServiceEndpoint" > >>>>> serviceName="s:userService" > >>>>> address="/user" > >>>>> xmlns:e="http://service.jaxws.cxf.apache.org/endpoint" > >>>>> xmlns:s="http://service.jaxws.cxf.apache.org/service" /> > >>>>> > >>>>> > >>>>> For the simple front end based configuration, I used: > >>>>> <simple:server id="userService" > >>>>> serviceClass="com.mycompany.service.UserService" > >>>>> serviceBean="#userServiceBean" > >>>>> address="/user"/> > >>>>> > >>>>> As shown above, they both refer to the "userServiceBean" as the > >>>>> actual implementor bean class. > >>>>> > >>>>> Benson Margulies-4 wrote: > >>>>>> The issue is probably not the front-end but rather the data binding. > >>>>>> Can you post the full config of the failing case? > >>>>>> > >>>>>> On Fri, Nov 14, 2008 at 4:00 AM, snowbug <[EMAIL PROTECTED]> > >>>>>> > >>>>>> wrote: > >>>>>>> Hi, > >>>>>>> > >>>>>>> I am trying out CXF and configured my service use both the simple > >>>>>>> front > >>>>>>> end > >>>>>>> and the jax-ws front end. To illustrate the problem, let me briefly > >>>>>>> describe > >>>>>>> the service first. > >>>>>>> > >>>>>>> The service expose a method: > >>>>>>> public User getUser(int id); > >>>>>>> > >>>>>>> And the User class is a standard POJO bean that has properties > >>>>>>> like: firstName, lastName, address, etc, with corresponding getters > >>>>>>> and setters. > >>>>>>> > >>>>>>> What I noticed is that using the simple front end, the wsdl file > >>>>>>> contains a > >>>>>>> generated schema definition for the User class. However, the jax-ws > >>>>>>> front > >>>>>>> end will leave that off. > >>>>>>> > >>>>>>> I have two questions: > >>>>>>> 1. Is the schema definition for the User class important? If > >>>>>>> missing, > >>>>>>> how > >>>>>>> does the client know what to expect? > >>>>>>> 2. How to configure the jax-ws front end to also include this > >>>>>>> schema definition for the User class, if possible? > >>>>>>> > >>>>>>> Thank you in advance for your help. > >>>>>>> -- > >>>>>>> View this message in context: > >>>>>>> http://www.nabble.com/Including-schema-for-bean-classes-in-thw-wsdl > >>>>>>>-file-using-JAX-WS-tp20496933p20496933.html Sent from the cxf-user > >>>>>>> mailing list archive at Nabble.com. > >>>> > >>>> -- > >>>> View this message in context: > >>>> http://www.nabble.com/Including-schema-for-bean-classes-in-the-wsdl-fi > >>>>le-using-JAX-WS-tp20496933p20512939.html Sent from the cxf-user mailing > >>>> list archive at Nabble.com. > >> > >> -- > >> View this message in context: > >> http://www.nabble.com/Including-schema-for-bean-classes-in-the-wsdl-file > >>-using-JAX-WS-tp20496933p20520962.html Sent from the cxf-user mailing > >> list archive at Nabble.com. -- Daniel Kulp [EMAIL PROTECTED] http://dankulp.com/blog
