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.

Reply via email to