Maven cxf-codegen-plugin XMLStreamException错误:属性限制

我正在使用maven cxf-codegen-plugin为非常大的WSDL生成客户端,这是配置示例:

   <plugin>
   <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-codegen-plugin</artifactId>
      <version>${cxf-version}</version>
      <executions>
         <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
               <!--sourceRoot>${project.build.directory}/generated/cxf</sourceRoot-->
               <sourceRoot>${project.basedir}/src/main/java</sourceRoot>
               <wsdlOptions>
                  <wsdlOption>
                     <wsdl>${project.basedir}/src/main/resources/wsdl/PDT.wsdl</wsdl>
                     <wsdlLocation>classpath:wsdl/PDT.wsdl</wsdlLocation>
                     <extendedSoapHeaders>true</extendedSoapHeaders>
                     <autoNameResolution>true</autoNameResolution>
                  </wsdlOption>
               </wsdlOptions>
            </configuration>
            <goals>
               <goal>wsdl2java</goal>
            </goals>
         </execution>
      </executions>
   </plugin>

当我尝试生成客户端时,出现此错误:

Exception in thread "main" org.apache.cxf.tools.common.ToolException: org.apache.cxf.wsdl11.WSDLRuntimeException: Fail to create wsdl definition file:/src/main/resources/wsdl/PDT.wsdl: WSDLException: faultCode=PARSER_ERROR: javax.xml.stream.XMLStreamException: Attribute limit (500) exceeded

是否有必要更改Maven插件中的属性限制,使其值大于500?

yangguangpuzhao1989 回答:Maven cxf-codegen-plugin XMLStreamException错误:属性限制

我刚刚找到了答案,link您可以重写“ org.apache.cxf.stax.maxAttributeCount = 500”在maven cxf插件中设置系统Java属性,如下所示:

<configuration>
<plugin>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-codegen-plugin</artifactId>
   <version>${cxf-version}</version>
   <executions>
      <execution>
      <id>generate-sources</id>
      <phase>generate-sources</phase>
      <configuration>
      <!--sourceRoot>${project.build.directory}/generated/cxf</sourceRoot-->
      <sourceRoot>${project.basedir}/src/main/java</sourceRoot>
      <wsdlOptions>
         <wsdlOption>
            <wsdl>${project.basedir}/src/main/resources/wsdl/PDT.wsdl</wsdl>                   
            <wsdlLocation>classpath:wsdl/PDT.wsdl</wsdlLocation>
            <extendedSoapHeaders>true</extendedSoapHeaders>
            <autoNameResolution>true</autoNameResolution>
         </wsdlOption>
      </wsdlOptions>
      <additionalJvmArgs>-Dorg.apache.cxf.stax.maxAttributeCount=5000</additionalJvmArgs>
   </configuration>
   <goals>
      <goal>wsdl2java</goal>
   </goals>
   </execution>
</executions>
</plugin>
本文链接:https://www.f2er.com/2981988.html

大家都在问