我使用WSDL編輯器所做的WSDL文件在Eclipse中。我製作了使用CXF的服務器(maven插件方式)。有一個簡單的函數getCities(),我從C#中成功調用。但是我無法從Java客戶端調用它。消費使用com.sun.xml.ws.client.ClientTransportException CXF結果從Java Web服務:服務器發送HTTP狀態碼200:OK
@WebResult(name = "out", targetNamespace = "")
@RequestWrapper(localName = "getCities", targetNamespace = "http://www.example.org/BookingServer/", className = "org.example.bookingserver.GetCities")
@ResponseWrapper(localName = "getCitiesResponse", targetNamespace = "http://www.example.org/BookingServer/", className = "org.example.bookingserver.GetCitiesResponse")
@WebMethod(action = "http://www.example.org/BookingServer/getCities")
public java.util.List<org.example.bookingserver.Cities> getCities();
這是這樣,我如何調用服務(再次使用Apache的CXF):
QName SERVICE_NAME = new QName("http://www.example.org/BookingServer/", "BookingServer");
URL wsdlURL = BookingServer_Service.WSDL_LOCATION;
BookingServer_Service ss = new BookingServer_Service(wsdlURL, SERVICE_NAME);
BookingServer port = ss.getBookingServerSOAP();
java.util.List<org.example.bookingserver.Cities> result = port.getCities();
,但我得到javax.ejb.EJBException ... Caused by: com.sun.xml.ws.client.ClientTransportException: The server sent HTTP status code 200: OK
我想不出有關此異常谷歌任何東西。
我也嘗試過使用NetBeans Web服務客戶端GUI,但例外的是一樣的。當我在服務器中放置斷點時,它永遠不會中斷。所以問題出在客戶端。
任何人都知道我在做什麼錯?
難道你不打,你以爲你是SOAP終點,而是得到一個正常的網頁回來?我會嘗試在中間放置一個代理並記錄您的請求和響應,以查看HTTP層發生了什麼。 – Charlie
你說得對。我看到連接轉到www.example.org IP。但我應該如何強制Java連接到本地主機?我從Eclipse中生成的WSDL生成服務客戶端 - 所以它應該在wsdl中指定? –
我試圖改變肥皂:地址本地URL,但是我得到另一個異常:'產生的原因:com.sun.xml.ws.fault.ServerSOAPFaultException:客戶端從服務器接收SOAP錯誤:無法找到{HTTP分派方法:// www.example.org/BookingServer/}getCities請參閱服務器日誌,查找有關該failure.' –