我正在尝试使用wsgen生成wsdl文件。如果我的webservice类扩展了另一个类,我会得到一个错误,但如果我删除了扩展,它就可以工作了。这是错误消息:
error: compilation failed, errors should have been reported
还有wsgen-完整版本:
wsgen full version "JAX-WS RI 2.2.9-b130926.1035 svn-revision#8c29a9a53251ff741fca1664a8221dc876b2eac8"
请注意,我只有在使用Java8时才会遇到这个问题。但当我使用Java7和wsgen版本时,同样的代码也能工作:
JAX-WS RI 2.2.4-b01
以下是更多细节以及如何复制:我使用的是Java8,我有三个文件:
webservice
basewebservice.java
webservice.java
webserviceImpl.java
basewebservice.java:
一揽子网络服务;
基于公共类的Web服务{}
webservice.java
一揽子网络服务;
导入javax.jws.WebMethod;导入javax.jws.WebService;
@WebService公共接口Web服务{
@WebMethodpublic字符串hello();
}
webserviceImpl.java
一揽子网络服务;
导入javax.jws.WebService;
@WebService(endpointInterface="WebService.WebService",serviceName="webservice")
公共类webserviceImpl扩展basewebservice实现webservice{@Overridepublic字符串hello(){return"你好";}}
我使用此命令生成wsdl文件:
wsgen -cp "." webservice.webserviceImpl -r . -wsdl
只有当我删除扩展的basewebservice时,它才有效。
您需要在BaseWebService上使用@XMLSeeAlso注释。看看这个问题-JavaWebServices/JAXB-抽象超类