0

I am using maven cxf-codegen-plugin to generate a client for a really big WSDL, here is the example of the 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>
            </configuration>
            <goals>
               <goal>wsdl2java</goal>
            </goals>
         </execution>
      </executions>
   </plugin>

When i am trying to generate the client, i am getting this error:

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

Is there anyway to change the Attribute limit in the maven plugin with a value above 500?

alfespa17
  • 335
  • 1
  • 3
  • 12

1 Answers1

0

I just found the answer, link you can override "org.apache.cxf.stax.maxAttributeCount=500" setting a system java property in maven cxf plugin like this:

<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>
alfespa17
  • 335
  • 1
  • 3
  • 12