0

この問題に関する多くのスレッドを読み、それに対処するスレッドをいくつか見つけましたが、残念ながら、問題を解決する方法を本当に理解できませんでした.

現在、Tomcat 7 を使用して WebService を作成しており、インターフェイスを共有したいと考えています。互いに関連する約8つのインターフェースがあります。例えば:

@WebService
@SOAPBinding(style = Style.RPC)
interface A {
  public String method1();
}

@WebService
@SOAPBinding(style = Style.RPC)
interface B {
  public String method1();
  public A getA();
}

@WebService
@SOAPBinding(style = Style.RPC)
interface C {
  public A getA();
  public B getB();
}

問題は、WAR (インターフェイス C 用) ファイルを作成した後、Tomcat で Web サービスをデプロイしようとすると、Tomcat から次のようなエラーが表示されることです。

SEVERE: WSSERVLET11: ランタイム記述子の解析に失敗しました: com.sun.xml.ws.spi.db.DatabindingException: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 カウントの IllegalAnnotationExceptions com.mkyong.ws.ITest はインターフェースであり、JAXB はインターフェースを処理できません。この問題は、次の場所に関連しています: com.mkyong.ws.ITest

com.sun.xml.ws.spi.db.DatabindingException: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 カウントの IllegalAnnotationExceptions com.mkyong.ws.ITest はインターフェースであり、JAXB はインターフェースを処理できません. この問題は、次の場所に関連しています: com.mkyong.ws.ITest

誰かがそれを解決する方法を知っていますか? ありがとう。

4

1 に答える 1

0

JAX-WS を使用してインターフェイス タイプを返すことはできません。戻り値の型とパラメーターは実際のクラスでなければなりません。RMI はそのためのインターフェースをサポートします。JAX-WS はそうではありません。

于 2013-01-02T07:37:53.230 に答える