Hi All,
There is a third party web service which exposed its wsdl to clients
and I used AXIS 1.2 RC2 to create stubs and have written a web
service client program to access the web service. However may the
server is expecting a signed xml signature in the soap message to
verify them I am not able to successfully get a soap response from the
wsdl and instead I get below exception.
Exception from server
----------------------------------------------------------------------------
[java] AxisFault
[java] faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
[java] faultSubcode:
[java] faultString: System.Web.Services.Protocols.SoapException:
Server was unable to process request. --- System.Exception: Signature
Verification Failed.
[java] faultActor:
[java] faultNode:
[java] faultDetail:
[java] {http://xml.apache.org/axis/}stackTrace: AxisFault
[java] faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
[java] faultSubcode:
[java] faultString: System.Web.Services.Protocols.SoapException:
Server was unable to process request. --- System.Exception: Signature
Verification Failed.
[java] faultActor:
[java] faultNode:
[java] faultDetail:
[java] System.Web.Services.Protocols.SoapException: Server was
unable to process request. --- System.Exception: Signature
Verification Failed.
[java] at
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
[java] at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)
[java] at
org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015)
[java] at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1712)
[java] at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
[java] at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
[java] at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
[java] at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
[java] at
org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
[java] at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
[java] at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
[java] at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
[java] at
org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
[java] at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
[java] at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
[java] at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
[java] at org.apache.axis.client.Call.invoke(Call.java:2553)
[java] at org.apache.axis.client.Call.invoke(Call.java:2248)
[java] at org.apache.axis.client.Call.invoke(Call.java:2171)
[java] at org.apache.axis.client.Call.invoke(Call.java:1691)
[java] at
www.americanexpress.com.schemas.serviceportal.demands.v10.webservices.DOC_CardsOwnedWSSoapStub.getCardsOwned(DOC_CardsOwnedWSSoapStub.java:154)
[java] at
serviceportal.demands.DOC_CardsOwnedWS.query(DOC_CardsOwnedWS.java:46)
[java] at
serviceportal.demands.DOC_CardsOwnedWS.main(DOC_CardsOwnedWS.java:62)
[java] System.Web.Services.Protocols.SoapException: Server was
unable to process request. --- System.Exception: Signature
Verification Failed.
[java] at
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
[java] at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)
[java] at
org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015)
[java] at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1712)
[java] at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
[java] at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
[java] at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
[java] at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
[java] at
org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
[java] at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
[java] at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
[java] at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
[java] at
org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
[java] at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
[java] at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
[java] at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
[java] at org.apache.axis.client.Call.invoke(Call.java:2553)
[java] at org.apache.axis.client.Call.invoke(Call.java:2248)
[java] at org.apache.axis.client.Call.invoke(Call.java:2171)
[java] at org.apache.axis.client.Call.invoke(Call.java:1691)
[java] at
www.americanexpress.com.schemas.serviceportal.demands.v10.webservices.DOC_CardsOwnedWSSoapStub.getCardsOwned(DOC_CardsOwnedWSSoapStub.java:154)
[java] at
serviceportal.demands.DOC_CardsOwnedWS.query(DOC_CardsOwnedWS.java:46)
[java] at
serviceportal.demands.DOC_CardsOwnedWS.main(DOC_CardsOwnedWS.java:62)
----------------------------------------------------------------------------
I am not sure what to do at this point. Can I use any certificate and
keys and write a handler that signs my soap request message so that
the server can verify that message ? Please suggest ....
Thanks & Regards,
Kumar.