使用返回自定义类型的函数创建Web服务(JAX-WS)

时间:2013-01-01 16:06:12

标签: java web-services soap jax-ws tomcat7

我读了很多关于这个问题的帖子,我确实发现了一些处理它的问题 - 但不幸的是我无法理解如何解决我的问题。

现在我正在创建WebService(使用Tomcat 7),我想共享接口。 我有大约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中部署webservice之后,我从tomcat看到了一个错误:

  

SEVERE:WSSERVLET11:无法解析运行时描述符:   com.sun.xml.ws.spi.db.DatabindingException:   com.sun.xml.bind.v2.runtime.IllegalAnnotationsException:1计数   IllegalAnnotationExceptions com.mkyong.ws.ITest是一个接口,和   JAXB无法处理接口。这个问题与此有关   以下位置:at 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无法处理接口。这个问题与此有关   以下位置:at com.mkyong.ws.ITest

有没有人知道如何解决它? 感谢。

1 个答案:

答案 0 :(得分:0)

您无法使用JAX-WS返回接口类型。返回类型和参数必须是实际的类。 RMI将支持接口。 JAX-WS没有。