Axis2 Fault: Transport out has not been set

Axis2 Fault: Transport out has not been set

rg.apache.axis2.AxisFault: Transport out has not been set
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:401)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:548)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528)

---------------------------------------------------------------------------------------------
MessageContext中的TransportOut的获取过程:
1. 从Options中的getTransportOut方法获得。
2. 如果1中的值为null,则取得options的getTo的EPR值,如果该值为null,则取mc.getTo.
3. 根据2中的EPR,调用ClientUtils.inferOutTransport的方法,
A) 先尝试 mc的TransportURL属性是否为空,如果不空,则根据该属性值获得transport类型
B) 如果A失败,则根据mc的options的TransportOut的设定来获得transport类型
C) 如果B失败,则根据传入的EPR的值类获得transport类型
transport的类型则根据axis2.xml中的transportSender的name类匹配。

该错误的导致原因是我示例代码的EPR的http前多了个空格,于是导致无法匹配成功。


转载自:http://savegod.spaces.live.com/blog/cns!54158A19561EC233!572.entry


posted @ 2010-02-22 15:03  世界流浪者  阅读(1664)  评论(0编辑  收藏  举报