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 WebサービスクライアントGUIも使用してみましたが、例外は同じでした。サーバーにブレークポイントを設定しても、ブレークすることはありません。したがって、問題はクライアントにあります。

誰かが私が間違っていることを知っていますか?

4

1 に答える 1

0

soap:addressを変更する必要がありましたが、主な問題は、GUIウィザードを使用するときにWebサービス用に生成された@WebServiceアノテーションによってCXFによって生成されたインターフェイスの@WebServiceアノテーションを上書きしたことでした。したがって、Webサービスの場所は異なります。

于 2012-12-18T17:44:02.090 に答える