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

Reply via email to