Your two ends are disagreeing about the namespace. What data binding are you using?
On Fri, Oct 29, 2010 at 7:18 PM, Joe Lin <[email protected]> wrote: > I corrected that problem. I need to setServiceClass for the factory but now > when I tried to make an invokation at hello2.sayHello("yo!") I'm getting a > "Caused by: javax.xml.bind.UnmarshalException: unexpected element > (uri:"http://order.demo/", local:"arg0"). Expected elements are <{}arg0>". > > Any help? > > Following is the new code. > > @WebService(endpointInterface="demo.order.HelloService") > public class HelloImpl implements HelloService { > > �...@override > public String sayHello(String name) { > if ( name == null ) > name = "Nothing"; > // TODO Auto-generated method stub > > ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); > factory.setAddress("local://hello"); > factory.setServiceClass(HelloService.class); //<----------- > need to ass this > > HelloService hello2 = (HelloService) factory.create(); > > Method[] methods = hello2.getClass().getDeclaredMethods(); > > name = hello2.sayHello("yo!"); //<------------- JAXB problem > here > > return "hello " + name ; > } > > } > --- On Fri, 10/29/10, Joe Lin <[email protected]> wrote: > >> From: Joe Lin <[email protected]> >> Subject: Re: Problem using LocalTransport in Tomcat >> To: [email protected], "Daniel Kulp" <[email protected]> >> Date: Friday, October 29, 2010, 2:35 PM >> Thanks. That works. But now I have a >> new problem. Essentially what I'm trying to accomplish is to >> call another service on LocalTransport from on of the >> service. I have HelloImpl and HelloImpl2 all implements >> HelloService. HelloImpl2 is the service on LocalTransport >> and I'm trying to call HelloImpl2 from HelloImpl. But I'm >> getting the following exception. It failed at >> ClientProxyFactory.create(): >> >> ============================================ >> at >> javax.servlet.http.HttpServlet.service(HttpServlet.java:617) >> at >> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) >> at >> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) >> at >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) >> at >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) >> at >> java.lang.Thread.run(Thread.java:637) >> Caused by: java.lang.NullPointerException >> at >> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.checkServiceClassAnnotations(ReflectionServiceFactoryBean.java:2340) >> at >> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.setServiceClass(ReflectionServiceFactoryBean.java:2337) >> at >> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.initializeServiceFactory(AbstractWSDLBasedEndpointFactory.java:230) >> at >> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:100) >> at >> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90) >> at >> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:105) >> at >> demo.order.HelloImpl.sayHello(HelloImpl.java:19) >> 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:597) >> at >> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173) >> at >> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89) >> ... 30 more >> >> ============================================ >> >> Below is my interface and implementation: >> >> >> @WebService >> public interface HelloService { >> >> @WebMethod >> String sayHello(String name); >> } >> >> @WebService(endpointInterface="demo.order.HelloService") >> public class HelloImpl2 implements HelloService { >> >> @Override >> public String sayHello(String name) { >> if ( name == null ) >> >> name = "Nothing Local"; >> // TODO >> Auto-generated method stub >> return "hello " + >> name ; >> } >> >> } >> >> @WebService(endpointInterface="demo.order.HelloService") >> public class HelloImpl implements HelloService { >> >> @Override >> public String sayHello(String name) { >> if ( name == null ) >> >> name = "Nothing"; >> // TODO >> Auto-generated method stub >> >> >> ClientProxyFactoryBean factory = new >> ClientProxyFactoryBean(); >> >> factory.setAddress("local://hello"); >> >> HelloService hello2 = >> (HelloService) factory.create(); >> >> name = >> hello2.sayHello("yo!"); >> >> return "hello " + >> name ; >> } >> } >> >> >> >> >> >> >> --- On Fri, 10/29/10, Daniel Kulp <[email protected]> >> wrote: >> >> > From: Daniel Kulp <[email protected]> >> > Subject: Re: Problem using LocalTransport in Tomcat >> > To: [email protected] >> > Cc: "Joe Lin" <[email protected]> >> > Date: Friday, October 29, 2010, 1:57 PM >> > >> > Hmm... Sounds like its not finding the transport >> > factory for some reason. >> > >> > Can you add: >> > >> > transportId="http://cxf.apache.org/transports/local" >> > >> > to the jaxws:endpoint for the local one to force it? >> > >> > Dan >> > >> > >> > >> > On Friday 29 October 2010 4:52:06 pm Joe Lin wrote: >> > > Thanks for the reply. Here is the full stack: >> > > >> > > Oct 29, 2010 12:22:39 AM >> > org.springframework.web.context.ContextLoader >> > > initWebApplicationContext SEVERE: Context >> > initialization failed >> > > >> > >> org.springframework.beans.factory.BeanCreationException: >> > Error creating >> > > bean with name 'helloLocal': Invocation of init >> method >> > failed; nested >> > > exception is javax.xml.ws.WebServiceException: >> > > java.lang.NullPointerException at >> > > >> > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFacto >> > > >> > >> ry.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) >> > at >> > > >> > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFacto >> > > >> > >> ry.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) >> > at >> > > >> > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFacto >> > > >> > >> ry.createBean(AbstractAutowireCapableBeanFactory.java:456) >> > at >> > > >> > >> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject( >> > > AbstractBeanFactory.java:291) at >> > > >> > >> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.get >> > > Singleton(DefaultSingletonBeanRegistry.java:222) >> at >> > > >> > >> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(Ab >> > > stractBeanFactory.java:288) at >> > > >> > >> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(Abst >> > > ractBeanFactory.java:190) at >> > > >> > >> org.springframework.beans.factory.support.DefaultListableBeanFactory.preIn >> > > >> > >> stantiateSingletons(DefaultListableBeanFactory.java:580) at >> > > >> > >> org.springframework.context.support.AbstractApplicationContext.finishBeanF >> > > >> > >> actoryInitialization(AbstractApplicationContext.java:895) >> > at >> > > >> > >> org.springframework.context.support.AbstractApplicationContext.refresh(Abs >> > > tractApplicationContext.java:425) at >> > > >> > >> org.springframework.web.context.ContextLoader.createWebApplicationContext( >> > > ContextLoader.java:276) at >> > > >> > >> org.springframework.web.context.ContextLoader.initWebApplicationContext(Co >> > > ntextLoader.java:197) at >> > > >> > >> org.springframework.web.context.ContextLoaderListener.contextInitialized(C >> > > ontextLoaderListener.java:47) at >> > > >> > >> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.jav >> > > a:4135) at >> > > >> > >> org.apache.catalina.core.StandardContext.start(StandardContext.java:4630) >> > > at >> > > >> > >> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java >> > > :791) at >> > > >> > >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) >> > at >> > > >> > >> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) >> > at >> > > >> > >> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905) >> > at >> > > >> > >> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740) >> > at >> > > >> > >> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500) >> > at >> > > >> > >> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) >> > at >> > > >> > >> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) >> > > at >> > > >> > >> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupp >> > > ort.java:119) at >> > > >> > >> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) >> > at >> > > >> > >> org.apache.catalina.core.StandardHost.start(StandardHost.java:785) >> > at >> > > >> > >> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) >> > at >> > > >> > >> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) >> > at >> > > >> > >> org.apache.catalina.core.StandardService.start(StandardService.java:519) >> > > at >> > >> org.apache.catalina.core.StandardServer.start(StandardServer.java:710) >> > > at >> > >> org.apache.catalina.startup.Catalina.start(Catalina.java:581) >> > > at >> > sun.reflect.NativeMethodAccessorImpl.invoke0(Native >> Method) >> > > at >> > > >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: >> > > 39) at >> > > >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm >> > > pl.java:25) at >> > java.lang.reflect.Method.invoke(Method.java:597) >> > > at >> > >> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) >> > > at >> > >> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) >> > > Caused by: javax.xml.ws.WebServiceException: >> > java.lang.NullPointerException >> > > at >> > >> org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:335) >> > > at >> > >> org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:238) >> > > at >> > >> org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:481) >> > > at >> > sun.reflect.NativeMethodAccessorImpl.invoke0(Native >> Method) >> > > at >> > > >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: >> > > 39) at >> > > >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm >> > > pl.java:25) at >> > java.lang.reflect.Method.invoke(Method.java:597) >> > > at >> > > >> > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFacto >> > > >> > >> ry.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544) >> > at >> > > >> > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFacto >> > > >> > >> ry.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485) >> > at >> > > >> > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFacto >> > > >> > >> ry.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) >> > ... 36 more >> > > Caused by: java.lang.NullPointerException >> > > at >> > > >> > >> org.apache.cxf.binding.soap.SoapTransportFactory.getDestination(SoapTransp >> > > ortFactory.java:123) at >> > > >> > >> org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:92) >> > at >> > > >> > >> org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:71) >> > > at >> > > >> > >> org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:14 >> > > 9) at >> > > >> > >> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean. >> > > java:183) at >> > > >> > >> org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:407) >> > at >> > > >> > >> org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:314) >> > ... 45 >> > > more >> > > >> > > --- On Fri, 10/29/10, Daniel Kulp <[email protected]> >> > wrote: >> > > > From: Daniel Kulp <[email protected]> >> > > > Subject: Re: Problem using LocalTransport >> in >> > Tomcat >> > > > To: [email protected] >> > > > Cc: "Joe Lin" <[email protected]> >> > > > Date: Friday, October 29, 2010, 12:21 PM >> > > > On Friday 29 October 2010 3:03:06 pm >> > > > >> > > > Joe Lin wrote: >> > > > > Hi, I have two Jax-WS service endpoints >> that >> > I >> > > > >> > > > configure using the >> > > > >> > > > > CXFServlet transport as the following >> (in >> > beans.xml): >> > > > > >> > > > > >> > ============================================= >> > > > > <jaxws:endpoint >> > > > >> > > > id="orderProcess" >> > > > >> > > > > >> implementor="demo.order.OrderProcessImpl" >> > > > >> > > > address="/OrderProcess" /> >> > > > >> > > > > <jaxws:endpoint id="helloService" >> > > > >> > > > implementor="demo.order.HelloImpl" >> > > > >> > > > > address="/hello" /> >> > > > >> > > > >> ============================================= >> > > > >> > > > > It all worked fine. And I'd like to >> have >> > another >> > > > >> > > > service that uses the >> > > > >> > > > > LocalTransport. So I copied the example >> from >> > the users >> > > > >> > > > guide in cxf >> > > > >> > > > > website. >> > > > > >> > > > > >> > ============================================= >> > > > > <bean >> > > > >> > > > >> > >> class="org.apache.cxf.transport.local.LocalTransportFactory" >> > > > >> > > > > lazy-init="false"> <property >> > > > >> > > > name="transportIds"> >> > > > >> > > > > >> > > > >> > > > <list> >> > > > >> > > > > >> > >> > > > >> > > > <value>http://cxf.apache.org/transports/local</value> >> > > > >> > > > > >> > >> > > > >> > > > <value>http://schemas.xmlsoap.org/soap/http</value> >> > > > >> > > > > >> > >> > > > >> > > > <value>http://schemas.xmlsoap.org/wsdl/soap/http</value> >> > > > >> > > > Hmm... not sure why those last two URI's >> are >> > > > there. Don't do >> > that. That >> > > > >> > > > will likely cause other issues as other >> things >> > will start >> > > > using the local >> > > > transport instead. >> > > > >> > > > BTW: you could just do: >> > > > <import >> > > > >> > >> resource="classpath:META-INF/cxf/cxf-extension-local.xml"/> >> > > > instead. >> > > > >> > > > > >> > > > >> > > > </list> >> > > > >> > > > > >> > </property> >> > > > > >> > > > > </bean> >> > > > > >> > > > > >> > <jaxws:endpoint >> > > > >> > > > id="helloLocal" address="local://hello" >> > > > >> > > > > >> implementor="demo.order.HelloImpl2"/> >> > > > > >> > > > > <jaxws:endpoint >> > > > >> > > > id="orderProcess" >> > > > >> > > > > >> implementor="demo.order.OrderProcessImpl" >> > > > >> > > > address="/OrderProcess" /> >> > > > >> > > > > <jaxws:endpoint id="helloService" >> > > > >> > > > implementor="demo.order.HelloImpl" >> > > > >> > > > > address="/hello" /> >> > > > > >> > > > > >> > ============================================= >> > > > > >> > > > > >> > > > > >> > > > > But I'm getting this in catalina.out: >> > > > > >> > ============================================= >> > > > >> > > > >> > >> org.springframework.beans.factory.BeanCreationException: >> > > > Error creating >> > > > >> > > > > bean with name 'helloLocal': Invocation >> of >> > init method >> > > > >> > > > failed; nested >> > > > >> > > > > exception is >> > javax.xml.ws.WebServiceException: >> > > > > java.lang.NullPointerException at >> > > > >> > > > >> > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFact >> > > > o >> > > > >> > > > >> > >> ry.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) >> > > > at >> > > > >> > > > >> > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFact >> > > > o >> > > > >> > > > >> > >> ry.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) >> > > > >> > > > > >> > =============================================== >> > > > >> > > > Is there more to that stack trace? >> > Normally >> > > > there would be a "caused by" >> > > > thing with more lines. >> > >> > -- >> > Daniel Kulp >> > [email protected] >> > http://dankulp.com/blog >> > >> >> >> >> > > > >
