Hi Arun, thanks for your reply – I
have had to use “getSOAPPart().getEnvelope().getBody()” in the past
as “getSOAPBody()” returns an object that sometimes behaves oddly. Unfortunately
your code still returns a null “Details” object.
I’ve tried:
response.getSOAPPart().getEnvelope().getBody().getFault()
and
response.getSOAPBody().getFault()
but both still return null!
From:
Soactive Inc [mailto:[EMAIL PROTECTED]
Sent: 31 August 2005 05:45
To: axis-user@ws.apache.org
Subject: Re: Getting details from
a SOAP fault
Hi Chris,
Try this (note - this may not compile directly - please make changes and use):
// first, get responseMessage
if (responseMessage.getSOAPPart().getEnvelope().getBody().hasFault()) {
SOAPFault soapFault = responseMessage.getSOAPBody().getFault();
System.out.println("Fault Name: " +
soapFault.getFaultCodeAsName().getQualifiedName());
System.out.println("Fault Actor: " +
fault.setFaultActor(soapFault.getFaultActor());
StringBuffer detailBuf = new StringBuffer();
Detail detail = soapFault.getDetail();
if (detail != null) {
Iterator it = detail.getDetailEntries();
while (it.hasNext()) {
DetailEntry entry = (DetailEntry) it.next();
String value = entry.getValue();
detailBuf.append("\n" + value);
}
}
System.out.println("Fault Detail: " + detailBuf.toString());
// rest of your code
Best Regards,
-Arun
On 8/30/05, Chris
Nappin <[EMAIL PROTECTED]>
wrote:
Hi,
I'm receiving a custom SOAP fault in my client, with various application-specific
error data items in the fault's "details" section. When using the
JAX-RPC/JAXM APIs, I get a null details object:
SOAPMessage response = ..call the service using JAXM..
if (response.getSOAPBody().hasFault()) {
Detail detail = response.getSOAPBody().getFault().getDetail();
if (detail == null) {
System.out.println("Detail
is null!");
} else {
..output the details object..
}
}
But when casting the SOAPFault to a "org.apache.axis.message.SOAPFault
" then using the Axis-specific APIs (e.g. getFault().getFaultDetails()) on
the same response, I do get the XML I'm expecting.
Am I doing something wrong?
thanks,
Chris Nappin
Technical Architect
ABM United Kingdom Limited
Telephone: +44 (0) 115 977 6999
Facsimile: +44 (0) 115 977 6850
Web: http://www.abm-uk.com
ABM for Intelligent Solutions
CONFIDENTIALITY & PRIVILEGE NOTICE
This e-mail is confidential to its intended recipient. It may also be
privileged. Neither the confidentiality nor any privilege attaching to this
e-mail is waived lost or destroyed by reason that it has been mistakenly
transmitted to a person or entity other than its intended recipient. If you are
not the intended recipient please notify us immediately by telephone or fax at
the numbers provided above or e-mail by Reply To Author and return the printed
e-mail to us by post at our expense. We believe, but do not warrant, that this
e-mail and any attachments are virus-free, but you should check. We may monitor
traffic data of both business and personal e-mails. We are not liable for any
opinions expressed by the sender where this is a non-business e-mail. If you do
not receive all the message, or if you have difficulty with the transmission,
please telephone us immediately.