faultString: (404)Not Found
...
The requested resource (/ESS_DEV/services/EssQueryServer) is not available.
...
at EssQueryServerSoapBindingStub.communicationChange(...)
Axis 客戶端生成的 Stub 類中,**端點地址(Endpoint URL)錯誤**,導致請求發往不存在的路徑 /ESS_DEV/services/EssQueryServer,Tomcat 返回 404。
EssQueryServerServiceLocator 生成的 getEssQueryServer() 方法,確認返回的 EssQueryServerSoapBindingStub 內部 _endpoint 字段;<soap:address location="..."/> 真實地址;http vs https、端口號、Context Path(如 /ESS_DEV vs /ess)、服務名拼寫。EssQueryServerServiceLocator locator = new EssQueryServerServiceLocator();
EssQueryServerSoapBindingStub stub = (EssQueryServerSoapBindingStub) locator.getEssQueryServer();
// 強制設置正確端點(從配置文件/屬性讀取)
String correctEndpoint = "https://host:port/ESS_DEV/services/EssQueryServer"; // 實際地址
stub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, correctEndpoint);
// 後續調用
String response = stub.communicationChange(requestXML);
@Value / application.yml),避免硬編碼;wsimport / cxf-codegen 重新生成客戶端代碼,確保與最新 WSDL 同步;org.apache.axis.transport.http.HTTPSender 級別 DEBUG,捕獲完整請求/響應報文便於排查。404 多為**客戶端端點地址與服務端實際部署路徑不一致**,核對並強制設置正確 Endpoint 即可解決。