是否有使用XML目录从WSDL生成Java代码的工具?问题是我有wsdl文件导入XML模式,这些模式也导入其他模式,模式在schemaLocation网址上不可用。这就是代码生成失败的原因。如果工具能够使用XML Catalog,则可以在不修改每个WSDL和模式中的每个schemaLocation的情况下解决此问题。
我尝试过Eclipse和Netbeans插件但都失败了。在Eclipse和Netbeans中,我使用XML Catalog配置了替代模式位置,因此他们可以无错误地验证WSDL文件。但是,当他们从wsdl生成代码时,他们会失败。
答案 0 :(得分:1)
刚刚发现JBoss的wsconsume工具能够使用XML目录进行实体解析,并且工作正常。
答案 1 :(得分:1)
仅供记录:我在Github上设置了一个使用XML模式的小示例项目。它可能有任何帮助:https://github.com/fmarot/xml-mapping-tutorial 请务必检查其维基以获得概述:https://github.com/fmarot/xml-mapping-tutorial/wiki
答案 2 :(得分:0)
WSDL必须在不使用XML目录的情况下有效,否则使用WSDL的客户端将无法使用它。
当然,如果你永远不会使用任何没有在JBoss平台上运行的客户端,那么你会没事的。
答案 3 :(得分:0)
与此同时,我找到了另一种最符合我需求的解决方案。有一个名为jaxws-maven-plugin的maven插件,当从wsdl生成源时,它也能够处理XMLCatalog。
https://jax-ws-commons.dev.java.net/jaxws-maven-plugin/
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>1.10</version>
<executions>
<execution>
<id>id1</id>
<phase>generate-sources</phase>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<verbose>true</verbose>
<keep>true</keep>
<catalog>${basedir}/src/main/resources/catalog.xml</catalog>
<packageName>org.example</packageName>
<wsdlDirectory>
${basedir}/src/main/resources/contracts/wsdl/ExampleService/1
</wsdlDirectory>
<wsdlFiles>
<wsdlFile>ExampleService_1_0.wsdl</wsdlFile>
</wsdlFiles>
<xadditionalHeaders>false</xadditionalHeaders>
</configuration>
</execution>
</executions>
<configuration>
</configuration>
<dependencies>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-tools</artifactId>
<version>2.1.7</version>
</dependency>
</dependencies>