我尝试使用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:
package webservice;
public class basewebservice {}
webservice.java
package webservice;
import javax.jws.WebMethod; import javax.jws.WebService;
@WebService public interface webservice {
@WebMethod public String hello();
}
webserviceImpl.java
package webservice;
import javax.jws.WebService;
@WebService(endpointInterface =" webservice.webservice&#34 ;, 服务名=" web服务&#34)
公共类webserviceImpl 扩展basewebservice 实现webservice { @覆盖 public String hello(){ 返回" heLLoo&#34 ;; } }
我使用此命令生成wsdl文件:
wsgen -cp "." webservice.webserviceImpl -r . -wsdl
仅当我删除 extends basewebservice 时才有效。
答案 0 :(得分:1)
您需要在BaseWebService上使用@XMLSeeAlso注释。看看这个问题 - Java Web Services/JAXB - Abstract superclass