Hi
I just went through the code and Xfire JIRA, it may relate to the
different send and receive thread on the client side.
You just need to add this pair
("org.apache.cxf.transport.local.LocalConduit.directDispatch, true) in
your request context,
to let the LocalConduit not fork a new thread to receive the message.
Here is a code snippet to show you how to set the request message context.
HelloWorldPortType greeter = service.getPort(portName,
HelloWorldPortType.class);
InvocationHandler handler =
Proxy.getInvocationHandler(greeter);
BindingProvider bp = null;
if (handler instanceof BindingProvider) {
bp = (BindingProvider)handler;
Map<String, Object> requestContext =
bp.getRequestContext();
requestContext.put(LocalConduit.DIRECT_DISPATCH, true);
}
Willem.
Gilles Durys wrote:
Jiang, Ning (Willem) wrote:
Hi ,
I don't know if it relates to the http header staff(it is the major different between the http transport and local transport.
I did not write any code about DAO, so may be I am wrong.
Could you send me the stake trace or the work space. May be I can debug it to
find out the real reason.
Here's the stack trace
org.apache.cxf.interceptor.Fault: No Hibernate Session bound to thread,
and configuration does not allow creation of non-transactional one here
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:86)
at
org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:82)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:62)
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:73)
at
org.apache.cxf.transport.local.LocalConduit$1.run(LocalConduit.java:131)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.hibernate.HibernateException: No Hibernate Session bound
to thread, and configuration does not allow creation of
non-transactional one here
at
org.springframework.orm.hibernate3.AbstractSessionFactoryBean$TransactionAwareInvocationHandler.invoke(AbstractSessionFactoryBean.java:299)
at $Proxy0.getCurrentSession(Unknown Source)
at
org.taktik.nadi.dao.impl.ContextDAOImpl.getContext(ContextDAOImpl.java:38)
at
org.taktik.nadi.logic.impl.ContextLogicImpl.getContext(ContextLogicImpl.java:92)
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)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy4.getContext(Unknown Source)
at
org.taktik.ws.impl.NadiWebServicesImpl.authenticate(NadiWebServicesImpl.java:217)
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)
at
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:99)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:73)
... 9 more
Could this
http://jira.codehaus.org/browse/XFIRE-605
be somewhat related?
Thanks.