geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Persistence unit <class> annotation having no effect
Date Fri, 23 Oct 2009 17:50:36 GMT
I don't understand what you are trying to do yet.

How many persistence.xml files are there?  AFAIK persistence units  
can't refer to each other, so you might be able to get things to work  
if the classes are distributed between jars A and B but there is only  
one persistence.xml, in B.  In this case I'd wonder why you needed two  
jars, why not just put everything in B?

On Oct 23, 2009, at 8:40 AM, Quintin Beukes wrote:

> I think I might have why it works in OpenEJB and not in Geronimo. It
> seems Geronimo has OpenJPA do the management, where OpenEJB does it
> themselves.

Not sure what management you are talking about here, and are you using  
hibernate jpa?
>
> Is there a way I can pass this responsibility over to OpenEJB instead?

I don't think so.

If there are 2 persistence.xmls, IMO any time this works you've found  
a bug, and the bug might depend on a particular classloader structure  
that occurs in your tests but not runtime environment.

thanks
david jencks


>
> Quintin Beukes
>
>
>
> On Fri, Oct 23, 2009 at 3:25 PM, Quintin Beukes  
> <quintin@last.za.net> wrote:
>> Hey,
>>
>> When doing unit tests, this work fine. But as soon as I deploy the  
>> app
>> to Geronimo, it fails.
>>
>> I have 2 jars A and B. B depends on A, and both have entities  
>> classes.
>> Some of the entities in B reference (foreign keys) entities in A. So
>> to get this working I add the classes in in A I'm referencing to B's
>> persistence unit.
>>
>> When I unit test, this works perfectly. But as soon as I deploy it, I
>> get the following:
>> 2009-10-23 15:18:26,400 INFO  [config] Configuring enterprise
>> application: net.kunye/VDS-lamps-ejb/3.0/jar
>> 2009-10-23 15:18:26,807 INFO  [OpenEJB] Auto-deploying ejb LampBean:
>> EjbDeployment(deployment-id=VDS-lamps-ejb/LampBean)
>> 2009-10-23 15:18:26,808 INFO  [config] Enterprise application
>> "net.kunye/VDS-lamps-ejb/3.0/jar" loaded.
>> 2009-10-23 15:18:28,719 INFO  [Ejb3Configuration] Processing
>> PersistenceUnitInfo [
>>        name: VDS-lamps-PU
>>        ...]
>> 2009-10-23 15:18:28,961 INFO  [AnnotationBinder] Binding entity from
>> annotated class: net.kunye.vds.lamps.LampAssignment
>> 2009-10-23 15:18:28,962 INFO  [EntityBinder] Bind entity
>> net.kunye.vds.lamps.LampAssignment on table LampAssignment
>> 2009-10-23 15:18:29,004 INFO  [AnnotationBinder] Binding entity from
>> annotated class: net.kunye.vds.lamps.Lamp
>> 2009-10-23 15:18:29,004 INFO  [EntityBinder] Bind entity
>> net.kunye.vds.lamps.Lamp on table Lamp
>> 2009-10-23 15:18:29,017 INFO  [AnnotationBinder] Binding entity from
>> annotated class: net.kunye.vds.lamps.LampFault
>> 2009-10-23 15:18:29,017 INFO  [EntityBinder] Bind entity
>> net.kunye.vds.lamps.LampFault on table LampFault
>> 2009-10-23 15:18:29,018 INFO  [AnnotationBinder] Binding entity from
>> annotated class: net.kunye.vds.lamps.LampTest
>> 2009-10-23 15:18:29,019 INFO  [EntityBinder] Bind entity
>> net.kunye.vds.lamps.LampTest on table LampTest
>> 2009-10-23 15:18:29,033 ERROR [GBeanInstanceState] Error while
>> starting; GBean is now in the FAILED state:
>> abstractName="net.kunye/VDS-lamps-ejb/3.0/jar?EJBModule=net.kunye/ 
>> VDS-lamps-ejb/3.0/ 
>> jar 
>> ,J2EEApplication 
>> = 
>> null 
>> ,PersistenceUnitModule=ejb.jar,j2eeType=PersistenceUnit,name=VDS- 
>> lamps-PU"
>> org.hibernate.AnnotationException: @OneToOne or @ManyToOne on
>> net.kunye.vds.lamps.LampAssignment.employee references an unknown
>> entity: net.kunye.personnel.Employee
>>        at  
>> org 
>> .hibernate 
>> .cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:81)
>>        at  
>> org 
>> .hibernate 
>> .cfg 
>> .AnnotationConfiguration 
>> .processEndOfQueue(AnnotationConfiguration.java:456)
>>        at  
>> org 
>> .hibernate 
>> .cfg 
>> .AnnotationConfiguration 
>> .processFkSecondPassInOrder(AnnotationConfiguration.java:438)
>>        at  
>> org 
>> .hibernate 
>> .cfg 
>> .AnnotationConfiguration 
>> .secondPassCompile(AnnotationConfiguration.java:309)
>>        at  
>> org.hibernate.cfg.Configuration.buildMappings(Configuration.java: 
>> 1162)
>>        at  
>> org 
>> .hibernate 
>> .ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1226)
>>        at  
>> org 
>> .hibernate 
>> .ejb 
>> .EventListenerConfigurator.configure(EventListenerConfigurator.java: 
>> 173)
>>        at  
>> org 
>> .hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java: 
>> 854)
>>        at  
>> org 
>> .hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java: 
>> 425)
>>        at  
>> org 
>> .hibernate 
>> .ejb 
>> .HibernatePersistence 
>> .createContainerEntityManagerFactory(HibernatePersistence.java:131)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .persistence.PersistenceUnitGBean.<init>(PersistenceUnitGBean.java: 
>> 127)
>>        at  
>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>        at  
>> sun 
>> .reflect 
>> .NativeConstructorAccessorImpl 
>> .newInstance(NativeConstructorAccessorImpl.java:39)
>>        at  
>> sun 
>> .reflect 
>> .DelegatingConstructorAccessorImpl 
>> .newInstance(DelegatingConstructorAccessorImpl.java:27)
>>        at  
>> java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>>        at org.apache.xbean.recipe.ReflectionUtil 
>> $ConstructorFactory.create(ReflectionUtil.java:952)
>>        at  
>> org 
>> .apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java: 
>> 276)
>>        at  
>> org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
>>        at  
>> org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:910)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .gbean 
>> .runtime 
>> .GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:269)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .gbean 
>> .runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java: 
>> 125)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:538)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:377)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .kernel 
>> .config 
>> .ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java: 
>> 456)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .kernel 
>> .config 
>> .KernelConfigurationManager.start(KernelConfigurationManager.java: 
>> 190)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .kernel 
>> .config 
>> .SimpleConfigurationManager 
>> .startConfiguration(SimpleConfigurationManager.java:546)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .kernel 
>> .config 
>> .SimpleConfigurationManager 
>> .startConfiguration(SimpleConfigurationManager.java:527)
>>        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 
>> .apache 
>> .geronimo 
>> .gbean 
>> .runtime 
>> .ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
>>        at  
>> org 
>> .apache 
>> .geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java: 
>> 130)
>>        at  
>> org 
>> .apache 
>> .geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:850)
>>        at  
>> org 
>> .apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java: 
>> 237)
>>        at  
>> org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
>>        at sun.reflect.GeneratedMethodAccessor134.invoke(Unknown  
>> Source)
>>        at  
>> sun 
>> .reflect 
>> .DelegatingMethodAccessorImpl 
>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>        at  
>> org 
>> .apache 
>> .geronimo 
>> .gbean 
>> .runtime 
>> .ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
>>        at  
>> org 
>> .apache 
>> .geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java: 
>> 130)
>>        at  
>> org 
>> .apache 
>> .geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:850)
>>        at  
>> org 
>> .apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java: 
>> 237)
>>        at  
>> org 
>> .apache 
>> .geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java: 
>> 172)
>>        at  
>> com 
>> .sun 
>> .jmx 
>> .interceptor 
>> .DefaultMBeanServerInterceptor 
>> .invoke(DefaultMBeanServerInterceptor.java:836)
>>        at  
>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java: 
>> 761)
>>        at  
>> javax 
>> .management 
>> .remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java: 
>> 1426)
>>        at javax.management.remote.rmi.RMIConnectionImpl.access 
>> $200(RMIConnectionImpl.java:72)
>>        at javax.management.remote.rmi.RMIConnectionImpl 
>> $PrivilegedOperation.run(RMIConnectionImpl.java:1264)
>>        at java.security.AccessController.doPrivileged(Native Method)
>>        at  
>> javax 
>> .management 
>> .remote 
>> .rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java: 
>> 1366)
>>        at  
>> javax 
>> .management 
>> .remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
>>        at sun.reflect.GeneratedMethodAccessor175.invoke(Unknown  
>> Source)
>>        at  
>> sun 
>> .reflect 
>> .DelegatingMethodAccessorImpl 
>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>        at  
>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
>>        at sun.rmi.transport.Transport$1.run(Transport.java:159)
>>        at java.security.AccessController.doPrivileged(Native Method)
>>        at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
>>        at  
>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java: 
>> 535)
>>        at sun.rmi.transport.tcp.TCPTransport 
>> $ConnectionHandler.run0(TCPTransport.java:790)
>>        at sun.rmi.transport.tcp.TCPTransport 
>> $ConnectionHandler.run(TCPTransport.java:649)
>>        at java.util.concurrent.ThreadPoolExecutor 
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>        at java.util.concurrent.ThreadPoolExecutor 
>> $Worker.run(ThreadPoolExecutor.java:908)
>>        at java.lang.Thread.run(Thread.java:619)
>> 2009-10-23 15:18:29,036 INFO  [startup] Assembling app:
>> /opt/kms/server/geronimo-2.2-20091022/var/temp/geronimo- 
>> deployer1499506686456954036.tmpdir/VDS-lamps-ejb-3.0.jar
>>
>> The entity being referenced is in a module called KMS-Personnel- 
>> ejb. I
>> do have this module as a dependency. If it didn't find it, it should
>> would have told me so. Just a few moments before I deployed this one,
>> I have this in my log:
>> 2009-10-23 15:14:49,688 INFO  [AnnotationBinder] Binding entity from
>> annotated class: net.kunye.personnel.Employee
>> 2009-10-23 15:14:49,688 INFO  [EntityBinder] Bind entity
>> net.kunye.personnel.Employee on table Employee
>> 2009-10-23 15:14:49,690 INFO  [AnnotationBinder] Binding entity from
>> annotated class: net.kunye.personnel.Visitor
>> 2009-10-23 15:14:49,690 INFO  [EntityBinder] Bind entity
>> net.kunye.personnel.Visitor on table Visitor
>> 2009-10-23 15:14:49,773 INFO  [AnnotationBinder] Binding entity from
>> annotated class: net.kunye.personnel.Company
>> 2009-10-23 15:14:49,774 INFO  [EntityBinder] Bind entity
>> net.kunye.personnel.Company on table Company
>>
>> This is my deployment plan: This is my deployment plan for the  
>> above project.
>>  <dep:environment>
>>    <dep:moduleId>
>>      <dep:groupId>net.kunye</dep:groupId>
>>      <dep:artifactId>VDS-lamps-ejb</dep:artifactId>
>>      <dep:version>3.0</dep:version>
>>      <dep:type>jar</dep:type>
>>    </dep:moduleId>
>>
>>    <dep:dependencies>
>>      <dep:dependency>
>>        <dep:groupId>net.kunye</dep:groupId>
>>        <dep:artifactId>VDS-ejb</dep:artifactId>
>>        <dep:version>3.0</dep:version>
>>        <dep:type>jar</dep:type>
>>      </dep:dependency>
>>      <dep:dependency>
>>        <dep:groupId>net.kunye</dep:groupId>
>>        <dep:artifactId>KMS-Personnel-ejb</dep:artifactId>
>>        <dep:version>1.0</dep:version>
>>        <dep:type>jar</dep:type>
>>      </dep:dependency>
>>    </dep:dependencies>
>>  </dep:environment>
>>
>> Can someone please advise how to get around this. It's an urgent  
>> problem.
>>
>> Quintin Beukes
>>


Mime
View raw message