我正在进行我的第一个Java-Spring项目。我需要与几个Web服务进行通信。我提供了一些WSDL,所以我使用Jax2B来自动生成类。
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.9.0</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaLanguage>WSDL</schemaLanguage>
<generatePackage>hello.wsdl</generatePackage>
<forceRegenerate>true</forceRegenerate>
<schemas>
<schema>
<url>http://wsf.cdyne.com/WeatherWS/Weather.asmx?wsdl</url>
</schema>
</schemas>
</configuration>
</plugin>
我的项目是一个网络项目。这里的问题是,我的类是在目标文件夹中生成的,而不是在我的项目中生成的。有人有想法如何解决这个问题?正确生成类,但不在正确的目录中生成。如您所见,我现在正在使用测试wsdl和模型名称。我遵循了本教程:http://spring.io/guides/gs/consuming-web-service/
非常感谢提前
答案 0 :(得分:7)
此处maven-jaxb2-pugin
的作者。
target/generated-sources/xjc
是正确的目录。这就是在Maven构建中处理生成代码的方式,您永远不会在src/main/java
生成任何内容。
maven-jaxb2-plugin
还将此目录添加到Maven的sources目录中。您只需确保IDE将此目录视为源目录。在Eclipse中,m2eclipse插件会在您执行“更新项目”时自动执行此操作。
答案 1 :(得分:2)
我使用此插件将生成的类添加到源....
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>target/generated-sources/xjc</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>