0

次のような Web サービス インターフェイスがあります。

@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface MyWS<T> {    
    @WebMethod Person getRow(int id);

    @WebMethod T insertRow(T a);    
}

本当に奇妙なことは、insertRowメソッドが Person を返すメソッドも持っている場合にのみ機能することです。getRow仕事に行くために使う必要はないことに注意してくださいinsertRow

つまり、クライアント プログラムから Web サービスのみを呼び出すと、Person を返すメソッドinsertRowもある場合にのみ機能します。getRowWeb サービスからを削除しgetRowてクライアント プログラムを再度実行すると、次の例外が発生します。

Exception in thread "main" javax.xml.ws.WebServiceException: javax.xml.bind.MarshalException
 - with linked exception:
[com.sun.istack.internal.SAXException2: class com.myproject.Person nor any of its super class is known to this context.
javax.xml.bind.JAXBException: class com.myproject.Person nor any of its super class is known to this context.]

変ですね!

何が起こっている?

4

0 に答える 0