我正在尝试使用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:
包webservice;公共类basewebservice {}
webservice.java
包webservice; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public interface webservice {@WebMethod public String hello(); }
webserviceImpl.java
包webservice; import javax.jws.WebService; @WebService(endpointInterface =“webservice.webservice”,serviceName =“webservice”)public class webserviceImpl extends basewebservice implements webservice {@Override public String hello(){return“heLLoo”; }}
我使用此命令生成wsdl文件:
wsgen -cp "." webservice.webserviceImpl -r . -wsdl
它仅在我删除 extends basewebservice 时有效 .
1 回答
您需要在BaseWebService上使用@XMLSeeAlso注释 . 看看这个问题 - Java Web Services/JAXB - Abstract superclass