cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Lin <guav...@yahoo.com>
Subject Re: Problem using LocalTransport in Tomcat
Date Fri, 29 Oct 2010 21:35:30 GMT
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 <dkulp@apache.org> wrote:

> From: Daniel Kulp <dkulp@apache.org>
> Subject: Re: Problem using LocalTransport in Tomcat
> To: users@cxf.apache.org
> Cc: "Joe Lin" <guava01@yahoo.com>
> 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 <dkulp@apache.org>
> wrote:
> > > From: Daniel Kulp <dkulp@apache.org>
> > > Subject: Re: Problem using LocalTransport in
> Tomcat
> > > To: users@cxf.apache.org
> > > Cc: "Joe Lin" <guava01@yahoo.com>
> > > 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
> dkulp@apache.org
> http://dankulp.com/blog
> 


      

Mime
View raw message