2013-12-22 36 views
0

我創建Axis2的處理程序 「SimpleHandler」,並使用流出註冊它:AXIS2 habdler exceptiob

<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 URL的傳輸信息。 at org.apache.axis2.description.ClientUtils.inferOutTransport(ClientUtils.java:81) at org.apache.axis2.client.OperationClient.prepareMessageContext(OperationClient.java:304) at org.apache.axis2.description。 OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:180) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) at wsdl._5._4.hlr_subscriber.gw.prov.names.siemens.SPMLHlrSubscriber45ServiceStub。修改(SPMLHlrSubscriber45ServiceStub.java:806) at test.Test.main(Test.java:53)

回答

0

OutFlow中沒有PreDispatch或Dispatch階段,因爲這是響應路徑。所以你hanlder應該如下。

<phase name="MessageOut" > 
      <handler name="digitalSign2"    class="com.asset.vsv.adapters.hlr.integration.SimpleHandler" > <order phase="MessageOut"/> 
      </handler>