You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsif-user@ws.apache.org by James Higginbotham <jh...@betweenmarkets.com> on 2004/03/23 23:57:51 UTC

WSIF/Axis Client Fault handling?

I have created a webservice using jboss.net (i.e. Axis in JBoss) and I
am dynamically invoking it from WSIF 2.0. I noticed that if my EJB
endpoint throws an exception, WSIF doesn't seem to fill in the
faultMessage with the details although the logs show that the fault was
sent back to the client (faultcode and and faultstring).. Is this as
expected or a bug? Apparently, WSIF is using the Apache Axis client, so
the location where the fault is caught but not populated is approx line
1560 of WSIFOperation_ApacheAxis.java - the operation is not async but
didn't return any values since there was a fault, so it never calls
buildResponseMessages(response, outMsg, faultMsg) to fill in the fault
message. Here is the code I expect to work on the client:

 

        // create the input, output and fault messages associated with
this operation

        WSIFMessage input = operation.createInputMessage();

        WSIFMessage output = operation.createOutputMessage();

        WSIFMessage fault =
operation.createFaultMessage("soapenv:Server.userException");

 

        // populate the input message

        input.setObjectPart("in0", documentType);

        input.setObjectPart("in1", documentPayload);

 

        // do the invocation

        if (operation.executeRequestResponseOperation(input, output,
fault)) {

        } else {

            System.out.println("Invocation failed");

            // extract fault message info

            throw new Exception((String)fault.toString());

        }

 

but all the fault class's toString() displays is: 

 

org.apache.wsif.base.WSIFDefaultMessage@b8f8eb name:null parts:null

 

...which means that the fault is not populated with any details..
Expected or a bug? 

 

Thanks,

James