我目前正在用 Axis2 替换 IBM WebService 框架。从 WSDL 文件生成代码时,我使用 Maven 插件 WSDL2Code。但是,创建的代码总是错误的。或者更确切地说,包名总是错误的,这反过来又使每个调用的方法都无法调用(创建更多错误,在 Eclipse 中多达 10.000 多个错误)。
这是一个实际发生的例子(这只是我专门为获得建议而制作的一个例子):
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>Test</id>
<goals>
<goal>wsdl2code</goal>
</goals>
<configuration>
<packageName>test.testpackage</packageName>
<databindingName>xmlbeans</databindingName>
<wsdlFile>${basedir}/wsdl/service.wsdl</wsdlFile>
<outputDirectory>${basedir}/testdirectory</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
理论上,这应该会在目录 testdirectory/test/testpackage 中生成包名为“test.testpackage”的代码。但是,它会创建以下包:目录 testdirectory.src.test.testpackage 中的 Src.test.testpackage。它总是在包名和目录中添加一个“src”——如果我将包名更改为 src.test.testpackage,它将生成以下包:src.src.test.testpackage。
这当然会导致一个巨大的问题,因为每个生成的文件都有以下错误:“声明的包“src.test.testpackage”与预期的包“src.src.test.testpackage”不匹配
我在这里完全不知所措。我根本找不到任何理由为什么它应该在任何地方添加“src”。我注意到一个自动生成的 build.xml 文件包含一个名为 sourcedirectory = x/src (或类似的值)的值,但我无法影响这个值(尝试更改它然后保存文件没有区别,显然,因为它只是在我下次运行 maven 时再次生成)。
哦,我通常使用命令“mvn clean install”和 WSDL2Code 的 1.4.1 版,所以它不是旧的 wsdl2code:wsdl2code 错误之一。
如果有人知道这里到底出了什么问题,我将不胜感激。
提前致谢。