[
https://issues.apache.org/jira/browse/AXIS2-3749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12590281#action_12590281
]
Amila Chinthaka Suriarachchi commented on AXIS2-3749:
-----------------------------------------------------
private static void setFaultCode(MessageContext messageContext, String
faultCode,
String faultSubCode) {
SOAPFactory soapFac = OMAbstractFactory.getSOAP12Factory();
SOAPFaultCode soapFaultCode = soapFac.createSOAPFaultCode();
if (messageContext.isSOAP11()) {
soapFaultCode.setText(faultCode);
} else {
SOAPFaultValue soapFaultValue =
soapFac.createSOAPFaultValue(soapFaultCode);
soapFaultValue.setText(SOAP12Constants.SOAP_DEFAULT_NAMESPACE_PREFIX + ":" +
SOAP12Constants.FAULT_CODE_SENDER);
SOAPFaultSubCode soapFaultSubCode =
soapFac.createSOAPFaultSubCode(soapFaultCode);
SOAPFaultValue soapFaultSubcodeValue =
soapFac.createSOAPFaultValue(soapFaultSubCode);
soapFaultSubcodeValue.setText(AddressingConstants.WSA_DEFAULT_PREFIX + ":" +
faultCode);
if (faultSubCode != null) {
SOAPFaultSubCode soapFaultSubCode2 =
soapFac.createSOAPFaultSubCode(soapFaultSubCode);
SOAPFaultValue soapFaultSubcodeValue2 =
soapFac.createSOAPFaultValue(soapFaultSubCode2);
String namespace =
(String)
messageContext.getProperty(AddressingConstants.WS_ADDRESSING_VERSION);
if (namespace == null) {
namespace = Final.WSA_NAMESPACE;
}
OMNamespace wsaNS = soapFac.createOMNamespace(namespace,
AddressingConstants.WSA_DEFAULT_PREFIX);
soapFaultSubcodeValue2.declareNamespace(wsaNS);
soapFaultSubcodeValue2
.setText(AddressingConstants.WSA_DEFAULT_PREFIX + ":" +
faultSubCode);
}
}
messageContext.setProperty(SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAME,
soapFaultCode);
}
have a look at this method. I think this line cause this error
soapFaultSubcodeValue.setText(AddressingConstants.WSA_DEFAULT_PREFIX + ":" +
faultCode);
first of all why it sets the faultCode as sopaFaultSubcodeValue? is this a
mistake.
I'll have another look and attached a patch
> Invalid soap fault
> ------------------
>
> Key: AXIS2-3749
> URL: https://issues.apache.org/jira/browse/AXIS2-3749
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Reporter: Amila Chinthaka Suriarachchi
> Priority: Blocker
>
> I invoke a service which has engaged Addressing with an invalid action (by a
> mistake) and I got this exception
> java.lang.NullPointerException
> at
> org.apache.axis2.handlers.addressing.AddressingInFaultHandler.invoke(AddressingInFaultHandler.java:96)
> at org.apache.axis2.engine.Phase.invoke(Phase.java:295)
> at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
> at
> org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:363)
> at
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
> at
> org.apache.axis2.description.OutInAxisOperationClient$NonBlockingInvocationWorker.run(OutInAxisOperation.java:441)
> at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
> at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
> at java.lang.Thread.run(Thread.java:595)
> this exception happens at here.
> faultLocalName = subCode.getValue().getTextAsQName().getLocalPart();
> Then I look at the soap fault.
> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
> <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <wsa:Action>http://www.w3.org/2005/08/addressing/fault</wsa:Action>
>
> <wsa:RelatesTo>urn:uuid:6C771F78868CBF931B1208441597970</wsa:RelatesTo>
> </soapenv:Header>
> <soapenv:Body>
> <soapenv:Fault>
> <soapenv:Code>
> <soapenv:Value>soapenv:Sender</soapenv:Value>
> <soapenv:Subcode>
> <soapenv:Value>wsa:ActionNotSupported</soapenv:Value>
> </soapenv:Subcode>
> </soapenv:Code>
> <soapenv:Reason>
> <soapenv:Text xml:lang="en-US">The [action] cannot be
> processed at the receiver.</soapenv:Text>
> </soapenv:Reason>
> <soapenv:Detail>
> <wsa:ProblemAction
> xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <wsa:Action>urn:PlainTestInOutOperation1</wsa:Action>
> </wsa:ProblemAction>
> </soapenv:Detail>
> </soapenv:Fault>
> </soapenv:Body>
> </soapenv:Envelope>
> if we look at this line
> <soapenv:Value>wsa:ActionNotSupported</soapenv:Value>
> the prefix wsa is not declared.
> I think this means Axiom does not serialize soap envelop properly when there
> a TextQNames.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]