am using EJB 2.0 CMP and CMR. I am getting IllegalStateExceptions when I try to use a ValueObject on a relationship that points to a component that is not built when XDoclet runs.
I am developing several components and want each one to build seperately. the Address component doesn't have a relation to anything. The Bank component has a CMR to Address. First, I build address ( using XDoclet ). When I go to build the Bank component, which has a CMR to Address, I get the exception that is pasted below. Is there anyway to generate a ValueObject of a bean that has a relationship to another bean that is not processed during the current build and have the relation included in the ValueObject? Here is the contents of the packaged Address //value object address.AddressValue //local object address.ejb.AddressLocal //local home addresss.ejb.AddressLocalHome //implementation of bean address.ejb.AddressCMP //abstract base bean address.ejb.AddressEJB //util object address.util.AddressUtil Here is the relevant parts of the ejb that has a CMR to AddressLocal /** * @return The address of this bank * * @ejb:interface-method view-type="local" * @ejb:relation name="Bank-Address" * role-name="Bank-has-Address" * cascade-delete="no" * target-ejb="Address" * target-role-name="Address-to-Bank" * target-cascade-delete="no" * target-multiple="no" * * @ejb:value-object aggregate="jaff.address.AddressValue" * aggregate-name="addressValue" * * @jboss:relation fk-constraint="true" * related-pk-field="id" * fk-column="addressId" */ public abstract AddressLocal getAddress(); //==== Business Methods ====// /** * @ejb:interface-method view-type="both" */ public abstract void setBankValue(BankValue value); /** * @ejb:interface-method view-type="both" */ public abstract BankValue getBankValue(); ------------------------------------------------------- I get the error when trying to generate the setBankValue method. The address component is in the classpath cause I can take out the set method and everything works. Here is the stack trace [ejbdoclet] sourcepath is deprecated. the preferred way to design sources is via nested <fileset> [ejbdoclet] Running <valueobject/> [ejbdoclet] --> jaff.bank.BankValue [ejbdoclet] Running <entitycmp/> [ejbdoclet] Generating CMP class for 'jaff.bank.ejb.BankEJB'. [ejbdoclet] (TemplateEngine.invokeMethod 604 ) Invoking method failed: xdoclet.tags.ClassTagsHandler.pushClass, line=10 of template file: jar:file:/home/james/dev/projects/jaff/workdir/jaff/lib/xdoclet/lib/xdoclet. jar!/xdoclet/ejb/entitycmp.j [ejbdoclet] java.lang.IllegalStateException: Classname can't be empty String [ejbdoclet] at xjavadoc.XJavaDoc.getXClass(XJavaDoc.java:366) [ejbdoclet] at xjavadoc.XJavaDoc.getXClass(XJavaDoc.java:143) [ejbdoclet] at xdoclet.tags.ClassTagsHandler.pushClass(ClassTagsHandler.java:194) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:76) [ejbdoclet] at xdoclet.tags.MethodTagsHandler.ifDoesntHaveMethodTag(MethodTagsHandler.java: 318) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:76) [ejbdoclet] at xdoclet.ejb.tags.ValueObjectTagsHandler.forAllRelations(ValueObjectTagsHandl er.java:726) [ejbdoclet] at xdoclet.ejb.tags.ValueObjectTagsHandler.forAllAggregates(ValueObjectTagsHand ler.java:393) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:76) [ejbdoclet] at xdoclet.ejb.tags.ValueObjectTagsHandler.forAllSetters(ValueObjectTagsHandler .java:557) [ejbdoclet] at xdoclet.ejb.tags.ValueObjectTagsHandler.forAllSuperSetValue(ValueObjectTagsH andler.java:347) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:76) [ejbdoclet] at xdoclet.tags.MergeTagsHandler.generateUsingMergedFile(MergeTagsHandler.java: 222) [ejbdoclet] at xdoclet.tags.MergeTagsHandler.merge(MergeTagsHandler.java:80) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:76) [ejbdoclet] at xdoclet.ejb.tags.ValueObjectTagsHandler.ifUsingValueObject(ValueObjectTagsHa ndler.java:449) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateEngine.start(TemplateEngine.java:483) [ejbdoclet] at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:786) [ejbdoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:706) [ejbdoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:577) [ejbdoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:487) [ejbdoclet] at xdoclet.DocletTask.executeSubTasks(DocletTask.java:606) [ejbdoclet] at xdoclet.DocletTask.execute(DocletTask.java:379) [ejbdoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:104) [ejbdoclet] at org.apache.tools.ant.Task.perform(Task.java:217) [ejbdoclet] at org.apache.tools.ant.Target.execute(Target.java:184) [ejbdoclet] at org.apache.tools.ant.Target.performTasks(Target.java:202) [ejbdoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:601) [ejbdoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:560) [ejbdoclet] at org.apache.tools.ant.Main.runBuild(Main.java:454) [ejbdoclet] at org.apache.tools.ant.Main.start(Main.java:153) [ejbdoclet] at org.apache.tools.ant.Main.main(Main.java:176) [ejbdoclet] Running XDoclet failed. [ejbdoclet] <<Running XDoclet failed.>> [ejbdoclet] xdoclet.template.TemplateException: Invoking method in class xdoclet.tags.ClassTagsHandler failed: pushClass, line=10 of template file: jar:file:/home/james/dev/projects/jaff/workdir/jaff/lib/xdoclet/lib/xdoclet. jar!/xdoclet/ejb/entitycmp.j, exception: null [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:605) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:76) [ejbdoclet] at xdoclet.tags.MethodTagsHandler.ifDoesntHaveMethodTag(MethodTagsHandler.java: 318) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:76) [ejbdoclet] at xdoclet.ejb.tags.ValueObjectTagsHandler.forAllRelations(ValueObjectTagsHandl er.java:726) [ejbdoclet] at xdoclet.ejb.tags.ValueObjectTagsHandler.forAllAggregates(ValueObjectTagsHand ler.java:393) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:76) [ejbdoclet] at xdoclet.ejb.tags.ValueObjectTagsHandler.forAllSetters(ValueObjectTagsHandler .java:557) [ejbdoclet] at xdoclet.ejb.tags.ValueObjectTagsHandler.forAllSuperSetValue(ValueObjectTagsH andler.java:347) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:76) [ejbdoclet] at xdoclet.tags.MergeTagsHandler.generateUsingMergedFile(MergeTagsHandler.java: 222) [ejbdoclet] at xdoclet.tags.MergeTagsHandler.merge(MergeTagsHandler.java:80) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:76) [ejbdoclet] at xdoclet.ejb.tags.ValueObjectTagsHandler.ifUsingValueObject(ValueObjectTagsHa ndler.java:449) [ejbdoclet] at java.lang.reflect.Method.invoke(Native Method) [ejbdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:719) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:594) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:1037) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:1001) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:539) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:427) [ejbdoclet] at xdoclet.template.TemplateEngine.start(TemplateEngine.java:483) [ejbdoclet] at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:786) [ejbdoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:706) [ejbdoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:577) [ejbdoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:487) [ejbdoclet] at xdoclet.DocletTask.executeSubTasks(DocletTask.java:606) [ejbdoclet] at xdoclet.DocletTask.execute(DocletTask.java:379) [ejbdoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:104) [ejbdoclet] at org.apache.tools.ant.Task.perform(Task.java:217) [ejbdoclet] at org.apache.tools.ant.Target.execute(Target.java:184) [ejbdoclet] at org.apache.tools.ant.Target.performTasks(Target.java:202) [ejbdoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:601) [ejbdoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:560) [ejbdoclet] at org.apache.tools.ant.Main.runBuild(Main.java:454) [ejbdoclet] at org.apache.tools.ant.Main.start(Main.java:153) [ejbdoclet] at org.apache.tools.ant.Main.main(Main.java:176) [ejbdoclet] /home/james/dev/projects/jaff/workdir/jaff/main/src/components/bank/build.xm l:53: Running XDoclet failed. [ejbdoclet] at xdoclet.DocletTask.executeSubTasks(DocletTask.java:635) [ejbdoclet] at xdoclet.DocletTask.execute(DocletTask.java:379) [ejbdoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:104) [ejbdoclet] at org.apache.tools.ant.Task.perform(Task.java:217) [ejbdoclet] at org.apache.tools.ant.Target.execute(Target.java:184) [ejbdoclet] at org.apache.tools.ant.Target.performTasks(Target.java:202) [ejbdoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:601) [ejbdoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:560) [ejbdoclet] at org.apache.tools.ant.Main.runBuild(Main.java:454) [ejbdoclet] at org.apache.tools.ant.Main.start(Main.java:153) [ejbdoclet] at org.apache.tools.ant.Main.main(Main.java:176) [ejbdoclet] --- Nested Exception --- BUILD FAILED <<...OLE_Obj...>> <<...OLE_Obj...>> James Hicks C.A.D.G. - Application Developer BERRYDirect Email: [EMAIL PROTECTED] Phone: 936.462.4655 Fax: 936.462.4655 Pager: 936.568.4296 I-Pager: [EMAIL PROTECTED] "The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential, proprietary, and/or privileged material. Any review, retransmission, dissemination, or other use of, or taking of, any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from all computers." _______________________________________________ Xdoclet-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-user
