前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
一、?我的情況很簡單:
只是因為我調用服務端接口方法包名沒有寫對,應該如下面代碼中這樣寫:
call.setOperationName(new QName("http://com.boco.esb.receive", "example"));?
call.setTargetEndpointAddress("http://localhost:7081/Hermes/services/HermesService");
call.setSOAPActionURI("http://com.boco.esb.receive/example");
// com.boco.esb.receive 為服務端代碼所在類所屬包名、 example 為服務端接口方法名
call.setOperationName(new QName("http://com.boco.esb.receive", "example"));
call.setEncodingStyle(null);
call.setUseSOAPAction(true);
call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);
call.setProperty(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS);
二、再則,看到 網上有另外情況:
此方法出自:http://blog.csdn.net/zhengzhb/article/details/7741396
原文如下:使用axis開發webservice服務?java.net.ConnectException: Connection refused: connect異常的解決辦法
最近使用axis開發webservice服務,本機調用一切正常,但是其他人卻訪問不了,報錯信息為:
AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userExceptionfaultSubcode:??faultString:?Java.NET.ConnectException: Connection refused: connectfaultActor:??faultNode:??faultDetail:??
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection refused: connect
at java.Net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)...
原來,axis自動生成的wsdl文件是有問題的,在他的wddlsoap標簽中會使用localhost作為訪問地址,
<wsdlsoap:address location="http://localhost:8080/Axis/services/Test"/>
這樣當然是只有本機訪問正常,其他機器訪問不了,解決辦法就是修改一下這個地址,比如你的地址是10.154.23.153,那么就把這里改為
<wsdlsoap:address location="http://10.154.23.153:8080/Axis/services/Test"/>
這樣,問題就解決了。
?