WSDL file problem with jaxws maven plugin

321 Views Asked by At

I'm currently facing a problem with a WSDL file that comes from a software editor. I'm trying to generate the Java code (client side) with jaxws maven plugin but an error occurs during the wsimport goal :

[ERROR] invalid extension element: "soap:body" (in namespace http://schemas.xmlsoap.org/wsdl/soap/)
        at com.sun.tools.ws.wscompile.ErrorReceiver.error(ErrorReceiver.java:63)
        at com.sun.tools.ws.wscompile.ErrorReceiver.error(ErrorReceiver.java:67)
        at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:152)
        at com.sun.tools.ws.wscompile.WsimportTool.buildWsdlModel(WsimportTool.java:414)
        at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:175)
        at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:153)

        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 org.codehaus.mojo.jaxws.Invoker.main(Invoker.java:80)

Caused by: com.sun.tools.ws.wsdl.framework.ParseException: invalid extension element: "soap:body" (in namespace http://schemas.xmlsoap.org/wsdl/soap/)
        at com.sun.tools.ws.wsdl.parser.Util.fail(Util.java:160)
        at com.sun.tools.ws.wsdl.parser.SOAPExtensionHandler.handleFaultExtension(SOAPExtensionHandler.java:374)
        at com.sun.tools.ws.api.wsdl.TWSDLExtensionHandler.doHandleExtension(TWSDLExtensionHandler.java:61)
        at com.sun.tools.ws.wsdl.parser.AbstractExtensionHandler.doHandleExtension(AbstractExtensionHandler.java:53)
        at com.sun.tools.ws.wsdl.parser.WSDLParser.handleExtension(WSDLParser.java:1030)
        at com.sun.tools.ws.wsdl.parser.WSDLParser.parseBindingOperation(WSDLParser.java:844)
        at com.sun.tools.ws.wsdl.parser.WSDLParser.parseBinding(WSDLParser.java:682)
        at com.sun.tools.ws.wsdl.parser.WSDLParser.parseDefinitionsNoImport(WSDLParser.java:265)
        at com.sun.tools.ws.wsdl.parser.WSDLParser.parseDefinitions(WSDLParser.java:185)
        Failed to parse the WSDL.
        at com.sun.tools.ws.wsdl.parser.WSDLParser.buildWSDLDocument(WSDLParser.java:174)
        at com.sun.tools.ws.wsdl.parser.WSDLParser.parse(WSDLParser.java:146)
        at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:105)
        ... 8 more

Here is my pom.xml with the plugin configuration:

...
<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                        <phase>generate-sources</phase>
                        <!-- Following configuration will invoke wsimport once for each wsdl. -->
                        <configuration>
                            <sourceDestDir>target/generated-sources/java</sourceDestDir>
                            <xdebug>true</xdebug>
                            <keep>true</keep>
                            <extension>true</extension>
                            <verbose>true</verbose>
                            <wsdlUrls>
                                <wsdlUrl>../test.wsdl</wsdlUrl>
<!--                                <wsdlUrl>https://evaldata.unifr.ch/evasys/services/soapserver-v90.wsdl</wsdlUrl>-->
                            <vmArgs>
                                <vmArg>-Djavax.xml.accessExternalDTD=all</vmArg>
                                <vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
                            </vmArgs>
                            <bindingDirectory>src/main/resources</bindingDirectory>
                            <bindingFiles>
                                <bindingFile>binding.xjb</bindingFile>
                            </bindingFiles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
...

I tried multiple configuration (remove the "extension" tag, the "keep" tag, get the file online or in local, etc.). I also tried to use the cxf-codegen-plugin (Apache) but the exception stay the same.

I have off course checked on stackoverflow if there is a way to solve the problem but nothing helps.

0

There are 0 best solutions below