調用webservice時遇到的幾個問題

命名空間配置不正確的錯誤。一般應該是服務端的程序包名改變後造成的。

下面的這個例子取自webservice大講堂的,這個教程很好很詳細。

 

Exception in thread "main" org.apache.axis2.AxisFault: namespace mismatch require http://complexTypeService found http://ws.apache.org/axis2
 at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:517)
 at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
 at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
 at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
 at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
 at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:539)
 at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:520)
 at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
 at complexTypeService.ComplexTypeRPCClient.main(ComplexTypeRPCClient.java:32)

 

解決辦法:

1、查看該service的命名空間,訪問網址http://localhost:8080/axis2/services/ComplexTypeService?wsdl

查看"targetNamespace=http://complexTypeService"  ,說明命名空間爲http://complexTypeService,其實就是包的名字。

2、修改客戶端程序中使用命名空間的代碼,比如:opAddEntry = new QName("http://complexTypeService", "getArray");

再運行的話就沒有問題了。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章