0 Replies Latest reply on Apr 2, 2012 11:16 AM by sathishc

    How to override JBoss WS stack for SOAP over JMS

    Newbie

      Our application uses Axis2-1.4.1 for WS and rampart-1.4.1 for WS-security deployed in JBoss-4.2.3.GA.

      We are now migrating to JBoss-6.1.0.FINAL.

      Our application's Message Level Security(MLS) (a. User name token, b. Signed Encrypted, c. Signed User name token) failed on JBoss-6.1.0.FINAL because of mismatch in WS-security headers and associated namespace.

      On investigation it appeared JBoss WS stack overrides our application's. Deploying our application's axis2 and rampart jars for WS security in /server/default/lib, helped in overcoming the issue and Message Level Security worked fine when the transport is HTTP/HTTPS.

      But when the same SOAP requests are sent over JMS as the transport, we are getting the same MLS failures as we did before.

      Is there a way to override JBoss WS stack for SOAP over JMS? Does HornetQ use any of JBoss's WS/WS-security libraries in its client / server end?

       

      Attached below is the trace: Forums talk about Rampart module being not engaged as a reason - we observed this happen when axis WS stack that Rampart uses are overridden by WS stack in JBoss.

       

      15:49:55,923 ERROR [org.apache.axis2.engine.AxisEngine] Must Understand check failed for header http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd : Security: org.apache.axis2.AxisFault: Must Understand check failed for header http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd : Security

      at org.apache.axis2.engine.AxisEngine.checkMustUnderstand(AxisEngine.java:102) [:]

      at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:166) [:]

      at com.gesmallworld.gss.webservice.jms.Axis2MDB.onMessage(Axis2MDB.java:140) [:notset]

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_23]

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_23]

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_23]

      at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_23]

      at org.jboss.invocation.Invocation.performCall(Invocation.java:386) [:6.1.0.Final]

      at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:518) [:6.1.0.Final]

      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:156) [:6.1.0.Final]

      at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:115) [:6.1.0.Final]

      at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63) [:6.1.0.Final]

      at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121) [:6.1.0.Final]

      at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350) [:6.1.0.Final]

      at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) [:6.1.0.Final]

      at org.jboss.ejb.plugins.RunAsSecurityInterceptor.process(RunAsSecurityInterceptor.java:139) [:6.1.0.Final]

      at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:103) [:6.1.0.Final]

      at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) [:6.1.0.Final]

      at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138) [:6.1.0.Final]

      at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:420) [:6.1.0.Final]

      at org.jboss.ejb.Container.invoke(Container.java:1072) [:6.1.0.Final]

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_23]

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_23]

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_23]

      at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_23]

      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) [:6.0.0.GA]

      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) [:6.0.0.GA]

      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) [:6.0.0.GA]

      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:271) [:6.0.0.GA]

      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:670) [:6.0.0.GA]

      at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169) [:6.1.0.Final]

      at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118) [:6.1.0.Final]

      at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:209) [:6.1.0.Final]

      at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:195) [:6.1.0.Final]

      at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61) [:6.1.0.Final]

      at org.jboss.ejb.plugins.inflow.MessageEndpointInterceptor.delivery(MessageEndpointInterceptor.java:249) [:6.1.0.Final]

      at org.jboss.ejb.plugins.inflow.MessageEndpointInterceptor.invoke(MessageEndpointInterceptor.java:128) [:6.1.0.Final]

      at org.jboss.proxy.ClientMethodInterceptor.invoke(ClientMethodInterceptor.java:74) [:6.1.0.Final]

      at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:101) [:6.1.0.Final]

      at $Proxy229.onMessage(Unknown Source) at org.hornetq.ra.inflow.HornetQMessageHandler.onMessage(HornetQMessageHandler.java:278) [:6.1.0.Final]

      at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:866) [:6.1.0.Final]

      at org.hornetq.core.client.impl.ClientConsumerImpl.access$100(ClientConsumerImpl.java:44) [:6.1.0.Final]

      at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:983) [:6.1.0.Final]

      at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100) [:6.1.0.Final]

      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_23]

      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_23]

      at java.lang.Thread.run(Thread.java:662) [:1.6.0_23]