我使用 WSDL 编辑器在 Eclipse 中制作了 wsdl 文件。我使用 CXF(maven 插件方式)制作了服务器。我从 C# 成功调用了一个简单的函数 getCities()。但是我无法从 Java 客户端调用它。
@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 webservice 客户端 GUI,但异常是相同的。当我在服务器中放置断点时,它永远不会中断。所以问题出在客户端。
有人知道我在做什么错吗?