Freeman, Thanks a lot . Adding the attribute useJBIWrapper="false" worked well That fixed the ClassCastException. But I end up with the below exeception. It is saying - WARNING: Request does not contain required Security header But I am passing the Security header( SOAP header) Interestingly , when I ran the same test case on web service using CXF2.1 frame work it working fine.And shown the header as below. But the same test case is failing with ServiceMix-CXF. Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext -1.0.xsd" soap:mustUnderstand="1"><wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004 /01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-12437939"><wsse:Username>arse nal</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-user name-token-profile-1.0#PasswordDigest">gAY3BTnmwpYPu/4rXMZOnkYrKuU=</wsse:Password><wsse:Nonce>rkwj3 8v5w+d0nWJF6bp2ZQ==</wsse:Nonce><wsu:Created>2008-08-25T22:08:54.312Z</wsu:Created></wsse:UsernameTo ken></wsse:Security></soap:Header> Please see below the error traces. Please let me know what I am missing. Thanks a lot for you help in this issue. Thanks Babu. Aug 25, 2008 6:12:54 PM org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor handleMessage WARNING: Request does not contain required Security header Aug 25, 2008 6:12:54 PM org.apache.cxf.ws..security.wss4j.WSS4JInInterceptor handleMessage WARNING: org.apache.ws..security.WSSecurityException: An error was discovered processing the <wsse:Security> h eader. at org.apache.cxf.ws.security..wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java :167) at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java :62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain..java:221) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:7 7) at org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
----- Original Message ---- From: Freeman Fang <[EMAIL PROTECTED]> To: [email protected] Sent: Sunday, August 24, 2008 9:37:14 PM Subject: Re: ServiceMix-3.2.1 - SAAJInInterceptor failing with ClassCastException Hi, The SAAJInInterceptor need handle the soap message, but by default cxf bc and se will use jbi message, that's why you see the exception java.lang.ClassCastException: org..apache.cxf.binding.jbi.JBIMessage at org.apache.cxf.binding.soap.saaj.SAAJInInterceptor..handleMessage(SAAJInInterceptor.java:6 You need add useJBIWrapper="false" attribute for both your cxf bc and cxf se endpoints to enable soap message in cxf bc & se, this feature is only in servicemix 3.2.2. Regards Freeman Jack Jack wrote: > Hi, > I am using ServiceMix-3.2.1 on Tomcat-5.5. I configured the CXFBC-Consumer >and CXFSE endpoints in servicemix.xml .In this light-weight mode confifuration >everything is working fine.Tested with a web service client and the web >service is working well. > Now I added the InInterceptor to the Web service implementaion class using > the annotation type configuration as below. > @org.apache.cxf.interceptor.InInterceptors (interceptors = > {"org.circuit.security.wss.WSSecurityInterceptor" }) > When I started the server and executed the test case, I found the below error > traces on Tomcat console. > I have started a thread with 3.2.2 version also for the same Exception . But > the scenarios are different. > In case 3.2.1, web serviceis working fine before I introduce the Interceptor. > Thanks a lot for your help in advance. > Best Regards > Babu > Please see the Tomcat console traces below: > > C:\software\apache-tomcat-5.5.26\bin>catalina.bat run > Using CATALINA_BASE: C:\software\apache-tomcat-5.5.26 > Using CATALINA_HOME: C:\software\apache-tomcat-5.5.26 > Using CATALINA_TMPDIR: C:\software\apache-tomcat-5.5.26\temp > Using JRE_HOME: C:\software\jdk1.5.0_12 > Aug 24, 2008 7:44:33 PM org..apache.catalina.core.AprLifecycleListener > lifecycleEvent > INFO: The Apache Tomcat Native library which allows optimal performance in > production environments w > as not found on the java.library.path: > C:\software\jdk1.5.0_12\bin;.;C:\WINNT\system32;C:\WINNT;C:\o > racle\ora90\bin;C:\Program > Files\Oracle\jre\1.1.8\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\W > bem;C:\Program > Files\PKWARE\pkzipc;C:\Perforce;C:\swutilities\ssh;C:\software\apache-maven-2.0.9\bin > ;C:\software\Java\jre1.5.0_12\bin;C:\oracle\ora90\bin;C:\Program > Files\Oracle\jre\1.1.8\bin;C:\WINNT > \system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program > Files\PKWARE\pkzipc;C:\Perforce > Aug 24, 2008 7:44:33 PM org.apache.coyote.http11.Http11BaseProtocol init > INFO: Initializing Coyote HTTP/1.1 on http-8080 > Aug 24, 2008 7:44:33 PM org.apache.catalina.startup.Catalina load > INFO: Initialization processed in 640 ms > Aug 24, 2008 7:44:33 PM org.apache.catalina.core.StandardService start > INFO: Starting service Catalina > Aug 24, 2008 7:44:33 PM org.apache.catalina.core.StandardEngine start > INFO: Starting Servlet Engine: Apache Tomcat/5.5.26 > Aug 24, 2008 7:44:33 PM org.apache.catalina.core.StandardHost start > INFO: XML validation disabled > Aug 24, 2008 7:44:34 PM org.apache.catalina.loader.WebappClassLoader > validateJarFile > INFO: > validateJarFile(C:\software\apache-tomcat-5.5.26\webapps\servicemix-web-3.2.1\WEB-INF\lib\gero > nimo-servlet_2.5_spec-1.1-M1.jar) - jar not loaded. See Servlet Spec 2.3, > section 9.7.2. Offending c > lass: javax/servlet/Servlet.class > Aug 24, 2008 7:44:34 PM org.apache.catalina.loader.WebappClassLoader > validateJarFile > INFO: > validateJarFile(C:\software\apache-tomcat-5.5.26\webapps\servicemix-web-3.2.1\WEB-INF\lib\serv > let-api-2.5-6.1.5.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. > Offending class: javax > /servlet/Servlet.class > INFO - JBIContainer - ServiceMix 3.2.1 JBI Container > (ServiceMix) is starting > INFO - JBIContainer - For help or more informations please > see: http://incubator. > apache.org/servicemix/ > INFO - ComponentMBeanImpl - Initializing component: > #SubscriptionManager# > INFO - DeploymentService - Restoring service assemblies > INFO - ComponentMBeanImpl - Initializing component: > ID:10.124.56.132-11bf71adef1-0:0 > INFO - ComponentMBeanImpl - Initializing component: > ID:10.124.56.132-11bf71adef1-0:1 > WARN - ClientFactory - Cound not start ClientFactory: > javax.naming.NamingException > : Context is read only > Aug 24, 2008 7:44:39 PM sun.reflect.NativeMethodAccessorImpl invoke0 > INFO: Logging to org.slf4j.impl.JDK14LoggerAdapter(org.mortbay.log) via > org.mortbay.log.Slf4jLog > Aug 24, 2008 7:44:39 PM sun.reflect.NativeMethodAccessorImpl invoke0 > INFO: jetty-6.1.5 > Aug 24, 2008 7:44:39 PM sun.reflect.NativeMethodAccessorImpl invoke0 > INFO: Started [EMAIL PROTECTED]:8085 > Aug 24, 2008 7:44:39 PM > org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFrom > Class > INFO: Creating Service {http://view.org/wsShop/Circuit}Circuit from class > org.view.wsShop > .circuit.CircuitImpl > Aug 24, 2008 7:44:40 PM org.apache.cxf.configuration.spring.ConfigurerImpl > getBeanName > INFO: Could not determine bean name for instance of class > org.apache.cxf.transport.jbi.JBIDestinatio > n. > INFO - JBIContainer - ServiceMix JBI Container (ServiceMix) > started > Aug 24, 2008 7:44:40 PM org.apache.coyote.http11.Http11BaseProtocol start > INFO: Starting Coyote HTTP/1.1 on http-8080 > Aug 24, 2008 7:44:41 PM org.apache.jk.common.ChannelSocket init > INFO: JK: ajp13 listening on /0.0.0.0:8009 > Aug 24, 2008 7:44:41 PM org.apache.jk.server.JkMain start > INFO: Jk running ID=0 time=0/15 config=null > Aug 24, 2008 7:44:41 PM org.apache.catalina.storeconfig.StoreLoader load > INFO: Find registry server-registry..xml at classpath resource > Aug 24, 2008 7:44:41 PM org.apache.catalina.startup.Catalina start > INFO: Server startup in 7797 ms > Aug 24, 2008 7:44:54 PM org.apache.cxf.transport.jbi.JBITransportFactory > setDeliveryChannel > INFO: configuring DeliveryChannel: [EMAIL PROTECTED] > WSSecurityInterceptor:handleMessage()>>> ********* Invoked.. Start > WSSecurityInterceptor:handleMessage()>>> ********* END........ > Aug 24, 2008 7:44:54 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept > INFO: Interceptor has thrown exception, unwinding now > java.lang.ClassCastException: org.apache.cxf.binding.jbi.JBIMessage > at >org.apache.cxf.binding.soap.saaj.SAAJInInterceptor..handleMessage(SAAJInInterceptor.java:6 > 3) > at >org..apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207) > at >org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:7 > 3) > at >org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:148) > at >org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:187) > at >org...apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538) > at >org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:4 > 90) > at >org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle..java:46) > at >org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImp > l.java:610) > at >org.apache.servicemix.jbi.nmr.flow.AbstractFlow..doRouting(AbstractFlow.java:170) > at >org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167) > at >org.apache..servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) > at >java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) > at >java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) > at java.lang.Thread.run(Thread.java:595) > Aug 24, 2008 7:44:54 PM > org.apache.cxf.transport.jbi.JBIDestinationOutputStream commitOutputMessage > SEVERE: error sending Out message > java.lang.ClassCastException: java.lang.ClassCastException > at >org.apache.cxf.transport.jbi.JBIDestinationOutputStream.commitOutputMessage(JBIDestinatio > nOutputStream.java:89) > at >org.apache.cxf.transport.jbi.JBIDestinationOutputStream.doClose(JBIDestinationOutputStrea > m.java:62) > at >org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:119) > at >org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) > at >org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handle > Message(MessageSenderInterceptor.java:62) > at >org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207) > at >org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultCha > inInitiatorObserver.java:90) > at >org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:224) > at >org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:7 > 3) > at >org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:148) > at >org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:187) > at >org..apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538) > at >org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:4 > 90) > at >org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) > at >org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImp > l.java:610) > at >org.apache.servicemix.jbi.nmr.flow.AbstractFlow..doRouting(AbstractFlow.java:170) > at >org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167) > at >org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) > at >java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) > at >java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) > at java.lang.Thread.run(Thread.java:595) > Aug 24, 2008 7:45:04 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept > INFO: Interceptor has thrown exception, unwinding now > org.apache.cxf.interceptor.Fault > at >org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcCo > nsumer.java:454) > at >org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207) > at >org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:184) > at >org.apache.servicemix.cxfbc..CxfBcConsumer.process(CxfBcConsumer.java:183) > at >org.apache.servicemix.cxfbc.CxfBcConsumer$JbiInvokerInterceptor.handleMessage(CxfBcConsum > er.java:430) > at >org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207) > at >org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:7 > 3) > at >org.apache.cxf.transport..http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestinat > ion.java:268) > at >org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.j > ava:224) > at >org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:54) > at >org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712) > at >org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:2 > 11) > at >org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) > at org.mortbay.jetty.Server..handle(Server.java:313) > at >org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506) > at >org.mortbay.jetty.HttpConnection$RequestHandler..content(HttpConnection.java:844) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:726) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) > at >org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) > at >org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) > > > > >
