I have been fighting with SoapFaults failing to parse once rampart 1.1
is deployed ever since I moved to Axis2.1.1. It did work in axis2.1.0.
I am currently using the December 15 snapshot of axis1.1.1.1 and the
rampart1.1 release. Maybe I am missing some trick in deploying
rampart. If any one else is getting this to work, I would love to know how.
I have been working with the code is samples/faulthandling since it
parallels my real code. The stub is is generated by WSDL2Java. The
response message looks correct to me:
<Soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Client</faultcode>
<faultstring>Account does not exist!</faultstring>
<detail>
<ns1:AccountNotExistFault xmlns:ns1="http://example">
<ns1:account>13</ns1:account>
</ns1:AccountNotExistFault>
</detail>
</soapenv:Fault>
</soapenv:Body>
Without rampart deployed the client program catches a
AccountNotExistFaultMessageException. With rampart deployed it geta the
following exception:
[java] Withdrawing 1000 dollars from account#13
[java] java.lang.ClassCastException:
org.apache.axiom.om.impl.llom.OMElementImpl
[java] at
org.apache.axiom.soap.impl.llom.SOAPFaultImpl.getCode(SOAPFaultImpl.java:101)
[java] at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:215)
[java] at
example.BankServiceStub.withdraw(BankServiceStub.java:173)
[java] at example.BankClient.main(BankClient.java:59)
To duplicate this result try:
a recent axis2-1.1 release.
set AXIS2_HOME to where the zip file was unziped
start the server running locally by bin/axis2server.sh
cd to samples/faulthandling
ant generate.service - builds and deploys the service locally
ant run.client -Durl=http://localhost:8080/axis2/services/BankService
-Daccount=13 -Damt=400
should work
[java] Withdrawing 400 dollars from account#13
[java] Account#13 does not exist
Then deploy a rampart module in the samples/faulthandling client.
Download and unzip rampart.1.1.zip
http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/rampart/1_1/rampart-1.1.zip
Copy the rampart libraries to axis2-home per rampart release instructions
pd ../../../rampart-1.1/samples
ant -- copies 7 jar files from ../lib to AXIS2_HOME/lib
ant run.client -Durl=http://localhost:8080/axis2/services/BankService
-Daccount=13 -Damt=400
Test still works
Deploy rampart
create client/repo/axis2.xml by copying
rampart-1.1/samples/basic/sample01/client.axis2.xml, then copy the
rampart.1.1.mar file to client/repo/modules/rampart.1.1.mar
Then you need to edit BankClient.java to add the line
ConfigurationContext configContext =
ConfigurationContextFactory.createConfigurationContextFromFileSystem("client/repo",
"client/repo/axis2.xml");
now
ant run.client -Durl=http://localhost:8080/axis2/services/BankService
-Daccount=13 -Damt=400
fails with
[java] Withdrawing 1000 dollars from account#13
[java] java.lang.ClassCastException:
org.apache.axiom.om.impl.llom.OMElementImpl
[java] at
org.apache.axiom.soap.impl.llom.SOAPFaultImpl.getCode(SOAPFaultImpl.java:101)
[java] at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:215)
[java] at
example.BankServiceStub.withdraw(BankServiceStub.java:173)
[java] at example.BankClient.main(BankClient.java:59)
It seems like it is caused by some confusion of classes, but I haven't
figured which ones yet.
Mary Thompson
---------------------------------------------------------------------
Mary R. Thompson <[EMAIL PROTECTED]>
Secure Grid Technologies Group (510) 486-7408
Lawrence Berkeley National Lab http://dsd.lbl.gov/~mrt
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]