Rebecca Searls created CXF-7685:
-----------------------------------
Summary: WSDL2java -compile fails when run with JDK-9, JDK-10,
JDK-11
Key: CXF-7685
URL: https://issues.apache.org/jira/browse/CXF-7685
Project: CXF
Issue Type: Bug
Components: Tooling
Affects Versions: 3.2.3, 3.2.2
Environment: OS: Fedora 26
JDK: 9.0.4
mvn: 3.5.0
cxf: 3.2.4-SNAPSHOT
Reporter: Rebecca Searls
Attachments: mywsdl2java
JBossws-cxf calls WSDL2java and passes input arguments. WSDL2java prints the
input args it recieves. That information looks like this,
{code:java}
wsdl2java -compile -d /tmp/output/tmp1993473 -verbose -classdir /tmp/output
-allowElementReferences
https://raw.githubusercontent.com/jbossws/jbossws-cxf/master/modules/testsuite/shared-tests/src/test/resources/jaxws/smoke/tools/wsdl/TestServiceSoap12.wsdl
{code}
Starting with JDK-9 WSDL2java is unable to successfully compile the generated
classes. Class imports, javax.jws.WebMethod, javax.jws.WebService and the like
can not be resolved because "module java.xml.ws, which is not in the module
graph".
Here is the output of the tool.
{code:java}
1206 > ~/bin/mywsdl2java -compile -d /tmp/output/tmp1993473 -verbose -classdir
/tmp/output -allowElementReferences
https://raw.githubusercontent.com/jbossws/jbossws-cxf/master/modules/testsuite/shared-tests/src/test/resources/jaxws/smoke/tools/wsdl/TestServiceSoap12.wsdl
OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was
removed in 8.0
Listening for transport dt_socket at address: 8787
SLF4J: Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the
class path, preempting StackOverflowError.
SLF4J: See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more
details.
Loading FrontEnd jaxws ...
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further
details.
Loading DataBinding jaxb ...
wsdl2java -compile -d /tmp/output/tmp1993473 -verbose -classdir /tmp/output
-allowElementReferences
https://raw.githubusercontent.com/jbossws/jbossws-cxf/master/modules/testsuite/shared-tests/src/test/resources/jaxws/smoke/tools/wsdl/TestServiceSoap12.wsdl
wsdl2java - Apache CXF 3.2.4-SNAPSHOT-53b2be829ed6cd7660ae90e035cc8588b0a8dfb1
Mar 21, 2018 8:50:56 PM org.apache.cxf.wsdl11.WSDLServiceBuilder checkForWrapped
INFO: Operation {http://www.openuri.org/2004/04/HelloWorld}echo cannot be
unwrapped, input message must reference global element declaration with same
localname as operation
/tmp/output/tmp1993473/org/openuri/_2004/_04/helloworld/EndpointInterface.java:3:
error: package javax.jws is not visible
import javax.jws.WebMethod;
^
(package javax.jws is declared in module java.xml.ws, which is not in the
module graph)
/tmp/output/tmp1993473/org/openuri/_2004/_04/helloworld/EndpointInterface.java:4:
error: package javax.jws is not visible
import javax.jws.WebParam;
^
(package javax.jws is declared in module java.xml.ws, which is not in the
module graph)
/tmp/output/tmp1993473/org/openuri/_2004/_04/helloworld/EndpointInterface.java:5:
error: package javax.jws is not visible
import javax.jws.WebResult;
^
(package javax.jws is declared in module java.xml.ws, which is not in the
module graph)
/tmp/output/tmp1993473/org/openuri/_2004/_04/helloworld/EndpointInterface.java:6:
error: package javax.jws is not visible
import javax.jws.WebService;
^
(package javax.jws is declared in module java.xml.ws, which is not in the
module graph)
/tmp/output/tmp1993473/org/openuri/_2004/_04/helloworld/EndpointInterface.java:7:
error: package javax.jws.soap is not visible
import javax.jws.soap.SOAPBinding;
^
(package javax.jws.soap is declared in module java.xml.ws, which is not in
the module graph)
WSDLToJava Error: Failed to compile generated code
org.apache.cxf.tools.common.ToolException: Failed to compile generated code
at org.apache.cxf.tools.common.ClassUtils.compile(ClassUtils.java:125)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:303)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:164)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:412)
at
org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:105)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:185)
{code}
Please file attached script mywsdl2java which will demonstrate this issue.
Edit mywsdl2java and change CXF_HOME and M2_HOME to be the appropriate path.
Make directory /tmp/output/tmp1993473
In a terminal exec cmd
./mywsdl2java -compile -d /tmp/output/tmp1993473 -verbose -classdir
/tmp/output -allowElementReferences
https://raw.githubusercontent.com/jbossws/jbossws-cxf/master/modules/testsuite/shared-tests/src/test/resources/jaxws/smoke/tools/wsdl/TestServiceSoap12.wsdl
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)