我正在尝试将应用程序从JaxB转换为Axis2,因为我有一个基于它的工作示例,但我现在遇到通过我的sharedbuild.xml文件生成它的问题。
共享版本中的源代码如下所示:
<property name="gen.source.dir" value="${source.dir}/gen" />
<target name="axis build" depends="ivy.retrieve.tools">
<mkdir dir="${gen.source.dir}" description="ensures output directory is available"/>
<delete dir="${gen.source.dir}/com/company/rce/axis2" />
<taskdef name="codegen" classname="org.apache.axis2.tool.ant.AntCodegenTask">
<classpath>
<fileset dir="tools\axis2-ant-plugin" includes="*.jar"/>
</classpath>
</taskdef>
<codegen
wsdlfilename=wsdl address
output="${gen.source.dir}"
packageName="com.company.rce.axis"
generateservicexml="true"/>
</target>
我用包名称中的公司替换我的公司,用“wsdl地址”替换wsdl但我的问题在于我的src / gen文件夹中的包是“src.com.company”。 rce.axis”。我已经在这个工作了几天了,这完全让我感到困惑。您是否有一个地方或者您知道会导致src连接到packageName的开头?
答案 0 :(得分:1)
从wdsl生成Java代码并避免使用src子文件夹的最佳方法是使用maven axis2-wsdl2code-maven-plugin
<properties>
<axis2.version>1.7.4</axis2.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-xmlbeans</artifactId>
<version>${axis2.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>${axis2.version}</version>
<executions>
<execution>
<goals>
<goal>wsdl2code</goal>
</goals>
<configuration>
<wsdlFile>src/main/resources/static/EXAMPLE.wsdl</wsdlFile>
<!-- Valid values are xmlbeans, adb, jibx, and none -->
<databindingName>xmlbeans</databindingName>
<packageName>com.example</packageName>
<outputDirectory>src/main/java</outputDirectory>
<flattenFiles>true</flattenFiles>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
答案 1 :(得分:0)
检查您的WSDL xmlns:src="someuri"
。然后将其添加到您的codegen
任务:namespaceToPackages="someuri=com.company.rce.axis"
。一定要更换&#34; someuri&#34;使用实际WSDL文件中的任何内容。