0

我使用 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,但异常是相同的。当我在服务器中放置断点时,它永远不会中断。所以问题出在客户端。

有人知道我在做什么错吗?

4

1 回答 1

0

我不得不更改soap:address,然后主要问题是我使用GUI向导时为Webservice生成的@WebService注释覆盖了CXF生成的接口的@WebService注释。因此webservice的位置是不同的。

于 2012-12-18T17:44:02.090 回答