Hi Ed,
You show the summary from the JBoss console output. If you go to the log file and look at the FIRST exception, which is well before that summary, you will find more information on why you are failing to deploy. Just before the first exception will be an explanation of what section of the EJB spec has been violated.
When debugging in JBoss I always clear the log files, try again, and then search for the first exception in the log. This helps narrow down the problem almost every time. In addition, the log files usually have more debugging information turned on.
I hope this helps. -Don
ed banfa wrote:
Ladies and Gentlemen greetings,
I have tried my best at searching for the solution to my problem but I still cant find one.
I have 4 beans SurferEJB, AccountEJB, SurferBilling and DateEJB
- SurferEJB and AccountEJB are involved in a 1:1 bidrectional relationship (surfer has an account, account belongs to a surfer)
- AccountEJB and SurferBillingEJB are involved in a 1:N bidirectional relationship (many payments to an account)
-AccountEJB and DateEJB are involved in a 1:1 unidirectional relationship (account has a date of creation)
- SurferBillingEJB and DateEJB also have a 1:1 unidirectional relationship (date of billing)
Xdoclet compiles the classes and creates my jar file , no problems with that,
The problem comes from deployment on JBoss
I keep getting the following errors:
09:09:17,630 INFO [MainDeployer] Deployed package: file:/C:/jboss-3.2.1/server/
default/deploy/Xterra-cafe-manager-1.0.jar
09:09:17,630 ERROR [URLDeploymentScanner] MBeanException: Exception in MBean ope
ration 'checkIncompleteDeployments()'
Cause: Incomplete Deployment listing:
Packages waiting for a deployer:
<none>
Incompletely deployed packages:
<none>
MBeans waiting for classes:
<none>
MBeans waiting for other MBeans:
[ObjectName: jboss.j2ee:jndiName=ejb/cafeman/SurferBillingEJB,service=EJB
state: FAILED
I Depend On:
Depends On Me: org.jboss.deployment.DeploymentException: CMP field for key not
found: field name=surferID, ObjectName: jboss.j2ee:jndiName=ejb/cafeman/AccountE
JB,service=EJB
state: FAILED
I Depend On:
Depends On Me: org.jboss.deployment.DeploymentException: CMP field for key not
found: field name=surferID, ObjectName: jboss.j2ee:jndiName=ejb/cafeman/SurferEJ
B,service=EJB
state: FAILED
I Depend On:
Depends On Me: org.jboss.deployment.DeploymentException: CMP field for key not
found: field name=surferID, ObjectName: jboss.j2ee:jndiName=ejb/DateEJB,service=
EJB
PLEASE I WILL REALLY REALLY AND REALLY APPRECIATE ANY HELP
THANKS IN ADVANCE
My code is below:
///SurferEJB
/**
* <p>Persistant object to represent a cybercafe's surfer/customer business entity.</p>
*
* @ejb.bean
* type="CMP"
* name="SurferEJB"
* display="An EJB bean representation of a Cybercafe customer"
* cmp-version="2.x"
* schema="Surfer"
* local-jndi-name="ejb/cafeman/SurferEJB"
* view-type="local"
* primkey-field="surferID"
* @ejb.home
* generate="true"
* local-class="com.netplaytechnologies.cafeman.ejb.surfer.SurferEJBLocalHome"
* @ejb.interface
* local-class="com.netplaytechnologies.cafeman.ejb.surfer.SurferEJBLocal"
* @ejb.finder
* signature="java.util.Collection findByFirstName(java.lang.String name)"
* unchecked="true"
* query="SELECT DISTINCT OBJECT(s) FROM Surfer AS
* WHERE s.firstName = ?1"
* @ejb.finder
* signature="java.util.Collection findByUserName(java.lang.String name)"
* unchecked="true"
* query="SELECT DISTINCT OBJECT(s) FROM Surfer AS s
* WHERE s.userName = ?1"
* @ejb.finder
* signature="java.util.Collection findAll()"
* unchecked="true"
* query="SELECT DISTINCT OBJECT(s)
* FROM Surfer AS s"
* @ejb.finder
* signature="java.util.Collection findSurfersWithNoPayments()"
* unchecked="true"
* query="SELECT DISTINCT OBJECT(s) FROM Surfer AS s
* WHERE s.account.billings IS EMPTY"
* @ejb.persistence
* table-name="TBL_SURFER"
* @ejb.value-object
* name="Surfer"
* match="*"
* @ejb.value-object
* name="SurferLight"
* match="light"
* @ejb.ejb-ref
* ejb-name="AccountEJB"
* ref-name="ejb/cafeman/AccountEJB"
* view-type="local"
* @ejb.transaction
* type="Required"
* @jboss.persistence
* create-table="true"
* remove-table="false"
* read-only="false"
* *
* @author Edward Banfa
* @version 1.0
*/
public abstract class SurferEJBBean extends BaseCMPBean implements javax.ejb.EntityBean {
/**
* @return
* @ejb.interface-method view-type="local"
* @ejb.pk-field
* @ejb.persistence
* column-name="SURFER_ID"
* jdbc-type="VARCHAR"
* sql-type="VARCHAR(100)"
* @ejb.value-object
* match="light"
*
*/
public abstract String getSurferID();
/**
* @param surferID
*
*/
public abstract void setSurferID(String surferID);
/**
* @param account
* @ejb.interface-method view-type="local"
*/
public abstract void setAccount(com.netplaytechnologies.cafeman.ejb.surfer.AccountEJBLocal account);
/**
* @return
* @ejb.interface-method view-type="local"
* @ejb.relation
* name="Surfer-Account"
* role-name="surfer-has-an-account"
* cascade-delete="yes"
* @ejb.value-object
* compose="com.netplaytechnologies.cafeman.ejb.surfer.AccountValue"
* compose-name="AccountValue"
* members="com.netplaytechnologies.cafeman.ejb.surfer.AccountEJBLocal"
* members-name="AccountValue"
* relation = "external"
* @jboss.relation-mapping style="foreign-key"
* @jboss.relation
* fk-column="account_fk"
* related-pk-field="accountID"
* fk-constraint="true"
*/
public abstract com.netplaytechnologies.cafeman.ejb.surfer.AccountEJBLocal getAccount();
///AccountEJB
* local-class="com.netplaytechnologies.cafeman.ejb.surfer.AccountEJBLocal"
* @ejb.finder
* signature="java.util.Collection findAllDiasabledAccounts()"
* query="SELECT DISTINCT OBJECT(a)
* FROM Account a
* WHERE a.accountStatus ='DISABLED'"
* @ejb.finder
* signature="java.util.Collection findAccountsLargerThan(double amount)"
* query="SELECT DISTINCT OBJECT(a)
* FROM Account a
* WHERE a.currentAccountBalance > ?1"
* @ejb.finder
* signature="java.util.Collection findAccountsLessThan(double amount)"
* query="SELECT DISTINCT OBJECT(a)
* FROM Account a
* WHERE a.currentAccountBalance < ?1"
* @ejb.finder
* signature="java.util.Collection findAll()"
* query="SELECT DISTINCT OBJECT(a)
* FROM Account a"
* @ejb.persistence
* table-name="TBL_ACCOUNT"
* @ejb.value-object
* name="Account"
* match="*"
* @ejb.ejb-ref
* ejb-name="DateEJB"
* ref-name="ejb/DateEJB"
* view-type="local"
* @ejb.transaction
* type="Required"
* @jboss.persistence
* create-table="true"
* remove-table="false"
* read-only="false"
*
* @todo Include support for transactions and add more vendor specific persistence information
*/
public abstract class AccountEJBBean extends BaseCMPBean implements javax.ejb.EntityBean {
/**
* @return
* @ejb.interface-method view-type="local"
* @ejb.relation
* name="Surfer-Account"
* role-name="account-belongs-to-a-surfer"
* cascade-delete="yes"
* @ejb.value-object
* aggregate="com.netplaytechnologies.cafeman.ejb.surfer.SurferValue"
* aggregate-name="Surfer"
* members="com.netplaytechnologies.cafeman.ejb.surfer.SurferEJBLocal"
* members-name="Surfer"
* relation="external"
* @jboss.relation-mapping style="foreign-key"
* @jboss.relation
* fk-column="surfer_fk"
* related-pk-field="surferID"
* fk-constraint="true"
*/
public abstract com.netplaytechnologies.cafeman.ejb.surfer.SurferEJBLocal getSurfer();
/**
* @param surfer
* @ejb.interface-method view-type="local"
*/
public abstract void setSurfer(com.netplaytechnologies.cafeman.ejb.surfer.SurferEJBLocal surfer);
/**
* @return
* @ejb.interface-method view-type="local"
* @ejb.relation
* name="Account-DateOfCreation"
* role-name="date-of-account-creation"
* target-ejb="DateEJB"
* target-role-name="account-created-on"
* target-cascade-delete="yes"
* @ejb.value-object
* compose="com.netplaytechnologies.cafeman.ejb.util.DateValue"
* compose-name="DateValue"
* members = "com.netplaytechnologies.cafeman.ejb.util.DateEJBLocal"
* members-name="DateValue"
* relation="external"
* @jboss.relation-mapping style="foreign-key"
* @jboss.relation
* fk-column="dateOfCreation_fk"
* related-pk-field="dateID"
* fk-constraint="true" */
public abstract com.netplaytechnologies.cafeman.ejb.util.DateEJBLocal getDateOfCreation();
/**
* @param dateOfCreation
* @ejb.interface-method view-type="local"
*/
public abstract void setDateOfCreation(com.netplaytechnologies.cafeman.ejb.util.DateEJBLocal dateOfCreation);
/**
* @return
* @ejb.pk-field
* @ejb.interface-method view-type="local"
* @ejb.persistence
* column-name="ACCOUNT_ID"
* jdbc-type="VARCHAR"
* sql-type="VARCHAR(100)"
*/
public abstract String getAccountID();
/**
* @param accountID
*/
public abstract void setAccountID(String accountID);
/**
* @return
* @ejb.interface-method view-type="local"
* @ejb.relation
* name="Account-Billings"
* role-name="billings to an account" * @ejb.value-object
* compose="com.netplaytechnologies.cafeman.ejb.surfer.SurferBillingValue"
* compose-name="SurferBillingValue"
* members="com.netplaytechnologies.cafeman.ejb.surfer.SurferBillingEJBLocal"
* members-name="SurferBillingValue"
* relation="external" * type="Collection"
* @jboss.relation-mapping style="foreign-key"
* @jboss.relation
* fk-column="billing_fk"
* related-pk-field="billingID"
* fk-constraint="true"
* @jboss.target-relation
* fk-constraint="true"
* related-pk-field="accountID"
* fk-column="accountID_fk"
*/
public abstract Collection getAccountBillings();
/**
* @param accountBilling
* @ejb.interface-method view-type="local"
*/
public abstract void setAccountBillings(Collection accountBillings);
///SurferBiillingEJB
/**
* <p>Persistant object to represent the numerous billings/transactions of a single account</p>
* @author Edward Banfa
* @version 1.0
* @ejb.bean
* name="SurferBillingEJB"
* schema="SurferBilling"
* local-jndi-name="ejb/cafeman/SurferBillingEJB"
* view-type="local"
* type="CMP"
* cmp-version="2.x"
* primkey-field="billingID"
* @ejb.home
* generate="true"
* local-class ="com.netplaytechnologies.cafeman.ejb.surfer.SurferBillingEJBLocalHome"
* @ejb.interface
* local-class ="com.netplaytechnologies.cafeman.ejb.surfer.SurferBillingEJBLocal"
* @ejb.value-object
* name="SurferBilling"
* match="*"
* @ejb.persistence
* table-name="TBL_SURFER_BILLINGS"
* @ejb.ejb-ref
* ejb-name="DateEJB"
* ref-name="ejb/DateEJB"
* view-type="local"
* @ejb.finder
* signature="java.util.Collection findAll()"
* query="SELECT DISTINCT OBJECT(b) FROM SurferBilling (b)"
* @ejb.finder
* signature="java.util.Collection findPaymentsBelow(double amount)"
* query="SELECT DISTINCT OBJECT(b)
* FROM SurferBilling (b)
* WHERE b.amountPaid < ?1"
* @ejb.finder
* signature="java.util.Collection findPaymentsAbove(double amount)"
* query="SELECT DISTINCT OBJECT(b)
* FROM SurferBilling (b)
* WHERE b.amountPaid > ?1"
* @ejb.finder
* signature="java.utl.Collection findPaymentByDate(com.netplaytechnologies.cafeman.ejb.util.DateEJBLocal date)"
* query="SELECT DISTINCT OBJECT(b)
* FROM SurferBilling (b)
* WHERE b.dateOfCreation = ?1"
* @ejb.finder
* signature="java.util.Collection findPaymentsBtwn(int start_year,int start_month,int start_day,int end_year,int end_month,int end_day)"
* query="SELECT DISTINCT OBJECT(B)
* FROM SurferBilling (b)
* WHERE (b.dateOfCreation.year BETWEEN ?1 AND ?4) AND
* (b.dateOfCreation.month BETWEEN ?2 AND ?5) AND
* (b.dateOfCreation.day BETWEEN ?3 AND ?6)"
* @ejb.transaction
* type="Required"
* @jboss.persistence
* create-table="true"
* remove-table="false"
* read-only="false"
* */
public abstract class SurferBillingEJBBean extends BaseCMPBean implements javax.ejb.EntityBean {
/**
* @return
* @ejb.interface-method view-type="local"
* @ejb.relation
* name="Billing-DateOfCreation"
* role-name="billing-has-a-date-of-creation"
* target-ejb="DateEJB"
* target-role-name="date-of-billing"
* target-cascade-delete="yes"
* @ejb.value-object
* compose="com.netplaytechnologies.cafeman.ejb.util.DateValue"
* compose-name="DateValue"
* members="com.netplaytechnologies.cafeman.ejb.util.DateEJBLocal"
* members-name="DateValue"
* relation="external"
* @jboss.relation-mapping style="foreign-key"
* @jboss.relation
* fk-column="dateOfCreation_fk"
* related-pk-field="dateID"
* fk-constraint="true" * */
public abstract com.netplaytechnologies.cafeman.ejb.util.DateEJBLocal getDateOfCreation();
/**
* @param date
* @ejb.interface-method view-type="local"
*/
public abstract void setDateOfCreation(com.netplaytechnologies.cafeman.ejb.util.DateEJBLocal date);
/**
* @return
* @ejb.interface-method view-type="local"
* @ejb.persistence
* column-name="BILLING_ID"
* jdbc-type="VARCHAR"
* sql-type="VARCHAR(100)"
* @ejb.pk-field
*/
public abstract String getBillingID();
/**
* @param billingID
*/
public abstract void setBillingID(String billingID);
/**
* @return
* @ejb.interface-method view-type="local"
* @ejb.relation
* name="Account-Billings"
* role-name="Account-has-many-billings"
* @ejb.value-object
* aggregate="com.netplaytechnologies.cafeman.ejb.surfer.AccountValue"
* aggregate-name="AccountValue"
* members = "com.netplaytechnologies.cafeman.ejb.surfer.AccountEJBLocal"
* members-name="AccountValue"
* relation="external"
* @jboss.relation-mapping style="foreign-key"
* @jboss.relation
* fk-column="account_fk"
* related-pk-field="accountID"
* fk-constraint="true"
*/
public abstract AccountEJBLocal getAccount();
/**
* @param account
* @ejb.interface-method view-type="local"
*/
public abstract void setAccount(AccountEJBLocal account);
EDWARD BANFA
NETPLAY TECHNOLOGIES INC. JOS, PLATEAU STATE NIGERIA.
------------------------------------------------------------------------
Do you Yahoo!?
Yahoo! Mail <http://us.rd.yahoo.com/mail_us/taglines/50x/*http://promotions.yahoo.com/new_mail/static/efficiency.html> - 50x more storage than other providers!
------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ xdoclet-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-user