Sure...
<target name="wsdl" depends="createDirs"> <path id="classpath"> <fileset dir="${libDir}/xfire"> <include name="*.jar" /> </fileset> </path> <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="classpath"/> <wsgen outputDirectory="${basedir}/target/generated-source" wsdl="${wsdl.file}" package="${package.name}" overwrite="true"/> </target> Makes nice looking code, just that it's missing a setter on any unbounded schema elements, so no clients can set those fields in their requests. Cheers, Karl P > -----Original Message----- > From: Chris Thatcher [mailto:[EMAIL PROTECTED] > Sent: Friday, December 01, 2006 3:53 AM > To: user@xfire.codehaus.org > Subject: Re: [xfire-user] xfire client using jaxb [was: > help!- spring2, jaxb2 config setup] > > Karl, actually I only include that for hibernate3/ejb3, > though it may well prevent another issue which you describe. > I have had success with jaxb2 and xfire without that if I > recall. Can you send me the code or config you use to create > the server side service. It sounds like it's not actually > using the jaxb factory. > > ----- Original Message ----- > From: "Karl Palsson" <[EMAIL PROTECTED]> > To: <user@xfire.codehaus.org> > Sent: Thursday, November 30, 2006 10:47 PM > Subject: RE: [xfire-user] xfire client using jaxb [was: > help!- spring2, > jaxb2 config setup] > > > > Right, see that CDATA section about no setter? > > That's what I'm following up. I want to be able to generate > a server from a WSDL, (or for the java heads that just use > xsd's to make their types, generate the types from a schema) > and have it work. > > Without the CDATA section, and the jaxb extensions to the > schema, the services and types that xfire generates from this > schema are unusable. (Or manually patching the type after > the generation takes place) > > Being forced to include that (implementation details) in the > !schema! is a bug, at least as far as I'm concerned. > (XFIRE-509 unless someone suggests a better bug) > > Cheers, > Karl P > > > > -----Original Message----- > > From: Chris Thatcher [mailto:[EMAIL PROTECTED] > > Sent: Friday, December 01, 2006 3:31 AM > > To: user@xfire.codehaus.org > > Subject: RE: [xfire-user] xfire client using jaxb [was: > > help!- spring2, jaxb2 config setup] > > > > Starting with XMLSchema first here is a model of an object using > > lists: > > <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema > > xmlns:xs="http://www.w3.org/2001/XMLSchema" > > > > > targetNamespace="http://www.emergent.net/www/servertools/common/model" > > xmlns:tns="http://www.emergent.net/www/servertools/common/model" > > xmlns:html="http://www.w3.org/1999/xhtml" > > xmlns:jxb="http://java.sun.com/xml/ns/jaxb" > > xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" > > xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" > > jxb:extensionBindingPrefixes="xjc" > > jxb:version="1.0" > > elementFormDefault="qualified"> > > > > <xs:element name="command" type="tns:command"/> <xs:complexType > > name="command"> > > <xs:sequence> > > <xs:element ref="egt:property" maxOccurs="unbounded" > > minOccurs="0"> > > <xs:annotation><xs:appinfo><jxb:property ><jxb:javadoc> > > <!-- This conveniently adds a setter for the > list which it > > makes me crazy that jaxb wont allow --> > > <![CDATA[*/public void setProperty(List<Property> > > property) {this.property = property;}/*]]> > > > </jxb:javadoc></jxb:property></xs:appinfo></xs:annotation> > > </xs:element> > > </xs:sequence> > > <xs:attribute name="id" type="xs:long"/> </xs:complexType> > > > > <xs:element name="property" type="tns:property"/> <xs:complexType > > name="property"> > > <xs:attribute name="name" type="xs:string" use="required"/> > > <xs:attribute name="value" type="xs:string" use="required"/> > > <xs:attribute name="id" type="xs:long"/> </xs:complexType> > > > > <xs:element name="start" type="tns:start" /> > > > > <xs:complexType name="start"> > > <xs:sequence> > > <xs:element ref="tns:command" minOccurs="0"/> > > </xs:sequence> > > </xs:complexType> > > > > <xs:element name="startResponse" type="tns:startResponse" /> > > > > <xs:complexType name="startResponse"> > > <xs:sequence> > > <xs:element name="success" type="xs:boolean" minOccurs="0"/> > > </xs:sequence> > > </xs:complexType> > > > > </xs:schema> > > Here is an ant macro I use to generate the java from it: > > > > <macrodef name="codegen-model" > > uri="http://www.emergent.net/servertools/ant/macrodef" > > description="Generates Model Classes From XMLSchema"> > > <attribute name="schema" default="EGT*.xsd"/> > > <attribute name="schemadir" default="src/schema/"/> > > > > <sequential> > > <echo message=""/> > > <echo message="TARGET: codegen-model"/> > > <echo message=" schema = @{schema}"/> > > <echo message=" schemadir = @{schemadir}"/> > > <echo message=""/> > > <taskdef name="xjc" > classname="com.sun.tools.xjc.XJCTask"> > > <classpath path="${javac.classpath}"/> > > </taskdef> > > <xjc > > target="src/generated/java" > > extension="true"> > > <schema dir="@{schemadir}" includes="@{schema}"/> > > <depends dir="@{schemadir}"> > > <include name="@{schema}" /> > > </depends> > > <produces dir="${basedir}/src/generated" > > > <include name="**/model/*.java"/> > > </produces> > > </xjc> > > </sequential> > > </macrodef> > > > > Thats step 1. Let me know if its not a sufficient solution so far. > > Step 2 next. > > > > Thatcher > > > > ----- Original Message ----- > > From: Chris Thatcher <mailto:[EMAIL PROTECTED]> > > To: user@xfire.codehaus.org > > Sent: Thursday, November 30, 2006 9:00 PM > > Subject: RE: [xfire-user] xfire client using jaxb [was: > > help! - spring2, jaxb2 config setup] > > > > Hi guys, > > I would like to help you because I use Jaxb2, Spring2, and Xfire > > together successfully with very complex data structures including > > lists, list of lists, etc. I doubt that xfire is the root > cause here > > so lets step back and try to figure out what the cause is together. > > > > Below is an example of how I use these technologies > together, though > > there are variations so if this is not your approach it is at least > > 'a' way the technologies coexist successfully. The > approach used is, > > generally speaking, as follows: > > > > 1. Develop the XMLSchema representing the data model 2. > Generate the > > java classes with jaxb2. > > 3. Define ServiceInterfaces with java classes and > > jsr181 annotations > > 4. Implement the service. > > 5. Wire it up to XFire (and Acegi and Hibernate3 or > > whatever) with Spring2. > > 6. Start a server (I use the embedded jetty server for dev testing). > > 7. Run a client. > > > > With that info here I'm going to mail this while I start presenting > > the relavent examples. If your approach is drastically > different and > > this can't suffice as an example approach, please do let me know. > > > > Thatcher > > > > ----- Original Message ----- > > From: "Karl Palsson" <[EMAIL PROTECTED]> > > To: <user@xfire.codehaus.org> > > Sent: Thursday, November 30, 2006 8:31 PM > > Subject: RE: [xfire-user] xfire client using jaxb [was: > > help! - spring2, > > jaxb2 config setup] > > > > > > I'd like to keep separate the, "my java xfire client > doesn't work with > > lists" from the "my server doesn't let anyone use lists" > > > > If xfire won't let clients consume services that have list > parameters, > > that's one bug. (alluded to in the closing comments of > > XFIRE-509 with, "use > > this XXX to make your client, not YYYY" > > > > If the xfire _service_ won't let anyone set a list, I see that as a > > separate problem. Whichever one XFIRE-509 is, can we track them > > separately? > > > > Cheers, > > Karl P > > > -----Original Message----- > > > From: Deno Vichas [mailto:[EMAIL PROTECTED] > > > Sent: Thursday, November 30, 2006 10:23 PM > > > To: user@xfire.codehaus.org > > > Subject: RE: [xfire-user] xfire client using jaxb [was: help! > > > - spring2, jaxb2 config setup] > > > > > > Ok.. this is related the 509 bug. The comment by Dan > doesn't work > > > and give me the stack trace below. > > > > > > > > > > > > ________________________________ > > > > > > From: Deno Vichas [mailto:[EMAIL PROTECTED] > > > Sent: Thursday, November 30, 2006 1:07 PM > > > To: user@xfire.codehaus.org > > > Subject: [xfire-user] xfire client using jaxb [was: help! > - spring2, > > > jaxb2 config setup] > > > > > > > > > > > > I think my service is working as I get WSDL to generate. I think > > > the problem I'm having now is with my client code. > > > > > > > > > > > > If I use > > > > > > Service serviceModel = new > > > > > AnnotationServiceFactory().create(VehicleLookupServiceImpl.class); > > > > > > > > > > > > It complains about not having a setting for the array > list that jaxb > > > created. So I did some search and found some other with > this same > > > problem. one post said I need to use > > > > > > > > > > > > > > > > > > Service serviceModel = new > > > JaxbServiceFactory().create(VehicleLookupServiceImpl.class); > > > > > > > > > > > > > > > > > > But this gives me the stack trace below. At this point I'm at a > > > total lost. > > > > > > > > > > > > > > > > > > Thanks, > > > > > > deno > > > > > > > > > > > > > > > > > > > > > > > > 2006-11-29 12:30:40,393 ERROR > > > [org.apache.catalina.core.ContainerBase.[Catalina].[localhost] > > > .[/oracle].[dispatch]] - Servlet.service() for servlet dispatch > > > threw exception > > > > > > org.codehaus.xfire.XFireRuntimeException: Could not > invoke service.. > > > Nested exception is > > > org.codehaus.xfire.fault.XFireFault: Could not marshall type. > > > > > > org.codehaus.xfire.fault.XFireFault: Could not marshall type. > > > > > > at > > > > > org.codehaus.xfire.jaxb2.JaxbType.writeObject(JaxbType.java:254) > > > > > > at > > > org.codehaus.xfire.aegis.AegisBindingProvider.writeParameter(A > > > egisBindingProvider.java:200) > > > > > > at > > > org.codehaus.xfire.service.binding.AbstractBinding.writeParame > > > ter(AbstractBinding.java:273) > > > > > > at > > > org.codehaus.xfire.service.binding.WrappedBinding.writeMessage > > > (WrappedBinding.java:89) > > > > > > at > > > org.codehaus.xfire.soap.SoapSerializer.writeMessage(SoapSerial > > > izer.java:80) > > > > > > at > > > org.codehaus.xfire.transport.http.HttpChannel.writeWithoutAtta > > > chments(HttpChannel.java:56) > > > > > > at > > > org.codehaus.xfire.transport.http.CommonsHttpMessageSender.get > > > ByteArrayRequestEntity(CommonsHttpMessageSender.java:313) > > > > > > at > > > org.codehaus.xfire.transport.http.CommonsHttpMessageSender.sen > > > d(CommonsHttpMessageSender.java:251) > > > > > > at > > > org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(Ht > > > tpChannel.java:123) > > > > > > at > > > org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel > > > .java:48) > > > > > > at > > > org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageS > > > ender.java:26) > > > > > > at > > > org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipel > > > ine.java:131) > > > > > > at > > > > > org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75) > > > > > > at > > org.codehaus.xfire.client.Client.invoke(Client.java:335) > > > > > > at > > > > > > org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77) > > > > > > at > > > > > org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57) > > > > > > at $Proxy12.getVehicles(Unknown Source) > > > > > > at > > > com.autoreturn.web.VehicleLookupController.handle(VehicleLooku > > > pController.java:53) > > > > > > at > > > org.springframework.web.servlet.mvc.AbstractCommandController. > > > handleRequestInternal(AbstractCommandController.java:82) > > > > > > at > > > org.springframework.web.servlet.mvc.AbstractController.handleR > > > equest(AbstractController.java:153) > > > > > > at > > > org.springframework.web.servlet.mvc.SimpleControllerHandlerAda > > > pter.handle(SimpleControllerHandlerAdapter.java:45) > > > > > > at > > > org.springframework.web.servlet.DispatcherServlet.doDispatch(D > > > ispatcherServlet.java:806) > > > > > > at > > > org.springframework.web.servlet.DispatcherServlet.doService(Di > > > spatcherServlet.java:736) > > > > > > at > > > org.springframework.web.servlet.FrameworkServlet.processReques > > > t(FrameworkServlet.java:396) > > > > > > at > > > org.springframework.web.servlet.FrameworkServlet.doGet(Framewo > > > rkServlet.java:350) > > > > > > at > > javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > > > > > > at > > javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > > > > > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt > > > er(ApplicationFilterChain.java:252) > > > > > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli > > > cationFilterChain.java:173) > > > > > > at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardW > > > rapperValve.java:213) > > > > > > at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardC > > > ontextValve.java:178) > > > > > > at > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHost > > > Valve.java:126) > > > > > > at > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport > > > Valve.java:105) > > > > > > at > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEn > > > gineValve.java:107) > > > > > > at > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap > > > ter.java:148) > > > > > > at > > > org.apache.coyote.http11.Http11Processor.process(Http11Process > > > or.java:869) > > > > > > at > > > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHa > > > ndler.processConnection(Http11BaseProtocol.java:664) > > > > > > at > > > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolT > > > cpEndpoint.java:527) > > > > > > at > > > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(Le > > > aderFollowerWorkerThread.java:80) > > > > > > at > > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( > > > ThreadPool.java:684) > > > > > > at java.lang.Thread.run(Thread.java:595) > > > > > > Caused by: javax.xml.bind.JAXBException: > > > com.autoreturn.service.model.LookupVehiclesRequest nor any of its > > > super class is known to this context > > > > > > at > > > com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBCo > > > ntextImpl.java:446) > > > > > > at > > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSeria > > > lizer.java:447) > > > > > > at > > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImp > > > l.java:263) > > > > > > at > > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerI > > > mpl.java:143) > > > > > > at > > > > > org.codehaus.xfire.jaxb2.JaxbType.writeObject(JaxbType.java:249) > > > > > > ... 40 more > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > From: Deno Vichas [mailto:[EMAIL PROTECTED] > > > Sent: Wednesday, November 29, 2006 12:34 PM > > > To: user@xfire.codehaus.org > > > Subject: RE: [xfire-user] help! - spring2, jaxb2 config setup > > > > > > > > > > > > Honestly I'm not even fully sure what the remoting is > used for. I > > > just want to create some soap services using sping2, jaxb2, > > > hibernate, and xfire. I did find my startup problem. > > > I'm now back to my original problem. Here's my > > client code I have; > > > > > > > > > > > > Service serviceModel = new > > > JaxbServiceFactory().create(VehicleLookupServiceImpl.class); > > > // some post I found on the net said I needed to use the > > > JaxbServiceFactory. > > > > > > //Service serviceModel = new > > > AnnotationServiceFactory().create(VehicleLookupServiceImpl.cla > > > ss); // this bitches about not having a setting for the > array list > > > from jaxb. Argh! > > > > > > try { > > > > > > VehicleLookupService service = > > > (VehicleLookupService) new > > XFireProxyFactory().create(serviceModel, > > > > > > > > > > > > "http://localhost:8080/oracle/services/VehicleLookupService"); > > > > > > LookupVehiclesResponse r = > > > service.getVehicles(buildLookupVehiclesRequest(cmd)); > > > > > > pw.println(marshallRequest(r)); > > > > > > > > > > > > } catch (MalformedURLException e) { > > > > > > e.printStackTrace(); > > > > > > } > > > > > > > > > > > > > > > > > > 2006-11-29 12:30:40,393 ERROR > > > [org.apache.catalina.core.ContainerBase.[Catalina].[localhost] > > > .[/oracle].[dispatch]] - Servlet.service() for servlet dispatch > > > threw exception > > > > > > org.codehaus.xfire.XFireRuntimeException: Could not > invoke service.. > > > Nested exception is > > > org.codehaus.xfire.fault.XFireFault: Could not marshall type. > > > > > > org.codehaus.xfire.fault.XFireFault: Could not marshall type. > > > > > > at > > > > > org.codehaus.xfire.jaxb2.JaxbType.writeObject(JaxbType.java:254) > > > > > > at > > > org.codehaus.xfire.aegis.AegisBindingProvider.writeParameter(A > > > egisBindingProvider.java:200) > > > > > > at > > > org.codehaus.xfire.service.binding.AbstractBinding.writeParame > > > ter(AbstractBinding.java:273) > > > > > > at > > > org.codehaus.xfire.service.binding.WrappedBinding.writeMessage > > > (WrappedBinding.java:89) > > > > > > at > > > org.codehaus.xfire.soap.SoapSerializer.writeMessage(SoapSerial > > > izer.java:80) > > > > > > at > > > org.codehaus.xfire.transport.http.HttpChannel.writeWithoutAtta > > > chments(HttpChannel.java:56) > > > > > > at > > > org.codehaus.xfire.transport.http.CommonsHttpMessageSender.get > > > ByteArrayRequestEntity(CommonsHttpMessageSender.java:313) > > > > > > at > > > org.codehaus.xfire.transport.http.CommonsHttpMessageSender.sen > > > d(CommonsHttpMessageSender.java:251) > > > > > > at > > > org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(Ht > > > tpChannel.java:123) > > > > > > at > > > org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel > > > .java:48) > > > > > > at > > > org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageS > > > ender.java:26) > > > > > > at > > > org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipel > > > ine.java:131) > > > > > > at > > > > > org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75) > > > > > > at > > org.codehaus.xfire.client.Client.invoke(Client.java:335) > > > > > > at > > > > > > org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77) > > > > > > at > > > > > org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57) > > > > > > at $Proxy12.getVehicles(Unknown Source) > > > > > > at > > > com.autoreturn.web.VehicleLookupController.handle(VehicleLooku > > > pController.java:53) > > > > > > at > > > org.springframework.web.servlet.mvc.AbstractCommandController. > > > handleRequestInternal(AbstractCommandController.java:82) > > > > > > at > > > org.springframework.web.servlet.mvc.AbstractController.handleR > > > equest(AbstractController.java:153) > > > > > > at > > > org.springframework.web.servlet.mvc.SimpleControllerHandlerAda > > > pter.handle(SimpleControllerHandlerAdapter.java:45) > > > > > > at > > > org.springframework.web.servlet.DispatcherServlet.doDispatch(D > > > ispatcherServlet.java:806) > > > > > > at > > > org.springframework.web.servlet.DispatcherServlet.doService(Di > > > spatcherServlet.java:736) > > > > > > at > > > org.springframework.web.servlet.FrameworkServlet.processReques > > > t(FrameworkServlet.java:396) > > > > > > at > > > org.springframework.web.servlet.FrameworkServlet.doGet(Framewo > > > rkServlet.java:350) > > > > > > at > > javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > > > > > > at > > javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > > > > > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt > > > er(ApplicationFilterChain.java:252) > > > > > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli > > > cationFilterChain.java:173) > > > > > > at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardW > > > rapperValve.java:213) > > > > > > at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardC > > > ontextValve.java:178) > > > > > > at > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHost > > > Valve.java:126) > > > > > > at > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport > > > Valve.java:105) > > > > > > at > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEn > > > gineValve.java:107) > > > > > > at > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap > > > ter.java:148) > > > > > > at > > > org.apache.coyote.http11.Http11Processor.process(Http11Process > > > or.java:869) > > > > > > at > > > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHa > > > ndler.processConnection(Http11BaseProtocol.java:664) > > > > > > at > > > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolT > > > cpEndpoint.java:527) > > > > > > at > > > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(Le > > > aderFollowerWorkerThread.java:80) > > > > > > at > > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( > > > ThreadPool.java:684) > > > > > > at java.lang.Thread.run(Thread.java:595) > > > > > > Caused by: javax.xml.bind.JAXBException: > > > com.autoreturn.service.model.LookupVehiclesRequest nor any of its > > > super class is known to this context > > > > > > at > > > com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBCo > > > ntextImpl.java:446) > > > > > > at > > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSeria > > > lizer.java:447) > > > > > > at > > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImp > > > l.java:263) > > > > > > at > > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerI > > > mpl.java:143) > > > > > > at > > > > > org.codehaus.xfire.jaxb2.JaxbType.writeObject(JaxbType.java:249) > > > > > > ... 40 more > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Here's my POJO > > > > > > > > > > > > package com.autoreturn.service; > > > > > > > > > > > > import javax.jws.WebParam; > > > > > > import javax.jws.WebService; > > > > > > > > > > > > import com.autoreturn.service.model.LookupVehiclesRequest; > > > > > > import com.autoreturn.service.model.LookupVehiclesResponse; > > > > > > > > > > > > @WebService(name="VehicleLookupService", > > > > > > targetNamespace="http://oracle.autoreturn.com") > > > > > > public interface VehicleLookupService { > > > > > > > > > > > > public LookupVehiclesResponse > > > getVehicles(@WebParam(name="LookupVehiclesRequest") > > > LookupVehiclesRequest request); > > > > > > > > > > > > } > > > > > > > > > > > > ---- > > > > > > > > > > > > package com.autoreturn.service; > > > > > > > > > > > > import javax.jws.WebService; > > > > > > import javax.jws.soap.SOAPBinding; > > > > > > > > > > > > import com.autoreturn.dts.DTSLookupResponse; > > > > > > import com.autoreturn.dts.DTSManagerFactory; > > > > > > import com.autoreturn.manager.XmlConverter; > > > > > > import com.autoreturn.service.model.LookupVehiclesRequest; > > > > > > import com.autoreturn.service.model.LookupVehiclesResponse; > > > > > > > > > > > > @WebService( > > > > > > serviceName = "VehicleLookupService", > > > > > > endpointInterface = > > "com.autoreturn.service.VehicleLookupService" > > > > > > ) > > > > > > @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE) > > > > > > public class VehicleLookupServiceImpl implements > > > VehicleLookupService { > > > > > > private final DTSManagerFactory _dtsFactory; > > > > > > private final XmlConverter _xmlConverter; > > > > > > > > > > > > public VehicleLookupServiceImpl(DTSManagerFactory > > > dtsManagerFactory, XmlConverter xmlConverter) { > > > > > > _dtsFactory = dtsManagerFactory; > > > > > > _xmlConverter = xmlConverter; > > > > > > } > > > > > > > > > > > > public LookupVehiclesResponse > > > getVehicles(LookupVehiclesRequest request) { > > > > > > > > > > > > DTSLookupResponse dtsResponse = > > > _dtsFactory.lookupVehicle(request); > > > > > > return > > _xmlConverter.buildArLookupVehicleReponse(dtsResponse); > > > > > > > > > > > > } > > > > > > > > > > > > } > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > From: Ruth, Brice D [mailto:[EMAIL PROTECTED] > > > Sent: Wednesday, November 29, 2006 11:34 AM > > > To: user@xfire.codehaus.org > > > Subject: RE: [xfire-user] help! - spring2, jaxb2 config setup > > > > > > > > > > > > From the exception, it looks like the wrong bean is > getting passed > > > in. What's your POJO that has the @WebService annotation on it? > > > ServiceBean is the XFire object that wraps your POJO, from what I > > > understand. > > > > > > > > > > > > I'm not familiar with the handler mapping stuff from Spring > > > remoting. We use a Jsr181BeanPostProcessor ... is there a > particular > > > need for the Spring remoting? > > > > > > > > > > > > Cheers, > > > > > > Brice > > > > > > > > > > > > -----Original Message----- > > > From: Deno Vichas [mailto:[EMAIL PROTECTED] > > > Sent: Wednesday, November 29, 2006 11:34 AM > > > To: user@xfire.codehaus.org > > > Subject: RE: [xfire-user] help! - spring2, jaxb2 config setup > > > > > > I tried something like that already using > > > org.codehaus.xfire.spring.remoting.XFireExporter, using > your sample > > > I get on startup - > > > > > > > > > > > > 2006-11-29 09:27:13,817 ERROR > > > [org.springframework.web.context.ContextLoader] - Context > > > initialization failed > > > > > > org.springframework.beans.factory.BeanCreationException: > > > Error creating bean with name 'vehicleLookup' defined in > > > ServletContext resource [/WEB-INF/xfire-servlet.xml]: > > > Invocation of init method failed; nested exception is > > > org.codehaus.xfire.annotations.AnnotationException: Class > > > org.codehaus.xfire.spring.ServiceBean does not have a WebService > > > annotation > > > > > > Caused by: > > > > > > org.codehaus.xfire.annotations.AnnotationException: Class > > > org.codehaus.xfire.spring.ServiceBean does not have a WebService > > > annotation > > > > > > > > > > > > > > > > > > I'm using JSR181 to expose my service with > > > > > > > > > > > > <bean id="xfire.commonsAnnotations" > > > > > class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations"/> > > > > > > > > > > > > <bean id="handlerMapping" > > > > > class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping"> > > > > > > <property name="typeMappingRegistry" > > > ref="xfire.typeMappingRegistry"/> > > > > > > <property name="xfire" ref="xfire"/> > > > > > > <property name="webAnnotations" > > > ref="xfire.commonsAnnotations"/> > > > > > > </bean> > > > > > > > > > > > > <bean > > > class="org.springframework.web.servlet.handler.SimpleUrlHandle > > > rMapping"> > > > > > > <property name="urlMap"> > > > > > > <map> > > > > > > <entry key="/"> > > > > > > <ref bean="handlerMapping"/> > > > > > > </entry> > > > > > > </map> > > > > > > </property> > > > > > > </bean> > > > > > > > > > > > > > > > > > > Is this bad to try to do this? > > > > > > > > > > > > > > > > > > Thanks. > > > > > > deno > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > From: Ruth, Brice D [mailto:[EMAIL PROTECTED] > > > Sent: Wednesday, November 29, 2006 6:56 AM > > > To: user@xfire.codehaus.org > > > Subject: RE: [xfire-user] help! - spring2, jaxb2 config setup > > > > > > > > > > > > <!-- Initialize JAXB2 service factory --> > > > > > > <bean name="jaxbServiceFactory" > > > > > > class="org.codehaus.xfire.jaxb2.JaxbServiceFactory"> > > > > > > <constructor-arg ref="xfire.transportManager" /> > > > > > > </bean> > > > > > > > > > > > > <bean id="ewsng.TaskController.service" > > > class="org.codehaus.xfire.spring.ServiceBean"> > > > > > > <property name="serviceBean" ref="ewsng.taskController" > > > /> <!-- this is my POJO --> > > > > > > <property name="serviceFactory" > > ref="jaxbServiceFactory" /> > > > > > > </bean> > > > > > > > > > > > > -----Original Message----- > > > From: Deno Vichas [mailto:[EMAIL PROTECTED] > > > Sent: Wednesday, November 29, 2006 12:13 AM > > > To: user@xfire.codehaus.org > > > Subject: RE: [xfire-user] help! - spring2, jaxb2 config setup > > > > > > > Have you imported the xfire spring config into your main > > > spring config? > > > > > > I didn't at when I posted that last stack trace. I'm > importing in > > > my web.xml file > > > > > > > > > > > > Ok.. I've got the WSDL to generate! I think my problem > is I need to > > > be using the jaxbServiceFactory but don't know how to wire it up > > > correct. > > > > > > > > > > > > Here's what my web.xml and xfire-servlet.xml files look like; > > > > > > > > > > > > <context-param> > > > > > > > > <param-name>log4jConfigLocation</param-name> > > > > > > > > > <param-value>/WEB-INF/log4j.properties</param-value> > > > > > > </context-param> > > > > > > <context-param> > > > > > > <param-name>log4jRefreshInterval</param-name> > > > > > > <param-value>1000</param-value> > > > > > > </context-param> > > > > > > <context-param> > > > > > > <param-name>contextConfigLocation</param-name> > > > > > > <param-value> > > > > > > /WEB-INF/applicationContext.xml > > > > > > /WEB-INF/xfire-servlet.xml > > > > > > classpath:org/codehaus/xfire/spring/xfire.xml > > > > > > </param-value> > > > > > > </context-param> > > > > > > > > > > > > <listener> > > > > > > > > > <listener-class>org.springframework.web.util.Log4jConfigListen > > > er</listener-class> > > > > > > </listener> > > > > > > > > > > > > <listener> > > > > > > > > > <listener-class>org.springframework.web.context.ContextLoaderL > > > istener</listener-class> > > > > > > </listener> > > > > > > > > > > > > <servlet> > > > > > > <servlet-name>dispatch</servlet-name> > > > > > > > > > <servlet-class>org.springframework.web.servlet.DispatcherServl > > > et</servlet-class> > > > > > > <load-on-startup>1</load-on-startup> > > > > > > </servlet> > > > > > > > > > > > > <servlet-mapping> > > > > > > <servlet-name>dispatch</servlet-name> > > > > > > <url-pattern>/*</url-pattern> > > > > > > </servlet-mapping> > > > > > > > > > > > > <!-- start Xfire --> > > > > > > <servlet> > > > > > > <servlet-name>XFireServlet</servlet-name> > > > > > > <servlet-class> > > > > > > org.codehaus.xfire.spring.XFireSpringServlet > > > > > > </servlet-class> > > > > > > </servlet> > > > > > > > > > > > > <servlet-mapping> > > > > > > <servlet-name>XFireServlet</servlet-name> > > > > > > <url-pattern>/servlet/XFireServlet/*</url-pattern> > > > > > > </servlet-mapping> > > > > > > > > > > > > <servlet-mapping> > > > > > > <servlet-name>XFireServlet</servlet-name> > > > > > > <url-pattern>/services/*</url-pattern> > > > > > > </servlet-mapping> > > > > > > <!-- end: XFire --> > > > > > > > > > > > > * - - - - - - - > > > > > > > > > > > > xfire-servlet.xml > > > > > > > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > > > <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" > > > "http://www.springframework.org/dtd/spring-beans.dtd"> > > > > > > <beans> > > > > > > > > > > > > <bean id="vehicleLookup" > > > class="com.autoreturn.service.VehicleLookupServiceImpl" > > > > > > > <constructor-arg index="0" ref="DTSManager" /> > > > > > > <constructor-arg index="1" ref="XmlConverter" /> > > > > > > </bean> > > > > > > > > > > > > <bean name="jaxbServiceFactory" > > > class="org.codehaus.xfire.jaxb2.JaxbServiceFactory"> > > > > > > <constructor-arg ref="xfire.transportManager"/> > > > > > > </bean> > > > > > > > > > > > > > > > > > > <bean id="xfire.commonsAnnotations" > > > > > class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations"/> > > > > > > > > > > > > <bean id="handlerMapping" > > > > > class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping"> > > > > > > <property name="typeMappingRegistry"> > > > > > > <ref bean="xfire.typeMappingRegistry"/> > > > > > > </property> > > > > > > <property name="xfire"> > > > > > > <ref bean="xfire"/> > > > > > > </property> > > > > > > <property name="webAnnotations"> > > > > > > <ref bean="xfire.commonsAnnotations"/> > > > > > > </property> > > > > > > </bean> > > > > > > > > > > > > <bean > > > class="org.springframework.web.servlet.handler.SimpleUrlHandle > > > rMapping"> > > > > > > <property name="urlMap"> > > > > > > <map> > > > > > > <entry key="/"> > > > > > > <ref bean="handlerMapping"/> > > > > > > </entry> > > > > > > </map> > > > > > > </property> > > > > > > </bean> > > > > > > > > > > > > </beans> > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe from this list please visit: > > > > http://xircles.codehaus.org/manage_email > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe from this list please visit: > > http://xircles.codehaus.org/manage_email > > > > > --------------------------------------------------------------------- > To unsubscribe from this list please visit: > > http://xircles.codehaus.org/manage_email > > --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email