1

我正在尝试使用 wsgen 生成 wsdl 文件。如果我的 webservice 类扩展了另一个类,我会得到一个错误,但如果我删除扩展它就可以工作。这是错误消息:

error: compilation failed, errors should have been reported 

还有 wsgen -fullversion:

wsgen full version "JAX-WS RI 2.2.9-b130926.1035 svn-revision#8c29a9a53251ff741fca1664a8221dc876b2eac8"

请注意,我只有在使用 Java8 时才会遇到这个问题。但是当我使用 Java 7 和 wsgen -version 时,相同的代码可以工作:

JAX-WS RI 2.2.4-b01

以下是更多详细信息以及如何重现它:我正在使用 Java8,并且我有三个文件:

webservice
    basewebservice.java
    webservice.java
    webserviceImpl.java

basewebservice.java:

打包网络服务;

公共类 basewebservice { }

网络服务.java

打包网络服务;

导入 javax.jws.WebMethod;导入 javax.jws.WebService;

@WebService 公共接口 webservice {

@WebMethod 公共字符串 hello();

}

webserviceImpl.java

打包网络服务;

导入 javax.jws.WebService;

@WebService(endpointInterface="webservice.webservice", serviceName="webservice")

公共类 webserviceImpl扩展 basewebservice 实现 webservice { @Override public String hello() { return "heLloo"; } }

我使用这个命令来生成 wsdl 文件:

wsgen -cp "." webservice.webserviceImpl -r . -wsdl

它仅在我删除扩展 basewebservice 时才有效

4

1 回答 1

1

您需要在 BaseWebService 上使用 @XMLSeeAlso 注释。看看这个问题 - Java Web Services/JAXB - Abstract superclass

于 2015-11-05T06:35:14.000 回答