Hi
I have a need to originate a call to invoke a web service (say, WS2) from
another web service (say, WS1) - both web services are deployed in Axis2. I
also should use Rampart and Sandesha2. I am using Axis 1.4.1 + Rampart 1.3 and
Sandesha 1.3 To implement the calling logic in WS1 I used code from client
samples that use 'engageModule("sandesha2") and engageModule("rampart")'. Lets
call this client code I have used on server side as "ClientStub".
Now, two issues:
1. if I run a client to invoke WS2 it gets required response but after that,
the client prints following error message:
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 ... How to fix this? Rampart and Sandesha are engaged on the server side
- can verify this by my log messages printing on server side.
2. If I make a call from the client to WS1 which in turn calls WS2 then I do
not get a response. From my logs I see that WS1 loads Sandesha and Rampart
modules when it invokes ClientStub and eventually call lands in WS2 but am not
getting any value returned back. What can be going wrong? (WS1 by itself works
fine.)
(I also see
https://issues.apache.org/jira/browse/SANDESHA2-133?page=com.atlassian.jira.
plugin.system.issuetabpanels:comment-tabpanel
<https://issues.apache.org/jira/browse/SANDESHA2-133?page=com.atlassian.jira
plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12591999#act
ion_12591999> &focusedCommentId=12591999#action_12591999 this error on the back
end)
I guess this is not something being done for the first time so would anyone
have samples (including the services.xml with rampart and sandesha setup) that
they can share so that I can start building on top of those?
Here is the full exception:
[ERROR] 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
org.apache.sandesha2.workers.SenderWorker.checkForSyncResponses(SenderWorkerjava:657)
at org.apache.sandesha2.workers.SenderWorker.run(SenderWorker.java:337)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Unknown Source)
[WARN] Sandesha2 sender thread has not received a valid synchronous response.
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
org.apache.sandesha2.workers.SenderWorker.checkForSyncResponses(SenderWorkerjava:657)
at org.apache.sandesha2.workers.SenderWorker.run(SenderWorker.java:337)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Unknown Source)
[INFO] Verification successful for URI "#Timestamp-6621330"
[ERROR] Sandesha2 got an exception when sending a message:
java.lang.NullPointerException.
java.lang.NullPointerException
at
org.apache.rampart.RampartMessageData.getSecConvTokenId(RampartMessageData.java:478)
at
org.apache.rampart.builder.SymmetricBindingBuilder.doSignBeforeEncrypt(SymmetricBindingBuilder.java:347)
at
org.apache.rampart.builder.SymmetricBindingBuilder.build(SymmetricBindingBuilder.java:80)
at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:128)
at org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:64)
at org.apache.axis2.engine.Phase.invoke(Phase.java:317)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
at org.apache.axis2.engine.AxisEngine.resumeSend(AxisEngine.java:370)
at org.apache.sandesha2.workers.SenderWorker.run(SenderWorker.java:287)
at
org.apache.sandesha2.msgprocessors.MakeConnectionProcessor.replyToPoll(MakeConnectionProcessor.java:200)
at
org.apache.sandesha2.msgprocessors.SequenceProcessor.processReliableMessage(SequenceProcessor.java:233)
at
org.apache.sandesha2.msgprocessors.SequenceProcessor.processSequenceHeader(SequenceProcessor.java:80)
at
org.apache.sandesha2.handlers.SandeshaInHandler.invoke(SandeshaInHandler.java:141)
at org.apache.axis2.engine.Phase.invoke(Phase.java:317)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
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:128)
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:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
----------------------------------------------------------------------------
-------------------------------------------------