我创建了axis2处理程序“SimpleHandler”,并使用以下命令在OutFlow中注册:
<phaseOrder type="OutFlow">
<!-- user can add his own phases to this area -->
<phase name="soapmonitorPhase"/>
<phase name="OperationOutPhase"/>
<!--system predefined phase-->
<!--these phase will run irrespective of the service-->
<phase name="PolicyDetermination"/>
<phase name="MessageOut" >
<handler name="digitalSign2" class="com.asset.vsv.adapters.hlr.integration.SimpleHandler" > <order phase="PreDispatch"/>
</handler>
</phase>
<phase name="Security"/>
</phaseOrder>
但是此异常抛出
2013-12-22 16:39:22 ERROR ClientUtils:80 - The system cannot infer the transport information from the http://qq.qq.qq.qq:8084/hlr-sim/SPMLHlrSubscriber45Service URL.
org.apache.axis2.AxisFault:系统无法从http://qq.q.qq.qq:8084/hlr-sim/SPMLHlrSubscriber45Service网址推断传输信息。 at org.apache.axis2.description.ClientUtils.inferOutTransport(ClientUtils.java:81) at org.apache.axis2.client.OperationClient.prepareMessageContext(OperationClient.java:304) 在org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:180) 在org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) 在wsdl._5._4.hlr_subscriber.gw.prov.names.siemens.SPMLHlrSubscriber45ServiceStub.modify(SPMLHlrSubscriber45ServiceStub.java:806) 在test.Test.main(Test.java:53)
答案 0 :(得分:0)
OutFlow中没有PreDispatch或Dispatch阶段,因为这是响应路径。所以你应该如下所示。
<phase name="MessageOut" >
<handler name="digitalSign2" class="com.asset.vsv.adapters.hlr.integration.SimpleHandler" > <order phase="MessageOut"/>
</handler>