【问题标题】:Creating webservice (JAX-WS) with functions which return custom types使用返回自定义类型的函数创建 Web 服务 (JAX-WS)
【发布时间】:2012-12-16 05:20:25
【问题描述】:

我阅读了很多关于这个问题的帖子,我确实找到了一些可以解决这个问题的帖子 - 但不幸的是,我无法真正理解如何解决我的问题。

现在我正在创建 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 中部署 web 服务后,我从 tomcat 收到一个错误,如下所示:

严重: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

有人知道如何解决吗? 谢谢。

【问题讨论】:

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


    【解决方案1】:

    您不能使用 JAX-WS 返回接口类型。返回类型和参数必须是一个实际的类。 RMI 将为此提供接口。 JAX-WS 没有。

    【讨论】:

    • 感谢您的回答!最后,我的 web 服务客户端将是一个 Android 应用程序,RMI 在 Android 上不起作用,在许多线程中,我看到人们建议使用 web 服务和肥皂来制作服务器 - (android) 客户端。您是否知道如何与 android 客户端共享(制作服务器)这 8 个相互关联的接口?谢谢。
    • 您仍然可以使用接口,但返回类型必须是具体实现。它不能是抽象类型或接口。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2012-04-03
    • 2011-05-12
    • 2023-03-17
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多