"org.apache.axis2.AxisFault: Incoming message input stream is null" while
engaging addressing module on client side
-------------------------------------------------------------------------------------------------------------------
Key: AXIS2-2264
URL: https://issues.apache.org/jira/browse/AXIS2-2264
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: Addressing
Affects Versions: 1.1.1
Environment: Linux Fedora fc5, tomcat 6.0.7, java1.5.0_11, Axis2 1.1.1
Reporter: Federica Ciotti
My client class needs to engage addressing module.
This is my client
package calc1;
public class RPC_MyCalcClient {
public static void main(String[] args){
try{
EndpointReference targetEPR = new
EndpointReference("http://localhost:8080/axis2/services/AddService/");
EndpointReference myEPR = new
EndpointReference("http://localhost:8080/axis2/services/clientService/");
Options options = new Options();
options.setTo(targetEPR);
options.setReplyTo(myEPR);
options.setFrom(myEPR);
//options.setAction("addPrevious");
options.setAction("add");
options.setFrom(myEPR);
options.setMessageId("Msg123");
RPCServiceClient sender = new RPCServiceClient();
sender.setOptions(options);
sender.engageModule(new
QName(Constants.MODULE_ADDRESSING));
//add
QName opAdd = new QName("http://calc/xsd", "add");
Integer a = new Integer(1);
Integer b = new Integer(2);
Object[] params = new Object[] { a, b };
Class[] returnTypes = new Class[] { Integer.class };
Object[] response = sender.invokeBlocking(opAdd,
params, returnTypes);
Integer result = (Integer) response[0];
if (result == null) {System.out.println("Null");}
else System.out.println("Result "+ result.toString());
//addPrev
/*QName opAdd = new QName("http://calc/xsd",
"addPrevious");
Integer a = new Integer(1);
Object[] params = new Object[] { a};
Class[] returnTypes = new Class[] { Integer.class };
Object[] response = sender.invokeBlocking(opAdd,
params, returnTypes);
Integer result = (Integer) response[0];
if (result == null) {System.out.println("Null");}
else System.out.println("Result "+ result.toString());*/
}catch(AxisFault a){a.printStackTrace();}
}
}
Even if the addressing module is in the classpath I get AxisFault.
This is the exception i get trying to engage addressing module on client side
org.apache.axis2.AxisFault: Incoming message input stream is null
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:64)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:252)
at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:202)
at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:579)
at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:508)
at
org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:95)
at calc1.RPC_MyCalcClient.main(RPC_MyCalcClient.java:52)
I noticed from SOAPMonitor that apart the AxisFault the request and response
messages are correct but only the request one has the wsa header fields:
SOAPRequest
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsa:To>http://localhost:8080/axis2/services/AddService/</wsa:To>
<wsa:ReplyTo>
<wsa:Address>http://localhost:8080/axis2/services/clientService/</wsa:Address>
</wsa:ReplyTo>
<wsa:From>
<wsa:Address>http://localhost:8080/axis2/services/clientService/</wsa:Address>
</wsa:From>
<wsa:MessageID>Msg123</wsa:MessageID>
<wsa:Action>add</wsa:Action>
</soapenv:Header>
<soapenv:Body>
<add xmlns="http://calc/xsd">
<arg0 xmlns="">1</arg0>
<arg1 xmlns="">2</arg1>
</add>
</soapenv:Body>
</soapenv:Envelope>
SOAPResponse
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<ns:addResponse xmlns:ns="http://calc/xsd">
<ns:return>3</ns:return>
</ns:addResponse>
</soapenv:Body>
</soapenv:Envelope>
How can I get wsa fields in the SOAPResponse (addressing module is already
engaged on service side and is the classpath) ?
Dropping the engage instruction from the client code causes the exception to
disappear but I have a wsaddressing=required in the services.xml.
--
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]