Java8不能将wsgen与扩展另一个类的Web服务端点一起使用(与Java7一起使用)

时间:2015-11-05 06:14:07

标签: web-services wsdl java-8 jax-ws wsgen

我尝试使用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 时才有效。

1 个答案:

答案 0 :(得分:1)

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