Re: CXF @WebServiceProvider deployment issue
My best guess are that its a spring error that tells you that it could not call the default constructor of the class backing the MessageRouter. In your case its the messagerouterservice.. Do this seem to give any hints? regards Barlotta, Michael [USA] wrote: Hello, I am using CXF 2.0.3 and am deploying an appliation to JBoss using Spring and packaged as a WAR. On JBoss startup I get the following error:BeanCreationException: Error creating bean with name 'MessageRouter': Invocation of init method failed; nested exception is java.lang.NullPointerException Any idea what is causing this? Thanks! Mike //- Java Code Annotations @WebServiceProvider( serviceName="MessageRouterService", portName="RoutePortType", targetNamespace="http://x/";, wsdlLocation="WEB-INF/wsdl/MessageRouter.wsdl" ) @ServiceMode(Service.Mode.PAYLOAD) public class MessageRouterEndpoint implements Provider{ public Source invoke(Source payload) { ... } } //- Spring config http://www.springframework.org/schema/beans"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:jaxws="http://cxf.apache.org/jaxws"; xmlns:soap="http://cxf.apache.org/bindings/soap"; xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd";> id="MessageRouter" implementor="#MessageRouterService" address="/fxml/route" /> ... //- Stack Trace 2007-12-19 17:08:16,591 55859 ERROR [STDERR] (main:) Dec 19, 2007 5:08:16 PM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL INFO: Creating Service {http://x/}MessageRouterService from WSDL: WEB-INF/wsdl/MessageRouter.wsdl 2007-12-19 17:08:16,778 56046 ERROR [org.springframework.web.context.ContextLoader] (main:) Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'MessageRouter': Invocation of init method failed; nested exception is java.lang.NullPointerException Caused by: java.lang.NullPointerException at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilde r.java:226) at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilde r.java:150) at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java: 117) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildService FromWSDL(ReflectionServiceFactoryBean.java:257) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeSe rviceModel(ReflectionServiceFactoryBean.java:331) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(Refle ctionServiceFactoryBean.java:151) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsService FactoryBean.java:93) at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint( AbstractWSDLBasedEndpointFactory.java:74) at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java: 108) at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBea n.java:147) at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:288) at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:228) at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:179) at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:341) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav a:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor Impl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at ... -- Nino Martinez Wael Java Specialist @ Jayway DK http://www.jayway.dk +45 2936 7684
Re: JAXB Unmarshalling
That's pretty interesting all right. I would say that there might not be much point in dealing directly with JAXBContext and pretend that your code is so light and free :-) Cheers, Sergey - Original Message - From: "Liu, Jervis" <[EMAIL PROTECTED]> To: Sent: Thursday, December 20, 2007 7:18 AM Subject: RE: JAXB Unmarshalling > >> -Original Message- >> From: Sergey Beryozkin [mailto:[EMAIL PROTECTED] >> Sent: 2007年12月19日 22:40 >> To: cxf-user@incubator.apache.org >> Subject: Re: JAXB Unmarshalling >> >> By the way, can this approach (which uses JAXBContexts) work for you in >> CXF? : >> >> http://weblogs.java.net/blog/mhadley/archive/2006/03/restful_web_ser_1. >> html >> > [Liu, Jervis] You don’t have to use JAX-WS Dispatch API in this case. Once > you grab the InputStream from HTTPClient (or other lightweight http client > stack), you can call JAXB to marshal the response to your Customer object. > There is no point to use a heavy stack like a JAX-WS runtime to do such a > simple task. Following code snippet should do the job: > >public Object getObjectFromInputStream (Class type, InputStream > is) { >try { >JAXBContext context = getJAXBContext(type); >Unmarshaller unmarshaller = context.createUnmarshaller(); >return unmarshaller.unmarshal(is); >} catch (JAXBException e) { >e.printStackTrace(); >} > >return null; >} > >private JAXBContext getJAXBContext(Class type) throws JAXBException { >synchronized (jaxbContexts) { >JAXBContext context = jaxbContexts.get(type); >if (context == null) { >context = JAXBContext.newInstance(type); >jaxbContexts.put(type, context); >} >return context; >} >} > >static Map jaxbContexts = new WeakHashMap JAXBContext>(); > >> You'd still need a schema describing the data like Customer, etc... >> Cheers. Sergey >> >> >> >> - Original Message - >> From: "Eric Le Goff" <[EMAIL PROTECTED]> >> To: >> Sent: Tuesday, December 18, 2007 4:34 PM >> Subject: JAXB Unmarshalling >> >> >> >I am going on playing with the restful_jaxrs sample demo >> > >> > >> > In the Client.java there are these lines >> > >> > ... >> > URL url = new >> URL("http://localhost:9000/customerservice/customers/123";); >> >InputStream in = url.openStream(); >> >System.out.println(getStringFromInputStream(in)); >> > >> > >> > >> > What if I did not want to display the XML content (ie the XML >> > representation of customer whose Id is 123) >> > But rather I would like to get the actual instance of Customer with id is >> > 123 >> > >> > Is there some Unmarshalling method to do that , something like >> > >> > ... >> > URL url = new >> URL("http://localhost:9000/customerservice/customers/123";); >> >InputStream in = url.openStream(); >> > >> > // Hypothetic code >> > Customer customer = (Customer) getObjectFromInputStream(in); >> > ... >> > >> > How would I implement this >> > >> > Object getObjectFromInputStream(InputStream in) >> > >> > method ? >> > >> > I guess I would have to get a JaxbContext before I can get an >> Unmarshaller ? >> > >> > >> > Thanks for your help >> > >> > Eric >> > >> > >> > >> > >> > -- >> > Eric Le Goff >> >> >> IONA Technologies PLC (registered in Ireland) >> Registered Number: 171387 >> Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland > > > IONA Technologies PLC (registered in Ireland) > Registered Number: 171387 > Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland > IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
java2wsdl not working?
Hi In my tour de cxf, i've now come to the point where I have a test that checks that the wsdl scheme are registered, and another test that checks that its looking okay. Next step are to test if the endpoints are working. Since im using jaxws it seems that I need a wsdl for this, inorder to create a servicebean. So I decided to get one generated for me using the java2wsdl plugin for maven[1]. However my test are failing with an exception when trying to generate the servicebean: org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for service {http://jayway.com/hello_world_soap_http}HelloWorld. at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:114) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:286) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:379) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:173) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:98) at com.jayway.GreeterTest.testEndpoint(GreeterTest.java:46) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) its the last line here that generates the error: ReflectionServiceFactoryBean bean = new JaxWsServiceFactoryBean(); URL resource = getClass().getResource("HelloWorld.wsdl"); assertNotNull(resource); bean.setWsdlURL(resource.toString()); bean.setBus(bus); bean.setServiceClass(HelloWorldImpl.class); HelloWorldImpl helloWorld = new HelloWorldImpl(); BeanInvoker invoker = new BeanInvoker(helloWorld); -->Service service = bean.create(); I dont understand how this is possible, since I've run java2wsdl... But as im new I could be doing something wrong.. To get the complete project go here, and take a look in greetertest.java in package com.jayway : http://www.fileshost.com/en/file/22660/basic-zip.html [1]=http://cwiki.apache.org/CXF20DOC/maven-integration-and-plugin.html -- Nino Martinez Wael Java Specialist @ Jayway DK http://www.jayway.dk +45 2936 7684
RE: JAXB Unmarshalling
Well, if you REALLY want, you can hide the calling of JAXB in an util, for example you can extend HTTP Client to make it aware of a JAXBContext and be able to accept and return a JAXB object, for example following code: String inputFile = client.getClass().getResource("update_customer.txt").getFile(); File input = new File(inputFile); PutMethod put = new PutMethod("http://localhost:9000/customerservice/customers";); RequestEntity entity = new FileRequestEntity(input, "text/xml; charset=ISO-8859-1"); put.setRequestEntity(entity); HttpClient httpclient = new HttpClient(); int result = httpclient.executeMethod(put); String response = put.getResponseBodyAsString() Will become: PutMethod put = new PutMethod("http://localhost:9000/customerservice/customers";); Customer customer = new Customer(); RequestEntity entity = new JAXBRequestEntity(customer); put.setRequestEntity(entity); HttpClient httpclient = new JAXBHttpClient(jaxbcontext); int result = httpclient.executeMethod(put); Customer updatedCustomer = put.getResponseBodyAsJAXB() Of course, you can also add some nice things such as handle checked exception in this HTTP Client extension, so that it becomes: try { int result = httpclient.executeMethod(put); Customer updatedCustomer = put.getResponseBodyAsJAXB() } catch (CustomerNotFoundException e) { } catch (WebServiceException e) { } Does this make sense? Cheers, Jervis > -Original Message- > From: Sergey Beryozkin [mailto:[EMAIL PROTECTED] > Sent: 2007年12月20日 17:54 > To: cxf-user@incubator.apache.org > Subject: Re: JAXB Unmarshalling > > That's pretty interesting all right. > > I would say that there might not be much point in dealing directly with > JAXBContext and pretend > that your code is so light and free :-) > > Cheers, Sergey > > - Original Message - > From: "Liu, Jervis" <[EMAIL PROTECTED]> > To: > Sent: Thursday, December 20, 2007 7:18 AM > Subject: RE: JAXB Unmarshalling > > > > > >> -Original Message- > >> From: Sergey Beryozkin [mailto:[EMAIL PROTECTED] > >> Sent: 2007年12月19日 22:40 > >> To: cxf-user@incubator.apache.org > >> Subject: Re: JAXB Unmarshalling > >> > >> By the way, can this approach (which uses JAXBContexts) work for you in > >> CXF? : > >> > >> > http://weblogs.java.net/blog/mhadley/archive/2006/03/restful_web_ser_1. > >> html > >> > > [Liu, Jervis] You don’t have to use JAX-WS Dispatch API in this case. Once > you grab the InputStream from HTTPClient (or other lightweight http client > stack), you can call JAXB to marshal the response to your Customer object. > There is no point to use a heavy stack like a JAX-WS runtime to do such a > simple task. Following code snippet should do the job: > > > >public Object getObjectFromInputStream (Class type, > InputStream is) { > >try { > >JAXBContext context = getJAXBContext(type); > >Unmarshaller unmarshaller = context.createUnmarshaller(); > >return unmarshaller.unmarshal(is); > >} catch (JAXBException e) { > >e.printStackTrace(); > >} > > > >return null; > >} > > > >private JAXBContext getJAXBContext(Class type) throws > JAXBException { > >synchronized (jaxbContexts) { > >JAXBContext context = jaxbContexts.get(type); > >if (context == null) { > >context = JAXBContext.newInstance(type); > >jaxbContexts.put(type, context); > >} > >return context; > >} > >} > > > >static Map jaxbContexts = new > WeakHashMap(); > > > >> You'd still need a schema describing the data like Customer, etc... > >> Cheers. Sergey > >> > >> > >> > >> - Original Message - > >> From: "Eric Le Goff" <[EMAIL PROTECTED]> > >> To: > >> Sent: Tuesday, December 18, 2007 4:34 PM > >> Subject: JAXB Unmarshalling > >> > >> > >> >I am going on playing with the restful_jaxrs sample demo > >> > > >> > > >> > In the Client.java there are these lines > >> > > >> > ... > >> > URL url = new > >> URL("http://localhost:9000/customerservice/customers/123";); > >> >InputStream in = url.openStream(); > >> >System.out.println(getStringFromInputStream(in)); > >> > > >> > > >> > > >> > What if I did not want to display the XML content (ie the XML > >> > representation of customer whose Id is 123) > >> > But rather I would like to get the actual instance of Customer with id is > 123 > >> > > >> > Is there some Unmarshalling method to do that , something like > >> > > >> > ... > >> > URL url = new > >> URL("http://localhost:9000/customerservice/customers/123";); > >> >InputStream in = url.openStream(); > >> > > >> > // Hypothetic code > >> > Customer customer = (Customer) getObjectFromInputStream(in); > >> > ... > >> > > >> > How would I implement this > >> >
Re: JAXB Unmarshalling
Jervis, Thanks for the tips which was exactly what I had been expecting > [Liu, Jervis] You don't have to use JAX-WS Dispatch API in this case. Once > you grab the InputStream from HTTPClient (or other lightweight http client > stack), you can call JAXB to marshal the response to your Customer object. > There is no point to use a heavy stack like a JAX-WS runtime to do such a > simple task. Following code snippet should do the job: > > public Object getObjectFromInputStream (Class type, InputStream > is) { BTW I had to replace with public Object getObjectFromInputStream (Class type, InputStream is) { so that I could call a getObjectFromInputStream(Customer.class, is) Would not it be nice if this piece of code was part of CXF , because I guess I am not the only one who needs this -- Eric Le Goff
Re: JAXB Unmarshalling
This is a nice refactoring effort and indeed the code looks simplier. My point was not really to do with the fact that the code in your original proposal was a bit verbose. IMHO it's kind of trying to catch 2 rabbits at the same time : attempt to write just a simple HTTP code and still expect the runtime to nicely map the incoming data into classes like Customer. In the end one does not get the flexibilty the client code can get from technologies like XPath (as far as writing a robust cliend code is concerned). And one needs to write manually some utility code which will map the in XMl to *generated* types like Customer. What's the point ? I'd either go for a pure XML approach or would use a description language to do all the client bootsrapping stuff for me. Cheers, Sergey > Well, if you REALLY want, you can hide the calling of JAXB in an util, for > example you can extend HTTP Client to make it aware of a JAXBContext and be > able to accept and return a JAXB object, for example following code: > >String inputFile = > client.getClass().getResource("update_customer.txt").getFile(); >File input = new File(inputFile); >PutMethod put = new > PutMethod("http://localhost:9000/customerservice/customers";); >RequestEntity entity = new FileRequestEntity(input, "text/xml; > charset=ISO-8859-1"); >put.setRequestEntity(entity); >HttpClient httpclient = new HttpClient(); >int result = httpclient.executeMethod(put); >String response = put.getResponseBodyAsString() > > Will become: > >PutMethod put = new > PutMethod("http://localhost:9000/customerservice/customers";); >Customer customer = new Customer(); >RequestEntity entity = new JAXBRequestEntity(customer); >put.setRequestEntity(entity); >HttpClient httpclient = new JAXBHttpClient(jaxbcontext); >int result = httpclient.executeMethod(put); >Customer updatedCustomer = put.getResponseBodyAsJAXB() > > Of course, you can also add some nice things such as handle checked exception > in this HTTP Client extension, so that it becomes: > try { >int result = httpclient.executeMethod(put); >Customer updatedCustomer = put.getResponseBodyAsJAXB() > } catch (CustomerNotFoundException e) { > } catch (WebServiceException e) { > } > > Does this make sense? > > Cheers, > Jervis >> -Original Message- >> From: Sergey Beryozkin [mailto:[EMAIL PROTECTED] >> Sent: 2007年12月20日 17:54 >> To: cxf-user@incubator.apache.org >> Subject: Re: JAXB Unmarshalling >> >> That's pretty interesting all right. >> >> I would say that there might not be much point in dealing directly with >> JAXBContext and pretend >> that your code is so light and free :-) >> >> Cheers, Sergey >> >> - Original Message - >> From: "Liu, Jervis" <[EMAIL PROTECTED]> >> To: >> Sent: Thursday, December 20, 2007 7:18 AM >> Subject: RE: JAXB Unmarshalling >> >> >> > >> >> -Original Message- >> >> From: Sergey Beryozkin [mailto:[EMAIL PROTECTED] >> >> Sent: 2007年12月19日 22:40 >> >> To: cxf-user@incubator.apache.org >> >> Subject: Re: JAXB Unmarshalling >> >> >> >> By the way, can this approach (which uses JAXBContexts) work for you in >> >> CXF? : >> >> >> >> >> http://weblogs.java.net/blog/mhadley/archive/2006/03/restful_web_ser_1. >> >> html >> >> >> > [Liu, Jervis] You don’t have to use JAX-WS Dispatch API in this case. Once >> you grab the InputStream from HTTPClient (or other lightweight http client >> stack), you can call JAXB to marshal the response to your Customer object. >> There is no point to use a heavy stack like a JAX-WS runtime to do such a >> simple task. Following code snippet should do the job: >> > >> >public Object getObjectFromInputStream (Class type, >> InputStream is) { >> >try { >> >JAXBContext context = getJAXBContext(type); >> >Unmarshaller unmarshaller = context.createUnmarshaller(); >> >return unmarshaller.unmarshal(is); >> >} catch (JAXBException e) { >> >e.printStackTrace(); >> >} >> > >> >return null; >> >} >> > >> >private JAXBContext getJAXBContext(Class type) throws >> JAXBException { >> >synchronized (jaxbContexts) { >> >JAXBContext context = jaxbContexts.get(type); >> >if (context == null) { >> >context = JAXBContext.newInstance(type); >> >jaxbContexts.put(type, context); >> >} >> >return context; >> >} >> >} >> > >> >static Map jaxbContexts = new >> WeakHashMap(); >> > >> >> You'd still need a schema describing the data like Customer, etc... >> >> Cheers. Sergey >> >> >> >> >> >> >> >> - Original Message - >> >> From: "Eric Le Goff" <[EMAIL PROTECTED]> >> >> To: >> >> Sent: Tuesday, December 18, 2007 4:34 PM >> >> Subject: JAXB Unmarshalling >> >> >> >> >> >> >I am going on playing
Re: java2wsdl not working?
it's my fault I pointed the java2wsdl to a interface and not the actual implementation. Nino Saturnino Martinez Vazquez Wael wrote: Hi In my tour de cxf, i've now come to the point where I have a test that checks that the wsdl scheme are registered, and another test that checks that its looking okay. Next step are to test if the endpoints are working. Since im using jaxws it seems that I need a wsdl for this, inorder to create a servicebean. So I decided to get one generated for me using the java2wsdl plugin for maven[1]. However my test are failing with an exception when trying to generate the servicebean: org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for service {http://jayway.com/hello_world_soap_http}HelloWorld. at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:114) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:286) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:379) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:173) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:98) at com.jayway.GreeterTest.testEndpoint(GreeterTest.java:46) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) its the last line here that generates the error: ReflectionServiceFactoryBean bean = new JaxWsServiceFactoryBean(); URL resource = getClass().getResource("HelloWorld.wsdl"); assertNotNull(resource); bean.setWsdlURL(resource.toString()); bean.setBus(bus); bean.setServiceClass(HelloWorldImpl.class); HelloWorldImpl helloWorld = new HelloWorldImpl(); BeanInvoker invoker = new BeanInvoker(helloWorld); -->Service service = bean.create(); I dont understand how this is possible, since I've run java2wsdl... But as im new I could be doing something wrong.. To get the complete project go here, and take a look in greetertest.java in package com.jayway : http://www.fileshost.com/en/file/22660/basic-zip.html [1]=http://cwiki.apache.org/CXF20DOC/maven-integration-and-plugin.html -- Nino Martinez Wael Java Specialist @ Jayway DK http://www.jayway.dk +45 2936 7684
Re: JAXB Unmarshalling
Here's a slightly different point. Look at a JAX-RS demo, at a CustomerService code [1]. This server code is a receiver when POST/PUT requests are issued to it. For ex, CustomerService.updateCustomer(Customer). We don't expect the developers to write their own code to unmarshall it all there, be aware of JAXBContexts, etc, right ? If they want they just can go ahread and write their own code, no probs, or they can have CXF help them to do it with its JAX-RS infrastructure. Same story for those receivers which initiate have GET responses to deal with. One either lets them write their own code if they feel that's what they want or help them, possibly with the help of description languages to hide all the things needed to get to the actual data like JAXBContext. Cheers, Sergey [1]svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/restful_jaxrs/src/demo/jaxrs/server/CustomerService.java?revision=605587&view=markup IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Working example with tests based on the maven archetype cxf-http-basic extended to soap though!
Hi I've taken the liberty to write some tests to the archetype, and as the project im on now needed to use soap its targeted towards soap. The tests I've done should be incorporated into the archetype so that it comes with tests (I could go and make the templates if wanted). Although the tests needs to be verified. Heres the link to the project: http://www.fileshost.com/en/file/22681/basic-zip.html The tests are somewhat basic: Testing bindings, testing wsdl schema, testing invokation of methods. Etc... -- Nino Martinez Wael Java Specialist @ Jayway DK http://www.jayway.dk +45 2936 7684
RE: CXF @WebServiceProvider deployment issue
Nino: thanks, but unfortunately no... I have the required default constructor (by virute of not having any constructor). I found this posting, and added the cxf:bus configuration but I still get the same error (see config below). http://www.nabble.com/java.lang.NullPointerException-to14201919.html I have been able to deploy @WebService based endpoints without configuring the bus so not sure what I am missing. I was hoping to get the XML passed straight through so that I could use my Castor mapping & Java POJOs that have already been created/tested. What am I missing? Thanks, > //- Spring config > http://www.springframework.org/schema/beans"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; > xmlns:jaxws="http://cxf.apache.org/jaxws"; > xmlns:soap="http://cxf.apache.org/bindings/soap"; xmlns:cxf="http://cxf.apache.org/core"; > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd > http://cxf.apache.org/bindings/soap > http://cxf.apache.org/schemas/configuration/soap.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd";> > > resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> resource="classpath:META-INF/cxf/cxf-servlet.xml" /> > > id="MessageRouter" > implementor="#MessageRouterService" > address="/fxml/route" /> Mike Barlotta Associate Booz | Allen | Hamilton -Original Message- From: Nino Saturnino Martinez Vazquez Wael [mailto:[EMAIL PROTECTED] Sent: Thursday, December 20, 2007 4:22 AM To: cxf-user@incubator.apache.org Subject: Re: CXF @WebServiceProvider deployment issue My best guess are that its a spring error that tells you that it could not call the default constructor of the class backing the MessageRouter. In your case its the messagerouterservice.. Do this seem to give any hints? regards Barlotta, Michael [USA] wrote: > Hello, I am using CXF 2.0.3 and am deploying an appliation to JBoss > using Spring and packaged as a WAR. > > On JBoss startup I get the following error:BeanCreationException: > Error creating bean with name 'MessageRouter': Invocation of init > method failed; nested exception is java.lang.NullPointerException > > Any idea what is causing this? > > Thanks! > Mike > > //- Java Code Annotations > > @WebServiceProvider( > serviceName="MessageRouterService", > portName="RoutePortType", > targetNamespace="http://x/";, > wsdlLocation="WEB-INF/wsdl/MessageRouter.wsdl" > ) > @ServiceMode(Service.Mode.PAYLOAD) > public class MessageRouterEndpoint implements Provider{ > > > public Source invoke(Source payload) { > ... > } > } > > //- Spring config > http://www.springframework.org/schema/beans"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; > xmlns:jaxws="http://cxf.apache.org/jaxws"; > xmlns:soap="http://cxf.apache.org/bindings/soap"; > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd > http://cxf.apache.org/bindings/soap > http://cxf.apache.org/schemas/configuration/soap.xsd";> > > resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> resource="classpath:META-INF/cxf/cxf-servlet.xml" /> > > id="MessageRouter" > implementor="#MessageRouterService" > address="/fxml/route" /> > ... > > //- Stack Trace > > 2007-12-19 17:08:16,591 55859 ERROR [STDERR] (main:) Dec 19, 2007 > 5:08:16 PM org.apache.cxf.service.factory.ReflectionServiceFactoryBean > buildServiceFromWSDL > INFO: Creating Service {http://x/}MessageRouterService from WSDL: > WEB-INF/wsdl/MessageRouter.wsdl > 2007-12-19 17:08:16,778 56046 ERROR > [org.springframework.web.context.ContextLoader] (main:) Context > initialization failed > org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'MessageRouter': Invocation of init method > failed; nested exception is java.lang.NullPointerException Caused by: > java.lang.NullPointerException > at > org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuil > de > r.java:226) > at > org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuil > de > r.java:150) > at > org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java: > 117) > at > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServi > ce > FromWSDL(ReflectionServiceFactoryBean.java:257) > at > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initialize > Se > rviceModel(ReflectionServiceFactoryBean.java:331) > at > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(Ref > le > ctionServiceFactoryBean.java:151) > at > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServi > ce > FactoryBean.java:93) > at > org.apache.
RE: CXF adds JavaScript client-side processing
I also need to add some more to the example. I ran out of time before adding the complex-object input case.
Re: sample failure: restfull_http_binding
Hi, I have done some testing to the page "test.html". Two fixes: 1) works with IE 6 and FireFox 2 now; 2) customers table is refreshed, not appended. Please validate. Cheers, YI ZHU http://www.nabble.com/file/p14437670/test.html test.html dkulp wrote: > > > > I think these are logged as: > > https://issues.apache.org/jira/browse/CXF-873 > https://issues.apache.org/jira/browse/CXF-889 > > Patches are most welcome. > > Dan > > > On Friday 14 December 2007, YI (William) ZHU wrote: >> Hi, >> >> I found that there two issues in the CXF 2.0.2 sample >> "restfull_http_binding": >> >> 1) the "test.html" page to test the "Jettison/CXF AJAX Demo" is not >> working, I found that the javascript has problem. >> >> 2) if I change the "CustomerServiceImpl.java" file to let the web >> service to return two customers, not the original 1 customer. Then >> following links work fine: >>http://localhost:8080/xml/customers >>http://localhost:8080/xml/customers/123 >>http://localhost:8080/json/customers/123 >> >> but this link "http://localhost:8080/json/customers"; return: >> >> {"acme.Customers":{"acme.customer":[{"acme.id":"789","acme.name":"Will >>iam Zhu"},{"acme.id":"123","acme.name":"Dan Diephouse"}]}} >> >> I thought that's not correct, they should return two "acme.customer" >> items. >> >> Can someone check the implementation of JSON on CXF is OK? >> >> >> Thanks, >> YI ZHU > > > > -- > J. Daniel Kulp > Principal Engineer, IONA > [EMAIL PROTECTED] > http://www.dankulp.com/blog > > -- View this message in context: http://www.nabble.com/sample-failure%3A-restfull_http_binding-tp14339771p14437670.html Sent from the cxf-user mailing list archive at Nabble.com.
RE: CXF @WebServiceProvider deployment issue
Adding portions of the WSDL in case it helps: http://x/"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:xsd="http://www.w3c.org/2001/XMLSchema";> ... ... http:///fxml/route"/> > @WebServiceProvider( > serviceName="MessageRouterService", < mapped to wsdl:service name > portName="RoutePortType", < mapped to wsdl:portType name > targetNamespace="http://x/";, < mapped to wsdl:definitions targetNamespace > wsdlLocation="WEB-INF/wsdl/MessageRouter.wsdl" Thanks, Mike Barlotta Associate Booz | Allen | Hamilton -Original Message- From: Barlotta, Michael [USA] [mailto:[EMAIL PROTECTED] Sent: Thursday, December 20, 2007 9:02 AM To: cxf-user@incubator.apache.org Subject: RE: CXF @WebServiceProvider deployment issue Nino: thanks, but unfortunately no... I have the required default constructor (by virute of not having any constructor). I found this posting, and added the cxf:bus configuration but I still get the same error (see config below). http://www.nabble.com/java.lang.NullPointerException-to14201919.html I have been able to deploy @WebService based endpoints without configuring the bus so not sure what I am missing. I was hoping to get the XML passed straight through so that I could use my Castor mapping & Java POJOs that have already been created/tested. What am I missing? Thanks, > //- Spring config > http://www.springframework.org/schema/beans"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; > xmlns:jaxws="http://cxf.apache.org/jaxws"; > xmlns:soap="http://cxf.apache.org/bindings/soap"; xmlns:cxf="http://cxf.apache.org/core"; > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd > http://cxf.apache.org/bindings/soap > http://cxf.apache.org/schemas/configuration/soap.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd";> > > resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> resource="classpath:META-INF/cxf/cxf-servlet.xml" /> > > id="MessageRouter" > implementor="#MessageRouterService" > address="/fxml/route" /> Mike Barlotta Associate Booz | Allen | Hamilton -Original Message- From: Nino Saturnino Martinez Vazquez Wael [mailto:[EMAIL PROTECTED] Sent: Thursday, December 20, 2007 4:22 AM To: cxf-user@incubator.apache.org Subject: Re: CXF @WebServiceProvider deployment issue My best guess are that its a spring error that tells you that it could not call the default constructor of the class backing the MessageRouter. In your case its the messagerouterservice.. Do this seem to give any hints? regards Barlotta, Michael [USA] wrote: > Hello, I am using CXF 2.0.3 and am deploying an appliation to JBoss > using Spring and packaged as a WAR. > > On JBoss startup I get the following error:BeanCreationException: > Error creating bean with name 'MessageRouter': Invocation of init > method failed; nested exception is java.lang.NullPointerException > > Any idea what is causing this? > > Thanks! > Mike > > //- Java Code Annotations > > @WebServiceProvider( > serviceName="MessageRouterService", > portName="RoutePortType", > targetNamespace="http://x/";, > wsdlLocation="WEB-INF/wsdl/MessageRouter.wsdl" > ) > @ServiceMode(Service.Mode.PAYLOAD) > public class MessageRouterEndpoint implements Provider{ > > > public Source invoke(Source payload) { > ... > } > } > > //- Spring config > http://www.springframework.org/schema/beans"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; > xmlns:jaxws="http://cxf.apache.org/jaxws"; > xmlns:soap="http://cxf.apache.org/bindings/soap"; > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd > http://cxf.apache.org/bindings/soap > http://cxf.apache.org/schemas/configuration/soap.xsd";> > > resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> resource="classpath:META-INF/cxf/cxf-servlet.xml" /> > > id="MessageRouter" > implementor="#MessageRouterService" > address="/fxml/route" /> > ... > > //- Stack Trace > > 2007-12-19 17:08:16,591 55859 ERROR [STDERR] (main:) Dec 19, 2007 > 5:08:16 PM org.apache.cxf.service.factory.ReflectionServiceFactoryBean > buildServiceFromWSDL > INFO: Creating Service {http://x/}MessageRouterService from WSDL: > WEB-INF/wsdl/MessageRouter.wsdl > 2007-12-19 17:08:16,778 56046
Re: Working example with tests based on the maven archetype cxf-http-basic extended to soap though!
Nino, Can you file an enhancement request in our JIRA and attach it there? We cannot really accept patches/changes except for those that come through there with the "Grant permissions for apache to redistribute" check box checked. It's a legal thing to protect Apache and to protect the users of Apache software. Thanks! Dan On Thursday 20 December 2007, Nino Saturnino Martinez Vazquez Wael wrote: > Hi I've taken the liberty to write some tests to the archetype, and as > the project im on now needed to use soap its targeted towards soap. > > The tests I've done should be incorporated into the archetype so that > it comes with tests (I could go and make the templates if wanted). > Although the tests needs to be verified. > > Heres the link to the project: > > http://www.fileshost.com/en/file/22681/basic-zip.html > > The tests are somewhat basic: > > Testing bindings, testing wsdl schema, testing invokation of methods. > Etc... -- J. Daniel Kulp Principal Engineer, IONA [EMAIL PROTECTED] http://www.dankulp.com/blog
Re: Snapshot release 2.1
On Wednesday 19 December 2007, MyScreenName wrote: > Any idea when 2.1 will be declared stable (not snapshot)? Just out of curiosity, is there a particular feature/fix that you need from 2.1? Most BUG FIXES are being back ported to the 2.0.x branch and we are planning a 2.0.4 patch release with all the bug fixes sometime in mid January. Thus, if you need a bug fix (not a new feature), we could make sure it gets into that. -- J. Daniel Kulp Principal Engineer, IONA [EMAIL PROTECTED] http://www.dankulp.com/blog
Re: CXF @WebServiceProvider deployment issue
I believe portName should map to the name of the port in the service. Not the portType name. Dan On Thursday 20 December 2007, Barlotta, Michael [USA] wrote: > > @WebServiceProvider( > > serviceName="MessageRouterService", < mapped to > > wsdl:service name > > > portName="RoutePortType", < mapped > > to > > wsdl:portType name > > > targetNamespace="http://x/", < mapped > > to > > wsdl:definitions targetNamespace > > > wsdlLocation="WEB-INF/wsdl/MessageRouter.wsdl" -- J. Daniel Kulp Principal Engineer, IONA [EMAIL PROTECTED] http://www.dankulp.com/blog
Adding ServiceConfigurations / ServiceFactories
Hi, I try to get used to the inner workings of cxf. I suppose it is possible to add new ServiceFactories to cxf, but how would this be done? If I create a new ServiceFactory by subclassing AbstractServiceFactory, how do I add it to cxf? Another thing: the documentation talks about customizing the behaviour of ReflectionServiceFactoryBean by adding ServiceConfigurations. How do I add these ServiceConfigurations to cxf in a servlet environment. The example creates the server from scratch, but I understand that in a servlet context, the Server instance is started (I think) from CXFServlet..? I try to do this: public class MyCustomServlet extends CXFServlet { @Override public void init(ServletConfig servletConfig) throws ServletException { super.init(servletConfig); Bus bus = getBus(); BusFactory.setDefaultBus(bus); ReflectionServiceFactoryBean serviceFactory = new ReflectionServiceFactoryBean(); serviceFactory.getServiceConfigurations() .add(0, new AbstractServiceConfiguration() { .. my programmatically created service setup .. }); ... now, how to set my custom ServiceFactory to be used? ... // standard JAX-WS service creation Endpoint.publish("/OtherService", new OtherServiceImpl()); } } Thanks, -- Michael -- Dipl.-Technoinform Michael Kleinhenz tarent Gesellschaft für Softwareentwicklung und IT-Beratung mbH Heilsbachstr. 24, 53123 Bonn | Poststr. 4-5, 10178 Berlin fon: +49(228) / 52675-0 | fon: +49(30) / 27594853 fax: +49(228) / 52675-25 | fax: +49(30) / 78709617 Geschäftsführer: Boris Esser, Elmar Geese, Thomas Müller-Ackermann HRB AG Bonn 5168 - Ust-ID: DE122264941
'any' in a Javascript client
I'm interested in opinions about how the XML Schema 'any' construct could be mapped to Javascript. Obvious possibilities include: a) a string of XML b) a DOM node c) a function that returns a string of XML, since that could be a closure over DOM or E4X or whatever someone likes. Anyone have an opinion?
Jetty + spring, I am missing a point
I have always been using CXF deployed on tomcat. Switching to Jetty embedded I have some problems trying to understand some things. When I first publish and Endpoint CXF such as: Endpoint.publish(address, implementor); CXF loads the cxf.xml file and the Bus and everything else are instantiated, the jetty server is started and the endpoints get published. I would like to create everything in a Spring fashion without using (eventually) the Endpoint.publish, with Spring creating and publishign magically the endpoints 4 me. Creating an ApplicationContext explicitly in my code I see almost everthing to be correctly instantiated, but the Jetty server seems not to be up and running. Should I have to start it explicitly? In this case what should be the proper endpoint address in the cxf file?? 4 example assuming: Object implementor = new GreeterImpl(); String address = "http://localhost:8080/SoapContext/SoapPort";; Endpoint.create(Greeter.class); what should I have to write in my cxf.xml, something like; http://localhost:9000/SoapContext/SoapPort"; implementor="org.apache.hello_world_soap_http.GreeterImpl" > ?? Where is my fault? -- View this message in context: http://www.nabble.com/Jetty-%2B-spring%2C-I-am-missing-a-point-tp14440937p14440937.html Sent from the cxf-user mailing list archive at Nabble.com.
RE: extending databinding
hello Jervis, i'm try to use cxf with a developed framework. This are 3 kind of problem that i have: 1). when a web service return an application object, the generated wsdl return more fields than the necessary to transfer. how can i configure cxf to define the fields to transfer? 2). when a web service return a List (or a class that extends an implementation of List) the generated wsdl not recognize a sequence of elements. Can i change this? 3). I have a hierarchy of object that extend from a base class. I want to define a web service with a parameter whose type is the base class. Can I do this? (the generated wsdl only define the base class and don't their subclasses). Another problem is that I can only create instances of these objects using a builder. These problems are using jaxb. I can't start using aegis because throws exceptions when try to handle differents objects (or components of them) provided by the framework. thanks, Mariano > Hi Mariano, what kind of data bindings are you looking for? Is it sth very > simple such as marshaling > an Inputstream to a Source object (in this case, you want look into > SourceDataBinding.java) > or sth a little bit more complex based on schemas, such as JAXB databinding > or Aegis databinding. > In the later case, you may want to look into how Aegis data binding is > implemented. Benson > has done a lot of work recently on Aegis binding. We also have a plan to > support more data > bindings ,such as XMLBeans, JiBX, JaxMe etc, not sure if one of them is what > you are looking > for. Anyway, we would be very happy to provide more helps if you can elaborate your requirement > into more details. > Thanks, > Jervis > > > > > -Original Message- > > From: Mariano Kohan [mailto:[EMAIL PROTECTED] > > Sent: 2007��12��19�� 2:21 > > To: cxf-user@incubator.apache.org > > Subject: extending databinding > > > > hello, > > > > I want to use cxf to develop some web service, but I need to extend the > > databinding because the provided ones with cxf don't work with my > > application objects. > > > Can i do it with cxf? How? > > > I read the javadoc of > > org.apache.cxf.databinding.source.SourceDataBindingbut I don't > > understand well how to use it. > > Does it have a sample inside the distribution? > > > > thanks, > > Mariano
CXF and JSON
I'm considering implementing (or re-implementing) a service from REST/SOAP to JSON. I'm wondering if someone has a workable example (the docs I've found are a bit sparse) in terms of how to configure my beans.xml and how to set up the SEI. Thanks!
RE: CXF @WebServiceProvider deployment issue
Thanks Dan, I re-read the docs and you are right. Unfortunately that did not fix the problem. I checked the code and the line that generates the NPE is 226 of WSDLServiceBuilder: 223 PortType bindingPt = binding.getPortType(); 226 PortType pt = def.getPortType(bindingPt.getQName()); Turns out the bindingPt is null, any ideas or tips you can give as to why this is the case? Mike Barlotta Associate Booz | Allen | Hamilton -Original Message- From: Daniel Kulp [mailto:[EMAIL PROTECTED] Sent: Thursday, December 20, 2007 11:45 AM To: cxf-user@incubator.apache.org Cc: Barlotta, Michael [USA] Subject: Re: CXF @WebServiceProvider deployment issue I believe portName should map to the name of the port in the service. Not the portType name. Dan On Thursday 20 December 2007, Barlotta, Michael [USA] wrote: > > @WebServiceProvider( > > serviceName="MessageRouterService", < mapped to > > wsdl:service name > > > portName="RoutePortType", < mapped > > to > > wsdl:portType name > > > targetNamespace="http://x/", < mapped > > to > > wsdl:definitions targetNamespace > > > wsdlLocation="WEB-INF/wsdl/MessageRouter.wsdl" -- J. Daniel Kulp Principal Engineer, IONA [EMAIL PROTECTED] http://www.dankulp.com/blog
Re: CXF @WebServiceProvider deployment issue
All I can think of to try is to run the validator (in our bin directory) on the wsdl and see if it has any issues with it. Maybe the binding node doesn't point to the correct portType or something.I don't really know without looking more at the wsdl. Dan On Thursday 20 December 2007, Barlotta, Michael [USA] wrote: > Thanks Dan, I re-read the docs and you are right. Unfortunately that > did not fix the problem. > > I checked the code and the line that generates the NPE is 226 of > WSDLServiceBuilder: 223 PortType bindingPt = binding.getPortType(); > 226 PortType pt = def.getPortType(bindingPt.getQName()); > > Turns out the bindingPt is null, any ideas or tips you can give as to > why this is the case? > > Mike Barlotta > Associate > Booz | Allen | Hamilton > > -Original Message- > From: Daniel Kulp [mailto:[EMAIL PROTECTED] > Sent: Thursday, December 20, 2007 11:45 AM > To: cxf-user@incubator.apache.org > Cc: Barlotta, Michael [USA] > Subject: Re: CXF @WebServiceProvider deployment issue > > > I believe portName should map to the name of the port in the service. > Not the portType name. > > Dan > > On Thursday 20 December 2007, Barlotta, Michael [USA] wrote: > > > @WebServiceProvider( > > > serviceName="MessageRouterService", < mapped to > > > > wsdl:service name > > > > > portName="RoutePortType", < mapped > > > to > > > > wsdl:portType name > > > > > targetNamespace="http://x/", < mapped > > > to > > > > wsdl:definitions targetNamespace > > > > > wsdlLocation="WEB-INF/wsdl/MessageRouter.wsdl" > > -- > J. Daniel Kulp > Principal Engineer, IONA > [EMAIL PROTECTED] > http://www.dankulp.com/blog -- J. Daniel Kulp Principal Engineer, IONA [EMAIL PROTECTED] http://www.dankulp.com/blog
Strange error with JAX-WS and JDK 1.5
I have a simple Hello World application that is configured following: HelloWorld.java Interface @WebService public interface HelloWorld { String sayHello( @WebParam(name="text") String text ); } HelloWorldImpl.java @WebService(endpointInterface = "test.jws.HelloWorld") public class HelloWorldImpl implements HelloWorld and the Spring configuration looks like: I am bundling this as a WAR and running on Caucho Resin 3.1.3. When I start the application server under JDK 1.6.0_02, it works fine and serves requests. The problem occurs while starting the application server under JDK 1.5.0_06. I am getting the UnsupportedOperationException when Spring tries to initialize the HelloWorldImpl bean. Here is the stack trace: [17:39:45.436] Could not find the configuration file cxf.xml on the classpath. [17:40:23.107] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloWorld': Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError [17:40:23.107] Caused by: java.lang.ExceptionInInitializerError [17:40:23.107] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [17:40:23.107] at sun.reflect.NativeConstructorAccessorImpl.newInstance( NativeConstructorAccessorImpl.java:39) [17:40:23.107] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( DelegatingConstructorAccessorImpl.java:27) [17:40:23.107] at java.lang.reflect.Constructor.newInstance( Constructor.java:494) [17:40:23.107] at org.springframework.beans.BeanUtils.instantiateClass( BeanUtils.java:85) [17:40:23.107] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:87) [17:40:23.107] at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor (ConstructorResolver.java:186) [17:40:23.107] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor (AbstractAutowireCapableBeanFactory.java:795) [17:40:23.107] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:713) [17:40:23.107] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:386) [17:40:23.107] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject( AbstractBeanFactory.java:249) [17:40:23.107] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:155) [17:40:23.107] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean( AbstractBeanFactory.java:246) [17:40:23.107] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean( AbstractBeanFactory.java:160) [17:40:23.107] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:291) [17:40:23.107] at org.springframework.context.support.AbstractApplicationContext.refresh( AbstractApplicationContext.java:352) [17:40:23.107] at org.springframework.web.context.ContextLoader.createWebApplicationContext( ContextLoader.java:245) [17:40:23.107] at org.springframework.web.context.ContextLoader.initWebApplicationContext( ContextLoader.java:188) [17:40:23.107] at org.springframework.web.context.ContextLoaderListener.contextInitialized( ContextLoaderListener.java:49) [17:40:23.107] at com.caucho.server.webapp.WebApp.start(WebApp.java :1793) [17:40:23.107] at com.caucho.server.deploy.DeployController.startImpl( DeployController.java:646) [17:40:23.107] at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit( StartAutoRedeployAutoStrategy.java:72) [17:40:23.107] at com.caucho.server.deploy.DeployController.startOnInit( DeployController.java:528) [17:40:23.107] at com.caucho.server.deploy.DeployContainer.start( DeployContainer.java:163) [17:40:23.107] at com.caucho.server.webapp.WebAppContainer.start( WebAppContainer.java:675) [17:40:23.107] at com.caucho.server.host.Host.start(Host.java:437) [17:40:23.107] at com.caucho.server.deploy.DeployController.startImpl( DeployController.java:646) [17:40:23.107] at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit( StartAutoRedeployAutoStrategy.java:72) [17:40:23.107] at com.caucho.server.deploy.DeployController.startOnInit( DeployController.java:528) [17:40:23.107] at com.caucho.server.deploy.DeployContainer.start( DeployContainer.java:163) [17:40:23.107] at com.caucho.server.host.HostContainer.start( HostContainer.java:479) [17:40:23.107] at com.caucho.server.cluster.Server.start(Server.java :1151) [17:40:23.107] at com.caucho.server.cluster.Cluster.startServer( Cluster.java:719) [17:40:23.107] at com.caucho.server.cluster.ClusterServer.startServer( ClusterServer.
Re: Jetty + spring, I am missing a point
You need to create the spring bus first to triage the spring application context loading. SpringBusFactory bf = new SpringBusFactory(); Bus bus = bf.createBus(); Or you can take the http-jetty systest as an example[1] [1] https://svn.apache.org/repos/asf/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty Willem. Davide Gesino wrote: I have always been using CXF deployed on tomcat. Switching to Jetty embedded I have some problems trying to understand some things. When I first publish and Endpoint CXF such as: Endpoint.publish(address, implementor); CXF loads the cxf.xml file and the Bus and everything else are instantiated, the jetty server is started and the endpoints get published. I would like to create everything in a Spring fashion without using (eventually) the Endpoint.publish, with Spring creating and publishign magically the endpoints 4 me. Creating an ApplicationContext explicitly in my code I see almost everthing to be correctly instantiated, but the Jetty server seems not to be up and running. Should I have to start it explicitly? In this case what should be the proper endpoint address in the cxf file?? 4 example assuming: Object implementor = new GreeterImpl(); String address = "http://localhost:8080/SoapContext/SoapPort";; Endpoint.create(Greeter.class); what should I have to write in my cxf.xml, something like; http://localhost:9000/SoapContext/SoapPort"; implementor="org.apache.hello_world_soap_http.GreeterImpl" > ?? Where is my fault?
Re: CXF and JSON
Hi , You can find the example in the CXF_KIT/samples/restful_http_binding Willem. Vespa, Anthony J wrote: I'm considering implementing (or re-implementing) a service from REST/SOAP to JSON. I'm wondering if someone has a workable example (the docs I've found are a bit sparse) in terms of how to configure my beans.xml and how to set up the SEI. Thanks!
Re: Strange error with JAX-WS and JDK 1.5
Hi , I think Resin 3.1.3 may ship a earlier version of jaxws-api.jar and CXF need to use the jaxws-api.2.0.jar. As you know , JDK 1.60_02 ships with jaxws-api.2.0 jar , so Resin's jaxws-api jar will get no chance to be loaded. But there is no any jaxws-api.jar in JDK 1.5.0_06, and the Resin's jaxws-api is loaded. You just need to endorse the jaxws-api.jar or let the war's lib jars load first. Here are some documents for you [1] [1]http://cwiki.apache.org/CXF20DOC/appserverguide.html Willem. Atif Khan wrote: I have a simple Hello World application that is configured following: HelloWorld.java Interface @WebService public interface HelloWorld { String sayHello( @WebParam(name="text") String text ); } HelloWorldImpl.java @WebService(endpointInterface = "test.jws.HelloWorld") public class HelloWorldImpl implements HelloWorld and the Spring configuration looks like: I am bundling this as a WAR and running on Caucho Resin 3.1.3. When I start the application server under JDK 1.6.0_02, it works fine and serves requests. The problem occurs while starting the application server under JDK 1.5.0_06. I am getting the UnsupportedOperationException when Spring tries to initialize the HelloWorldImpl bean. Here is the stack trace: [17:39:45.436] Could not find the configuration file cxf.xml on the classpath. [17:40:23.107] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloWorld': Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError [17:40:23.107] Caused by: java.lang.ExceptionInInitializerError [17:40:23.107] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [17:40:23.107] at sun.reflect.NativeConstructorAccessorImpl.newInstance( NativeConstructorAccessorImpl.java:39) [17:40:23.107] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( DelegatingConstructorAccessorImpl.java:27) [17:40:23.107] at java.lang.reflect.Constructor.newInstance( Constructor.java:494) [17:40:23.107] at org.springframework.beans.BeanUtils.instantiateClass( BeanUtils.java:85) [17:40:23.107] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:87) [17:40:23.107] at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor (ConstructorResolver.java:186) [17:40:23.107] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor (AbstractAutowireCapableBeanFactory.java:795) [17:40:23.107] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:713) [17:40:23.107] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:386) [17:40:23.107] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject( AbstractBeanFactory.java:249) [17:40:23.107] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:155) [17:40:23.107] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean( AbstractBeanFactory.java:246) [17:40:23.107] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean( AbstractBeanFactory.java:160) [17:40:23.107] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:291) [17:40:23.107] at org.springframework.context.support.AbstractApplicationContext.refresh( AbstractApplicationContext.java:352) [17:40:23.107] at org.springframework.web.context.ContextLoader.createWebApplicationContext( ContextLoader.java:245) [17:40:23.107] at org.springframework.web.context.ContextLoader.initWebApplicationContext( ContextLoader.java:188) [17:40:23.107] at org.springframework.web.context.ContextLoaderListener.contextInitialized( ContextLoaderListener.java:49) [17:40:23.107] at com.caucho.server.webapp.WebApp.start(WebApp.java :1793) [17:40:23.107] at com.caucho.server.deploy.DeployController.startImpl( DeployController.java:646) [17:40:23.107] at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit( StartAutoRedeployAutoStrategy.java:72) [17:40:23.107] at com.caucho.server.deploy.DeployController.startOnInit( DeployController.java:528) [17:40:23.107] at com.caucho.server.deploy.DeployContainer.start( DeployContainer.java:163) [17:40:23.107] at com.caucho.server.webapp.WebAppContainer.start( WebAppContainer.java:675) [17:40:23.107] at com.caucho.server.host.Host.start(Host.java:437) [17:40:23.107] at com.caucho.server.deploy.DeployController.startImpl( DeployController.java:646) [17:40:23.107] at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit( StartAutoRedeployAutoStrategy.java:72) [17:40:23.107]
Re: Strange error with JAX-WS and JDK 1.5
Thanks. Putting jaxws-api.jar in jre/lib/ext did the trick. The problem I have is that I can not put the jar file production environment in the jre directory. Also, loading war libs first is out of question. Is there a way to configure Resin to load the jar from a different directory before the app server libs? On Dec 20, 2007 6:14 PM, Willem Jiang <[EMAIL PROTECTED]> wrote: > Hi , > > I think Resin 3.1.3 may ship a earlier version of jaxws-api.jar and CXF > need to use the jaxws-api.2.0.jar. > As you know , JDK 1.60_02 ships with jaxws-api.2.0 jar , so Resin's > jaxws-api jar will get no chance to be loaded. > But there is no any jaxws-api.jar in JDK 1.5.0_06, and the Resin's > jaxws-api is loaded. > > You just need to endorse the jaxws-api.jar or let the war's lib jars > load first. > > Here are some documents for you [1] > > [1]http://cwiki.apache.org/CXF20DOC/appserverguide.html > > Willem. > > Atif Khan wrote: > > I have a simple Hello World application that is configured following: > > > > HelloWorld.java Interface > > > > @WebService > > public interface HelloWorld > > { > > String sayHello( @WebParam(name="text") String text ); > > } > > > > HelloWorldImpl.java > > @WebService(endpointInterface = "test.jws.HelloWorld") > > public class HelloWorldImpl > > implements HelloWorld > > > > and the Spring configuration looks like: > > > > > > > > > > > >> /> > >> address="/HelloWorld" /> > > > > > > I am bundling this as a WAR and running on Caucho Resin 3.1.3. When I > start > > the application server under JDK 1.6.0_02, it works fine and serves > > requests. The problem occurs while starting the application server under > JDK > > 1.5.0_06. I am getting the UnsupportedOperationException when Spring > tries > > to initialize the HelloWorldImpl bean. Here is the stack trace: > > > > [17:39:45.436] Could not find the configuration file cxf.xml on the > > classpath. > > [17:40:23.107] org.springframework.beans.factory.BeanCreationException: > > Error creating bean with name 'helloWorld': Instantiation of bean > failed; > > nested exception is java.lang.ExceptionInInitializerError > > [17:40:23.107] Caused by: java.lang.ExceptionInInitializerError > > [17:40:23.107] at > > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > > Method) > > [17:40:23.107] at > sun.reflect.NativeConstructorAccessorImpl.newInstance( > > NativeConstructorAccessorImpl.java:39) > > [17:40:23.107] at > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance( > > DelegatingConstructorAccessorImpl.java:27) > > [17:40:23.107] at java.lang.reflect.Constructor.newInstance( > > Constructor.java:494) > > [17:40:23.107] at > org.springframework.beans.BeanUtils.instantiateClass( > > BeanUtils.java:85) > > [17:40:23.107] at > > > org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate > > (SimpleInstantiationStrategy.java:87) > > [17:40:23.107] at > > > org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor > > (ConstructorResolver.java:186) > > [17:40:23.107] at > > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor > > (AbstractAutowireCapableBeanFactory.java:795) > > [17:40:23.107] at > > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance > > (AbstractAutowireCapableBeanFactory.java:713) > > [17:40:23.107] at > > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean > > (AbstractAutowireCapableBeanFactory.java:386) > > [17:40:23.107] at > > > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject( > > AbstractBeanFactory.java:249) > > [17:40:23.107] at > > > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton > > (DefaultSingletonBeanRegistry.java:155) > > [17:40:23.107] at > > org.springframework.beans.factory.support.AbstractBeanFactory.getBean( > > AbstractBeanFactory.java:246) > > [17:40:23.107] at > > org.springframework.beans.factory.support.AbstractBeanFactory.getBean( > > AbstractBeanFactory.java:160) > > [17:40:23.107] at > > > org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons > > (DefaultListableBeanFactory.java:291) > > [17:40:23.107] at > > org.springframework.context.support.AbstractApplicationContext.refresh( > > AbstractApplicationContext.java:352) > > [17:40:23.107] at > > > org.springframework.web.context.ContextLoader.createWebApplicationContext( > > ContextLoader.java:245) > > [17:40:23.107] at > > org.springframework.web.context.ContextLoader.initWebApplicationContext( > > ContextLoader.java:188) > > [17:40:23.107] at > > org.springframework.web.context.ContextLoaderListener.contextInitialized > ( > > ContextLoaderListener.java:49) > > [17:40:23.107] at com.caucho.server.webapp.WebApp.start(WebApp.java > > :1793) > > [17:40:23.1
Re: Adding ServiceConfigurations / ServiceFactories
Hi Micheal , I suppose you actually mean create your own ServiceFactoryBean that extends AbstractServiceFactoryBean. AbstractServiceFactory is only used for code generation . You can create new ServiceFactoryBean by extending ReflectionServiceFactoryBean , JaxwsServiceFactoryBean or subclassing AbstractServiceFactoryBean. Then use your own ServiceFactoryBean to create your Servlet : public class MyCustomServlet extends CXFServlet { @Override public void init(ServletConfig servletConfig) throws ServletException { super.init(servletConfig); Bus bus = getBus(); BusFactory.setDefaultBus(bus); YourServiceFactoryBean serviceFactory = new YourServiceFactoryBean (); serviceFactory.getServiceConfigurations() .add(0, new AbstractServiceConfiguration() // standard JAX-WS service creation Endpoint.publish("/OtherService", new OtherServiceImpl()); } } Regards Jim Michael Kleinhenz wrote: Hi, I try to get used to the inner workings of cxf. I suppose it is possible to add new ServiceFactories to cxf, but how would this be done? If I create a new ServiceFactory by subclassing AbstractServiceFactory, how do I add it to cxf? Another thing: the documentation talks about customizing the behaviour of ReflectionServiceFactoryBean by adding ServiceConfigurations. How do I add these ServiceConfigurations to cxf in a servlet environment. The example creates the server from scratch, but I understand that in a servlet context, the Server instance is started (I think) from CXFServlet..? I try to do this: public class MyCustomServlet extends CXFServlet { @Override public void init(ServletConfig servletConfig) throws ServletException { super.init(servletConfig); Bus bus = getBus(); BusFactory.setDefaultBus(bus); ReflectionServiceFactoryBean serviceFactory = new ReflectionServiceFactoryBean(); serviceFactory.getServiceConfigurations() .add(0, new AbstractServiceConfiguration() { .. my programmatically created service setup .. }); ... now, how to set my custom ServiceFactory to be used? ... // standard JAX-WS service creation Endpoint.publish("/OtherService", new OtherServiceImpl()); } } Thanks, -- Michael
Re: Strange error with JAX-WS and JDK 1.5
I have never used Resin, I just got some experience from some other web containers, they provide some kind of configuration to load your application JAR first. May be you can ask help from Resin. Willem. Atif Khan wrote: Thanks. Putting jaxws-api.jar in jre/lib/ext did the trick. The problem I have is that I can not put the jar file production environment in the jre directory. Also, loading war libs first is out of question. Is there a way to configure Resin to load the jar from a different directory before the app server libs? On Dec 20, 2007 6:14 PM, Willem Jiang <[EMAIL PROTECTED]> wrote: Hi , I think Resin 3.1.3 may ship a earlier version of jaxws-api.jar and CXF need to use the jaxws-api.2.0.jar. As you know , JDK 1.60_02 ships with jaxws-api.2.0 jar , so Resin's jaxws-api jar will get no chance to be loaded. But there is no any jaxws-api.jar in JDK 1.5.0_06, and the Resin's jaxws-api is loaded. You just need to endorse the jaxws-api.jar or let the war's lib jars load first. Here are some documents for you [1] [1]http://cwiki.apache.org/CXF20DOC/appserverguide.html Willem. Atif Khan wrote: I have a simple Hello World application that is configured following: HelloWorld.java Interface @WebService public interface HelloWorld { String sayHello( @WebParam(name="text") String text ); } HelloWorldImpl.java @WebService(endpointInterface = "test.jws.HelloWorld") public class HelloWorldImpl implements HelloWorld and the Spring configuration looks like: extension-http-binding.xml" /> I am bundling this as a WAR and running on Caucho Resin 3.1.3. When I start the application server under JDK 1.6.0_02, it works fine and serves requests. The problem occurs while starting the application server under JDK 1.5.0_06. I am getting the UnsupportedOperationException when Spring tries to initialize the HelloWorldImpl bean. Here is the stack trace: [17:39:45.436] Could not find the configuration file cxf.xml on the classpath. [17:40:23.107] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloWorld': Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError [17:40:23.107] Caused by: java.lang.ExceptionInInitializerError [17:40:23.107] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [17:40:23.107] at sun.reflect.NativeConstructorAccessorImpl.newInstance( NativeConstructorAccessorImpl.java:39) [17:40:23.107] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( DelegatingConstructorAccessorImpl.java:27) [17:40:23.107] at java.lang.reflect.Constructor.newInstance( Constructor.java:494) [17:40:23.107] at org.springframework.beans.BeanUtils.instantiateClass( BeanUtils.java:85) [17:40:23.107] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:87) [17:40:23.107] at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor (ConstructorResolver.java:186) [17:40:23.107] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor (AbstractAutowireCapableBeanFactory.java:795) [17:40:23.107] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:713) [17:40:23.107] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:386) [17:40:23.107] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject( AbstractBeanFactory.java:249) [17:40:23.107] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:155) [17:40:23.107] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean( AbstractBeanFactory.java:246) [17:40:23.107] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean( AbstractBeanFactory.java:160) [17:40:23.107] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:291) [17:40:23.107] at org.springframework.context.support.AbstractApplicationContext.refresh( AbstractApplicationContext.java:352) [17:40:23.107] at org.springframework.web.context.ContextLoader.createWebApplicationContext( ContextLoader.java:245) [17:40:23.107] at org.springframework.web.context.ContextLoader.initWebApplicationContext( ContextLoader.java:188) [17:40:23.107] at org.springframework.web.context.ContextLoaderListener.contextInitialized ( ContextLoaderListener.java:49) [17:40:23.107] at com.caucho.server.webap
RE: CXF and JSON
I would encourage you to try CXF JSR-311 (JAX-RS) implementation instead. It is standard based (CXF HTTP binding is not standard based), and the development activities around CXF JSR-311 are much more active. CXF JSR-311 (JAX-RS) demo: samples\restful_jaxrs System test: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/ And they all work! :-) Docs: http://cwiki.apache.org/CXF20DOC/jax-rs-jsr-311.html Let me know if you run into any problems. Cheers, Jervis > -Original Message- > From: Willem Jiang [mailto:[EMAIL PROTECTED] > Sent: 2007年12月21日 7:02 > To: cxf-user@incubator.apache.org > Subject: Re: CXF and JSON > > Hi , > You can find the example in the CXF_KIT/samples/restful_http_binding > > Willem. > Vespa, Anthony J wrote: > > I'm considering implementing (or re-implementing) a service from > > REST/SOAP to JSON. I'm wondering if someone has a workable example > (the > > docs I've found are a bit sparse) in terms of how to configure my > > beans.xml and how to set up the SEI. > > > > Thanks! > > > > IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: Jetty + spring, I am missing a point
Davide Gesino wrote: I have always been using CXF deployed on tomcat. Switching to Jetty embedded I have some problems trying to understand some things. When I first publish and Endpoint CXF such as: Endpoint.publish(address, implementor); CXF loads the cxf.xml file and the Bus and everything else are instantiated, the jetty server is started and the endpoints get published. I would like to create everything in a Spring fashion without using (eventually) the Endpoint.publish, with Spring creating and publishign magically the endpoints 4 me. Creating an ApplicationContext explicitly in my code I see almost everthing to be correctly instantiated, but the Jetty server seems not to be up and running. Should I have to start it explicitly? In this case what should be the proper endpoint address in the cxf file?? 4 example assuming: Object implementor = new GreeterImpl(); String address = "http://localhost:8080/SoapContext/SoapPort";; Endpoint.create(Greeter.class); what should I have to write in my cxf.xml, something like; http://localhost:9000/SoapContext/SoapPort"; implementor="org.apache.hello_world_soap_http.GreeterImpl" > ?? Where is my fault? Did you use this spring configuration to create the ApplicationContext ? If yes , then you do not need to start the sever explicitly . Cxf use the spring bean definition parser to create the Endpoint and publish it automatically. The address is also correct in your spring configuration . I do not see any error . I tired the following junit test code it works. @Test public void testEndpoints() throws Exception { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(new String[] {"/org/apache/cxf/systest/spring/tmp.xml"}); Thread.sleep(300*1000); } Regards Jim
Re: extending databinding
Hi, hello Jervis, i'm try to use cxf with a developed framework. This are 3 kind of problem that i have: 1). when a web service return an application object, the generated wsdl return more fields than the necessary to transfer. how can i configure cxf to define the fields to transfer? I do not understand what you mean . Do you want to JAXB marshal part of the fileds? You can do it by annotating @XmlTransient to the filed you do not want to expose : public class USAAddress { @XmlTransient public String name; public String time; } 2). when a web service return a List (or a class that extends an implementation of List) the generated wsdl not recognize a sequence of elements. Can i change this? Can you give us a wsdl or soap message segment ? I do not get what you exactly mean . 3). I have a hierarchy of object that extend from a base class. I want to define a web service with a parameter whose type is the base class. Can I do this? (the generated wsdl only define the base class and don't their subclasses). Another problem is that I can only create instances of these objects using a builder. You can do it. If you hava CXF source code , you can refer to type_substitution system test. Cheers Jim
Re: Working example with tests based on the maven archetype cxf-http-basic extended to soap though!
Sorry, I forgot.. Sure.. Here it is: https://issues.apache.org/jira/browse/CXF-1325 Daniel Kulp wrote: Nino, Can you file an enhancement request in our JIRA and attach it there? We cannot really accept patches/changes except for those that come through there with the "Grant permissions for apache to redistribute" check box checked. It's a legal thing to protect Apache and to protect the users of Apache software. Thanks! Dan On Thursday 20 December 2007, Nino Saturnino Martinez Vazquez Wael wrote: Hi I've taken the liberty to write some tests to the archetype, and as the project im on now needed to use soap its targeted towards soap. The tests I've done should be incorporated into the archetype so that it comes with tests (I could go and make the templates if wanted). Although the tests needs to be verified. Heres the link to the project: http://www.fileshost.com/en/file/22681/basic-zip.html The tests are somewhat basic: Testing bindings, testing wsdl schema, testing invokation of methods. Etc... -- Nino Martinez Wael Java Specialist @ Jayway DK http://www.jayway.dk +45 2936 7684