Hi
Brenton!
So
you're saying that you observe the fault you posted below coming back across the
wire, and when that gets turned into an AxisFault you can't get at the
details? That sounds like a bug to me if that's the
case.
Regardless of whether or not Axis uses the details to construct a
"custom" fault (i.e. filling in the fields on a derived fault class),
getFaultDetails() should correctly give you access to everything that came
across the wire in the <details> element.
--Glen
-----Original Message-----
From: Schwartz, Brenton [mailto:[EMAIL PROTECTED]]
Sent: Thursday, May 30, 2002 11:52 AM
To: '[EMAIL PROTECTED]'
Subject: RE: AxisFault vs SOAP FaultIn case this question got lost inside a previouspost I am re-asking it here:I realy need to get at a custom fault code. Thisdoes not appear to possible through the APIdue to a disconnect between SOAPFaultand AxisFault.Does anyone know a way to get at the raw SOAPmessage returned from the commmunication.If so, I can use DOM to get at the value or in the worstcase I can use a regular expression to yank thevalue out of the string.-----Original Message-----
From: Schwartz, Brenton [mailto:[EMAIL PROTECTED]]
Sent: Thursday, May 30, 2002 9:12 AM
To: '[EMAIL PROTECTED]'
Subject: RE: AxisFault vs SOAP FaultAxis.GetFaultDetails returns an array of ElementsCycling on these elements all I get is a stack tracein element[0] and nothing else. I suspect that thisis because Axis threw an exception when tryingto read the details and put the stack trace in thatslot for safe keeping...Next way to attempt a solution: Does anyone knowa way to get at the raw SOAP message returned fromthe commmunication. If I can use DOM to get at thevalue or in the worst case I can use a regular expressionto yank the value out of the string.ThanksBrentI can either use or-----Original Message-----
From: R J Scheuerle Jr [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, May 29, 2002 5:37 PM
To: [EMAIL PROTECTED]
Subject: RE: AxisFault vs SOAP Fault
This may be related to the fact that axis does not adequately serializer/deserialize the contents of the fault.
Did you try Axis.getFaultDetails ?
Rich Scheuerle
XML & Web Services Development
512-838-5115 (IBM TL 678-5115)
"Schwartz, Brenton" <[EMAIL PROTECTED]> 05/29/2002 05:23 PM
Please respond to axis-user
To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
cc:
Subject: RE: AxisFault vs SOAP Fault
Thanks for the try,
System.out.println(AxisFault.getFaultCode() );
prints the value "Server"
which is the <soap-env:faultcode>Server </soap-env:faultcode>
out of the soap message not the message several layers
down which contains the actual <e:errorCode>4500</e:errorCode>
that I need access to.
I found an archived message from
Subject: mapping javax.xml.soap.SOAPFault to AxisFault
From: "Chris Haddad" <[EMAIL PROTECTED]>
Date: 2002-03-27 18:01:13
that implies that this is a deeper problem...
Brent
-----Original Message-----
From: R J Scheuerle Jr [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, May 29, 2002 5:07 PM
To: [EMAIL PROTECTED]
Subject: Re: AxisFault vs SOAP Fault
The fault "contents" currently are not passed across the wire.
Use AxisFault.getFaultCode() to get the fault code.
Hope this helps.
Rich Scheuerle
XML & Web Services Development
512-838-5115 (IBM TL 678-5115)
"Schwartz, Brenton" <[EMAIL PROTECTED]>
05/29/2002 05:03 PM
Please respond to axis-user
To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
cc:
Subject: AxisFault vs SOAP Fault
I am having trouble getting the fault code out of a SOAP message
Environment:
-------------------------------
SunOS zima 5.8 Generic_111433-02 sun4u sparc SUNW,Sun-Blade-1000
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)
axis Beta2, Nightly Release 28 May 02
The value I want to access:
---------------------------------
<e:errorCode>4500</e:errorCode>
Soap Message Returned:
---------------------------------
<soap-env:Envelope
xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header>
<qxg:TASK_ID
xmlns:qxg="http://www.qwest.com/qxg/">KG0UW67N.19SSDJ0.UXFLKZ</qxg:TASK_ID>
</soap-env:Header>
<soap-env:Body>
<soap-env:Fault>
<soap-env:faultactor>http://www.qwest.com/qxg/jmsqueue/DefaultBusinessLogicQ
ueue/BAAGetOrderStatusResultActor </soap-env:faultactor>
<soap-env:faultcode>Server </soap-env:faultcode>
<soap-env:faultstring>Rejected - Order does not exist
</soap-env:faultstring>
<soap-env:Detail>
<e:faultDetails xmlns:e="http://www.qwest.com/qxg/">
<e:message>Rejected - Order does not exist </e:message>
<e:errorCode>4500 </e:errorCode>
</e:faultDetails>
</soap-env:Detail>
</soap-env:Fault>
</soap-env:Body>
</soap-env:Envelope>
Code Fragment where I am trying to access the data:
---------------------------------------
catch (org.apache.axis.AxisFault e)
{
System.out.println(e.dumpToString());
// I want to be able to access the value
// here so I can do processing on it.
}
What I get from the Dump:
----------------------------------------------------
AxisFault
faultCode: Server
faultString: Rejected - Order does not exist
faultActor:
http://www.qwest.com/qxg/jmsqueue/DefaultBusinessLogicQueue/BAAGetOrderStatu
sResultActor