我使用下面的wsdl2java插件,配置成使用WSDL生成java类。
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${basedir}/src/main/java</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>src/main/resources/XXXXService.wsdl</wsdl>
<validate>none</validate>
<extraargs>
<extraarg>-server</extraarg>
<extraarg>-impl</extraarg>
<extraarg>-verbose</extraarg>
<extraarg>-p</extraarg>
<extraarg>http://XXX/YY=XXX</extraarg>
<extraarg>-autoNameResolution</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>现在,我的WSDL中包含了下面的模式。
<xsd:include schemaLocation="myschema.xsd" xmlns="tns"></xsd:include>当我的元素定义在WSDL中时,如下所示,它为myElement生成一个类,这很好:
<xsd:element name="myElement">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="a" type="xsd:string"
minOccurs="1">
</xsd:element>
<xsd:element name="b" type="xsd:string"
minOccurs="1">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
但是当我在WSDL中的元素定义引用模式中的ComplexType定义时。然后元素类aaa不生成,只生成aaaType类。
<xsd:element name="aaa"
type="tns:aaaType">
</xsd:element>我是否可以指定wsdl2java来生成aaa和aaaType,以及在aaa中引用aaaType?
发布于 2014-10-14 07:12:41
您可以在WSDL和模式上检查xmlns:tns和targetNamespace。
<xsd:element name="aaa".-它可以在模式本身中定义。
您可以尝试浏览WSDL并检查它是否正确,因为问题似乎与模式包含有关。
https://stackoverflow.com/questions/26265657
复制相似问题