'newer wsgen cannot find existing WebService annotation

We have a working web service using Java 8 that we are trying to upgrade to Java 11.

jaxws-ri\bin\wsgen.bat (version "JAX-WS RI 4.0.0-M4 git-revision#ac6e723") displays the following exception:

  Exception in thread "main" com.sun.xml.ws.model.RuntimeModelerException: A WebService annotation is not present on class: com.xxxxxx.security.services.webservice.SecurityServiceImpl
      at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:234)
      at com.sun.xml.ws.db.DatabindingImpl.<init>(DatabindingImpl.java:70)
      at com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:51)
      at com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:28)
      at com.sun.xml.ws.db.DatabindingFactoryImpl.createRuntime(DatabindingFactoryImpl.java:92)
      at com.sun.tools.ws.wscompile.WsgenTool.buildModel(WsgenTool.java:247)
      at com.sun.tools.ws.wscompile.WsgenTool.run(WsgenTool.java:102)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      at com.sun.tools.ws.Invoker.invoke(Invoker.java:132)
      at com.sun.tools.ws.WsGen.main(WsGen.java:29)
  Result: 1

However, our SecurityServiceImpl.java class DOES contain the @Webservice annotation, as shown below

import javax.jws.WebService;

@WebService(name="Foundation Security", serviceName="FoundationSecurityWS", portName="FoundationSecurityWSPort")
public class SecurityServiceImpl  {

Our ant build script uses the following wsgen.bat arguments:

        <arg line="-cp ${wsgen.classpath.string}"/>
        <arg line="-d ${build.webservice}/server"/>
        <arg line="-s ${build.webservice}/serversource"/>
        <arg line="-r ${build.webservice}/resource"/>
        <arg line="-wsdl"/>
        <arg line="-keep"/>
        <arg line="com.xxxxxx.security.services.webservice.SecurityServiceImpl"/>

Thank you in advance for any suggestions



Solution 1:[1]

after adding debug logging to JAX-WS com.sun.xml.ws.model.*, the issue seemed to be that "import javax.jws.WebService;" needed to be updated to "import jakarta.jws.WebService;"

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 7579