2014-10-08 65 views
0

我正在使用下面的wsdl2java插件配置爲使用WSDL生成java類。CXF wsdl2java沒有正確讀取模式

<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中包含下面的schema。

<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的生成兩個類AAAaaaType和參考aaaTypeAAA的方法嗎?

回答

0

您可以檢查WSDL和架構xmlns:tnstargetNamespace

<xsd:element name="aaa" ... - 它可以在模式本身定義。

你可以嘗試瀏覽WSDL和檢查它是否是正確的,因爲問題似乎是相關的架構包括。