[jboss-user] [EJB 3.0] - Re: Reference-Problems within an ear
Hilwi
do-not-reply at jboss.com
Sun Apr 13 07:48:30 EDT 2008
Hello!
I post an extract of the JbsUser because it's a little bit too long but very simple:
| @Entity
| public class JbsUser extends JbsBaseObject implements Serializable {
|
| private String userName;
| private String password;
| private JbsUserGroup mainGroup;
| private List<JbsUserGroup> groups;
|
| /**
| * @return the mainGroup
| */
| @ManyToOne
| @JoinColumn(name = "mainGroupId")
| public JbsUserGroup getMainGroup() {
| return mainGroup;
| }
|
| /**
| * @param mainGroup the mainGroup to set
| */
| public void setMainGroup(JbsUserGroup mainGroup) {
| this.mainGroup = mainGroup;
| }
|
| /**
| * @return the groups
| */
| @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
| public List<JbsUserGroup> getGroups() {
| return groups;
| }
|
| /**
| * @param groups the groups to set
| */
| public void setGroups(List<JbsUserGroup> groups) {
| this.groups = groups;
| }
|
| /**
| * @return the userName
| */
| public String getUserName() {
| return userName;
| }
|
| /**
| * @param userName the userName to set
| */
| public void setUserName(String userName) {
| this.userName = userName;
| }
|
| /**
| * @return the password
| */
| public String getPassword() {
| return password;
| }
|
| /**
| * @param password the password to set
| */
| public void setPassword(String password) {
| this.password = password;
| }
|
| }
|
The base class is JbsBaseObject - this is the base-class for many of my entity-beans - it's no EJB itself:
| @MappedSuperclass
| public class JbsBaseObject implements Serializable {
|
| private Logger logger = Logger.getLogger(JbsBaseObject.class);
|
| private long id;
| private Date created;
| private Timestamp lastAction;
| private boolean deleted;
|
|
|
| public JbsBaseObject() {
| this.setStandardValues();
| }
|
| /**
| * Set's a new unique id for the JbsBaseObject
| */
| public void setNewId() {
| this.setId(JbsBaseObject.createUniqueId());
| }
|
| public static long createUniqueId() {
| UniqueId uniqueId = new UniqueId();
| return uniqueId.getUID();
| }
|
| protected void setStandardValues() {
| this.setId(JbsObject.createUniqueId());
| this.setCreated(new Date());
| this.setDeleted(false);
| }
|
| /**
| * @return the created
| */
| public Date getCreated() {
| return created;
| }
| /**
| * @param created the created to set
| */
| public void setCreated(Date created) {
| this.created = created;
| }
| /**
| * @return the id
| */
| @Id
| public long getId() {
| return id;
| }
| /**
| * @param id the id to set
| */
| public void setId(long id) {
| this.id = id;
| }
| /**
| * @return the lastAction
| */
| public Timestamp getLastAction() {
| return lastAction;
| }
| /**
| * @param lastAction the lastAction to set
| */
| public void setLastAction(Timestamp lastAction) {
| this.lastAction = lastAction;
| }
|
| /**
| * @return the deleted
| */
| public boolean isDeleted() {
| return deleted;
| }
|
| /**
| * @param deleted the deleted to set
| */
| public void setDeleted(boolean deleted) {
| this.deleted = deleted;
| }
|
|
| }
|
This is an extract of the interesting things that I see on the console. First it finds my entity-beans that belong to JbsCore.jar:
| [...]
| 13:17:54,238 INFO [Ejb3Configuration] found EJB3 Entity bean: org.jabusuite.core.users.JbsUser
| 13:17:54,239 INFO [Ejb3Configuration] found EJB3 Entity bean: org.jabusuite.core.users.JbsUserGroup
| 13:17:54,242 INFO [Ejb3Configuration] found EJB3 @MappedSuperclass: org.jabusuite.core.utils.JbsBaseObject
| 13:17:54,243 INFO [Ejb3Configuration] found EJB3 @MappedSuperclass: org.jabusuite.core.utils.JbsObject
| 13:17:54,244 INFO [Ejb3Configuration] found EJB3 Entity bean: org.jabusuite.core.utils.UserNumber
| [...]
|
and binds it to the correct tables. After that it deploys JbsCalendar:
| 13:18:20,549 INFO [PersistenceUnitDeployment] Starting persistence unit persistence.units:ear=OpenJbs_Server.ear,unitName=jabusuite
| 13:18:20,556 INFO [Ejb3Configuration] found EJB3 Entity bean: org.jabusuite.calendar.Appointment
| 13:18:20,558 INFO [Configuration] Reading mappings from resource : META-INF/orm.xml
| 13:18:20,558 INFO [Ejb3Configuration] [PersistenceUnit: jabusuite] no META-INF/orm.xml found
| 13:18:20,561 INFO [AnnotationBinder] Binding entity from annotated class: org.jabusuite.calendar.Appointment
| 13:18:20,562 INFO [EntityBinder] Bind entity org.jabusuite.calendar.Appointment on table Appointment
| 13:18:20,572 WARN [ServiceController] Problem starting service persistence.units:ear=OpenJbs_Server.ear,unitName=jabusuite
| org.hibernate.AnnotationException: @OneToOne or @ManyToOne on org.jabusuite.calendar.Appointment.owner references an unknown entity: org.jabusuite.core.users.JbsUser
| at org.hibernate.cfg.FkSecondPass.doSecondPass(FkSecondPass.java:56)
| at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:428)
| at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:286)
| at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1115)
| at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1233)
| at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:154)
| at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:869)
| at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:407)
| at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:126)
| at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:246)
| 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:585)
| at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:103)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
| at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
| at $Proxy0.start(Unknown Source)
| at org.jboss.system.ServiceController.start(ServiceController.java:417)
| at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy217.start(Unknown Source)
| at org.jboss.ejb3.JmxKernelAbstraction.install(JmxKernelAbstraction.java:120)
| at org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:627)
| at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:351)
| at org.jboss.ejb3.Ejb3Module.startService(Ejb3Module.java:91)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
| at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
| at $Proxy0.start(Unknown Source)
| at org.jboss.system.ServiceController.start(ServiceController.java:417)
| at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy33.start(Unknown Source)
| at org.jboss.ejb3.EJB3Deployer.start(EJB3Deployer.java:512)
| 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:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
| at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
| at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
| at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87)
| at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
| at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy34.start(Unknown Source)
| at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
| at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
| at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy9.deploy(Unknown Source)
| at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
| at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610)
| at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
| at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
| at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
| 13:18:20,574 INFO [EJB3Deployer] Deployed: file:/opt/JBoss/jboss-4.2.2.GA/server/default/tmp/deploy/tmp30047OpenJbs_Server.ear-contents/JbsCalendar.jar
| 13:18:20,579 INFO [TomcatDeployer] deploy, ctxPath=/JaBuSuite_Webclient, warUrl=.../tmp/deploy/tmp30047OpenJbs_Server.ear-contents/JaBuSuite_Webclient-exp.war/
| 13:18:20,795 INFO [EARDeployer] Started J2EE application: file:/opt/JBoss/jboss-4.2.2.GA/server/default/deploy/OpenJbs_Server.ear
| 13:18:20,806 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
|
| --- MBeans waiting for other MBeans ---
| ObjectName: persistence.units:ear=OpenJbs_Server.ear,unitName=jabusuite
| State: FAILED
| Reason: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on org.jabusuite.calendar.Appointment.owner references an unknown entity: org.jabusuite.core.users.JbsUser
| I Depend On:
| jboss.jca:service=DataSourceBinding,name=JaBuSuiteDS
|
| --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
| ObjectName: persistence.units:ear=OpenJbs_Server.ear,unitName=jabusuite
| State: FAILED
| Reason: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on org.jabusuite.calendar.Appointment.owner references an unknown entity: org.jabusuite.core.users.JbsUser
| I Depend On:
| jboss.jca:service=DataSourceBinding,name=JaBuSuiteDS
|
This is my persistence.xml:
| <?xml version="1.0" encoding="UTF-8"?>
| <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
| <persistence-unit name="jabusuite" transaction-type="JTA">
| <provider>org.hibernate.ejb.HibernatePersistence</provider>
| <jta-data-source>java:/JaBuSuiteDS</jta-data-source>
| <properties>
| <property name="hibernate.hbm2ddl.auto" value="update"/>
| </properties>
| </persistence-unit>
| </persistence>
|
I use the same for JbsCore and JbsCalendar.
Maybe I have found a possible problem:
I use the JbsCore.jar as lirary for the JbsCalendar in order to make the JbsCore-Classes available during development in Netbeans. When the JbsCalendar.jar is build the JbsCore.jar will be added to this archieve, so that the classes are deployed twice - the first time because it's added directly to the ear and the second time because it's found within the JbsCalendar.jar. May this have something to do with my problem? Could I delete the JbsCore.jar out of my JbsCalendar.jar?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4143702#4143702
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4143702
More information about the jboss-user
mailing list