users@maven-jaxb2-plugin.java.net

XJC invocation of HyperJaxb > 0.5.2 fails in maven-jaxb2-plugin > 6.1 with NoSuchMethodException

From: Warren Crossing <warren.crossing_at_mofokom.biz>
Date: Thu, 09 Apr 2009 16:47:46 +0200

jaxb2-plugin 6.1 and hjb 0.5.2 works OK!!!

but that is the max of both versions I could get.

java.lang.Error: java.lang.NoSuchMethodException:
com.sun.tools.xjc.reader.xmlschema.BGMBuilder.<init>()
         at com.sun.tools.xjc.reader.Ring.get(Ring.java:111)
         at com.sun.tools.xjc.model.CClassInfo.<init>(CClassInfo.java:164)
         at
org.jvnet.hyperjaxb3.ejb.strategy.model.base.WrapCollectionHeteroReference.process(WrapCollectionHeteroReference.java:77)
         at
org.jvnet.hyperjaxb3.ejb.strategy.model.base.DefaultProcessPropertyInfos$PropertyClassifier.onCollectionHeteroReference(DefaultProcessPropertyInfos.java:383)
         at
org.jvnet.hyperjaxb3.ejb.strategy.model.base.DefaultProcessPropertyInfos$PropertyClassifier.onCollectionHeteroReference(DefaultProcessPropertyInfos.java:104)
         at
org.jvnet.hyperjaxb3.xjc.model.CClassifyingVisitor.onHeteroReference(CClassifyingVisitor.java:283)
         at
org.jvnet.hyperjaxb3.xjc.model.CClassifyingVisitor.onReference(CClassifyingVisitor.java:160)
         at
com.sun.tools.xjc.model.CReferencePropertyInfo.accept(CReferencePropertyInfo.java:165)
         at
org.jvnet.hyperjaxb3.ejb.strategy.model.base.DefaultProcessPropertyInfos.process(DefaultProcessPropertyInfos.java:75)
         at
org.jvnet.hyperjaxb3.ejb.strategy.model.base.DefaultProcessPropertyInfos.process(DefaultProcessPropertyInfos.java:49)
         at
org.jvnet.hyperjaxb3.ejb.strategy.model.base.DefaultProcessPropertyInfos.process(DefaultProcessPropertyInfos.java:23)
         at
org.jvnet.hyperjaxb3.ejb.strategy.model.base.DefaultProcessClassInfo.process(DefaultProcessClassInfo.java:17)
         at
org.jvnet.hyperjaxb3.ejb.strategy.model.base.DefaultProcessClassInfo.process(DefaultProcessClassInfo.java:12)
         at
org.jvnet.hyperjaxb3.ejb.strategy.model.base.DefaultProcessModel.process(DefaultProcessModel.java:33)
         at
org.jvnet.hyperjaxb3.ejb.strategy.model.base.DefaultProcessModel.process(DefaultProcessModel.java:20)
         at
org.jvnet.hyperjaxb3.ejb.plugin.EjbPlugin.processModel(EjbPlugin.java:292)
         at
org.jvnet.hyperjaxb3.ejb.plugin.EjbPlugin.run(EjbPlugin.java:159)
         at com.sun.tools.xjc.model.Model.generateCode(Model.java:290)
         at org.jvnet.jaxb2.maven2.XJC2Mojo.runXJC(XJC2Mojo.java:1130)
         at org.jvnet.jaxb2.maven2.XJC2Mojo.execute(XJC2Mojo.java:718)
         at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
         at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
         at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
         at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
         at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
         at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
         at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
         at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
         at
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
         at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: java.lang.NoSuchMethodException:
com.sun.tools.xjc.reader.xmlschema.BGMBuilder.<init>()
         at java.lang.Class.getConstructor0(Class.java:2706)
         at java.lang.Class.getDeclaredConstructor(Class.java:1985)
         at com.sun.tools.xjc.reader.Ring.get(Ring.java:100)
         ... 37 more


pom looks like

<dependencies>
         <dependency>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-impl</artifactId>
                        <version>2.1.6</version>
                </dependency>
         <dependency>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-entitymanager</artifactId>
                        <version>3.3.1.ga</version>
                        <scope>test</scope>
                </dependency>
             <dependency>
                 <groupId>org.jvnet.hyperjaxb3</groupId>
                 <artifactId>hyperjaxb3-ejb-plugin</artifactId>
                 <version>0.5.3</version>
             </dependency>
         </dependencies>
     <build>
     <plugins>
     <plugin>
         <groupId>org.jvnet.jaxb2.maven2</groupId>
         <artifactId>maven-jaxb2-plugin</artifactId>
         <version>0.6.1</version>
         <executions>
             <execution>
                 <goals>
                     <goal>generate</goal>
                 </goals>
             </execution>
         </executions>
         <configuration>
             <extension>true</extension>
             <plugins>
                 <plugin>
                     <groupId>org.jvnet.hyperjaxb3</groupId>
                     <artifactId>hyperjaxb3-ejb-plugin</artifactId>
                     <version>0.5.3</version>
                 </plugin>
             </plugins>
             <args>
                 <arg>-Xequals</arg>
                 <arg>-XhashCode</arg>
                 <arg>-Xhyperjaxb3-ejb</arg>
             </args>
             <!-- Changes the default schema directory -->
             <schemaDirectory>src/main/resources</schemaDirectory>
             <schemaIncludes>
                 <include>ws-humantask-api.xsd</include>
             </schemaIncludes>
             <schemaExcludes>
                 <exclude>one/two/*.xsd</exclude>
             </schemaExcludes>
             <bindingDirectory>src/main/resources</bindingDirectory>
             <bindingIncludes>
                 <include>*.xjb</include>
             </bindingIncludes>
             <bindingExcludes>
                 <exclude>one/two/*.xjb</exclude>
             </bindingExcludes>
         </configuration>
     </plugin>
     </plugins>
     </build>

unfortunatley I'm working on HumanTask api =(

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.example.org/WS-HT/api"
   xmlns:htd="http://www.example.org/WS-HT"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   targetNamespace="http://www.example.org/WS-HT/api"
   elementFormDefault="qualified" blockDefault="#all">
   <!-- other namespaces -->
   <!--xsd:import namespace="http://www.w3.org/XML/1998/namespace"
     schemaLocation="http://www.w3.org/2001/xml.xsd" /-->
   <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
     schemaLocation="xml.xsd" />
   <xsd:import namespace="http://www.example.org/WS-HT"
     schemaLocation="ws-humantask.xsd" />
   <!-- data types for attachment operations -->
   <xsd:element name="attachmentInfo" type="tAttachmentInfo" />
   <xsd:complexType name="tAttachmentInfo">
     <xsd:sequence>
       <xsd:element name="name" type="xsd:string" />
       <xsd:element name="accessType" type="xsd:string" />
       <xsd:element name="contentType" type="xsd:string" />
       <xsd:element name="attachedAt" type="xsd:dateTime" />
       <xsd:element name="attachedBy" type="htd:tUser" />
       <xsd:any namespace="##other" processContents="lax" minOccurs="0"
         maxOccurs="unbounded" />
     </xsd:sequence>
   </xsd:complexType>
   <xsd:element name="attachment" type="tAttachment" />
   <xsd:complexType name="tAttachment">
     <xsd:sequence>
       <xsd:element ref="attachmentInfo" />
       <xsd:element name="value" type="xsd:anyType" />
     </xsd:sequence>
   </xsd:complexType>
   <!-- data types for comments -->
   <xsd:element name="comment" type="tComment" />
   <xsd:complexType name="tComment">
     <xsd:sequence>
       <xsd:element name="addedAt" type="xsd:dateTime" />
       <xsd:element name="addedBy" type="htd:tUser" />
       <xsd:element name="text" type="xsd:string" />
       <xsd:any namespace="##other" processContents="lax" minOccurs="0"
         maxOccurs="unbounded" />
     </xsd:sequence>
   </xsd:complexType>
   <!-- data types for simple query operations -->
   <xsd:element name="taskAbstract" type="tTaskAbstract" />
   <xsd:complexType name="tTaskAbstract">
     <xsd:sequence>
       <xsd:element name="id" type="xsd:string" />
       <xsd:element name="taskType" type="xsd:string" />
       <xsd:element name="name" type="xsd:QName" />

     <xsd:element name="status" type="tStatus" />
     <xsd:element name="priority" type="xsd:nonNegativeInteger"
       minOccurs="0" />
     <xsd:element name="createdOn" type="xsd:dateTime" />
     <xsd:element name="activationTime" type="xsd:dateTime"
       minOccurs="0" />
     <xsd:element name="expirationTime" type="xsd:dateTime"
       minOccurs="0" />
     <xsd:element name="isSkipable" type="xsd:boolean" minOccurs="0" />
     <xsd:element name="hasPotentialOwners" type="xsd:boolean"
       minOccurs="0" />
     <xsd:element name="startByExists" type="xsd:boolean"
       minOccurs="0" />
     <xsd:element name="completeByExists" type="xsd:boolean"
       minOccurs="0" />
     <xsd:element name="presentationName" type="tPresentationName"
       minOccurs="0" />
     <xsd:element name="presentationSubject"
       type="tPresentationSubject" minOccurs="0" />
     <xsd:element name="renderingMethodExists" type="xsd:boolean" />
     <xsd:element name="hasOutput" type="xsd:boolean" minOccurs="0" />
     <xsd:element name="hasFault" type="xsd:boolean" minOccurs="0" />
     <xsd:element name="hasAttachments" type="xsd:boolean"
       minOccurs="0" />
     <xsd:element name="hasComments" type="xsd:boolean"
       minOccurs="0" />
     <xsd:element name="escalated" type="xsd:boolean" minOccurs="0" />
     <xsd:any namespace="##other" processContents="lax" minOccurs="0"
       maxOccurs="unbounded" />
   </xsd:sequence>
</xsd:complexType>
<xsd:element name="task" type="tTask" />
<xsd:complexType name="tTask">
   <xsd:sequence>
     <xsd:element name="id" type="xsd:string" />
     <xsd:element name="taskType" type="xsd:string" />
     <xsd:element name="name" type="xsd:QName" />
     <xsd:element name="status" type="tStatus" />
     <xsd:element name="priority" type="xsd:nonNegativeInteger"
       minOccurs="0" />
     <xsd:element name="taskInitiator" type="htd:tUser"
       minOccurs="0" />
     <xsd:element name="taskStakeholders"
       type="htd:tOrganizationalEntity" minOccurs="0" />
     <xsd:element name="potentialOwners"
       type="htd:tOrganizationalEntity" minOccurs="0" />
     <xsd:element name="businessAdministrators"
       type="htd:tOrganizationalEntity" minOccurs="0" />
     <xsd:element name="actualOwner" type="htd:tUser" minOccurs="0" />
     <xsd:element name="notificationRecipients"
       type="htd:tOrganizationalEntity" minOccurs="0" />
     <xsd:element name="createdOn" type="xsd:dateTime" />
     <xsd:element name="createdBy" type="xsd:string" minOccurs="0" />
     <xsd:element name="activationTime" type="xsd:dateTime"
       minOccurs="0" />
     <xsd:element name="expirationTime" type="xsd:dateTime"

       minOccurs="0" />
     <xsd:element name="isSkipable" type="xsd:boolean" minOccurs="0" />
     <xsd:element name="hasPotentialOwners" type="xsd:boolean"
       minOccurs="0" />
     <xsd:element name="startByExists" type="xsd:boolean"
       minOccurs="0" />
     <xsd:element name="completeByExists" type="xsd:boolean"
       minOccurs="0" />
     <xsd:element name="presentationName" type="tPresentationName"
       minOccurs="0" />
     <xsd:element name="presentationSubject"
       type="tPresentationSubject" minOccurs="0" />
     <xsd:element name="renderingMethodExists" type="xsd:boolean" />
     <xsd:element name="hasOutput" type="xsd:boolean" minOccurs="0" />
     <xsd:element name="hasFault" type="xsd:boolean" minOccurs="0" />
     <xsd:element name="hasAttachments" type="xsd:boolean"
       minOccurs="0" />
     <xsd:element name="hasComments" type="xsd:boolean"
       minOccurs="0" />
     <xsd:element name="escalated" type="xsd:boolean" minOccurs="0" />
     <xsd:element name="primarySearchBy" type="xsd:string"
       minOccurs="0" />
     <xsd:any namespace="##other" processContents="lax" minOccurs="0"
       maxOccurs="unbounded" />
   </xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="tPresentationName">
   <xsd:annotation>
     <xsd:documentation>length-restricted string</xsd:documentation>
   </xsd:annotation>
   <xsd:restriction base="xsd:string">
     <xsd:maxLength value="64" />
     <xsd:whiteSpace value="preserve" />
   </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="tPresentationSubject">
   <xsd:annotation>
     <xsd:documentation>length-restricted string</xsd:documentation>
   </xsd:annotation>
   <xsd:restriction base="xsd:string">
     <xsd:maxLength value="254" />
     <xsd:whiteSpace value="preserve" />
   </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="tStatus">
   <xsd:restriction base="xsd:string">
     <xsd:enumeration value="CREATED" />
     <xsd:enumeration value="READY" />
     <xsd:enumeration value="RESERVED" />
     <xsd:enumeration value="IN_PROGRESS" />
     <xsd:enumeration value="SUSPENDED" />
     <xsd:enumeration value="COMPLETED" />
     <xsd:enumeration value="FAILED" />
     <xsd:enumeration value="ERROR" />
     <xsd:enumeration value="EXITED" />

       <xsd:enumeration value="OBSOLETE" />
     </xsd:restriction>
   </xsd:simpleType>
   <!-- data types for advanced query operations -->
   <xsd:element name="taskQueryResultSet" type="tTaskQueryResultSet" />
   <xsd:complexType name="tTaskQueryResultSet">
     <xsd:sequence>
       <xsd:element name="row" type="tTaskQueryResultRow" minOccurs="0"
         maxOccurs="unbounded" />
     </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="tTaskQueryResultRow">
     <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:element name="id" type="xsd:string" />
       <xsd:element name="taskType" type="xsd:string" />
       <xsd:element name="name" type="xsd:QName" />
       <xsd:element name="status" type="tStatus" />
       <xsd:element name="priority" type="xsd:nonNegativeInteger" />
       <xsd:element name="taskInitiator"
         type="htd:tOrganizationalEntity" />
       <xsd:element name="taskStakeholders"
         type="htd:tOrganizationalEntity" />
       <xsd:element name="potentialOwners"
         type="htd:tOrganizationalEntity" />
       <xsd:element name="businessAdministrators"
         type="htd:tOrganizationalEntity" />
       <xsd:element name="actualOwner" type="htd:tUser" />
       <xsd:element name="notificationRecipients"
         type="htd:tOrganizationalEntity" />
       <xsd:element name="createdOn" type="xsd:dateTime" />
       <xsd:element name="createdBy" type="xsd:string" />
       <xsd:element name="activationTime" type="xsd:dateTime" />
       <xsd:element name="expirationTime" type="xsd:dateTime" />
       <xsd:element name="isSkipable" type="xsd:boolean" />
       <xsd:element name="hasPotentialOwners" type="xsd:boolean" />
       <xsd:element name="startByExists" type="xsd:boolean" />
       <xsd:element name="completeByExists" type="xsd:boolean" />
       <xsd:element name="presentationName" type="tPresentationName" />
       <xsd:element name="presentationSubject"
         type="tPresentationSubject" />
       <xsd:element name="presentationDescription" type="xsd:string" />
       <xsd:element name="renderingMethodExists" type="xsd:boolean" />
       <xsd:element name="hasOutput" type="xsd:boolean" />
       <xsd:element name="hasFault" type="xsd:boolean" />
       <xsd:element name="hasAttachments" type="xsd:boolean" />
       <xsd:element name="hasComments" type="xsd:boolean" />
       <xsd:element name="escalated" type="xsd:boolean" />
       <xsd:element name="primarySearchBy" type="xsd:string" />
       <xsd:any namespace="##other" processContents="lax" />
     </xsd:choice>
   </xsd:complexType>
</xsd:schema>