You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by Ka...@t-systems.com on 2008/02/11 19:34:48 UTC
OpenEJB - Missing required persistence.xml
Hi,
I'm experimenting for one day with OpenEJB 3.0-beta-2, but I'm stuck. I
have tried different approaches to test EJBs, ejb3unit, JBoss
embeddable, but OpenEJB seems to be the best, although it also does not
work for me.
I always get a
- FAIL ... PatternManagementDaoImpl: Missing required persistence.xml
for @PersistenceContext ref "em" to unit "pattern-managementPu"
What's wrong? It is there. And where should it be placed? In META-INF
like usually? It seems that it is later found.
What I want to do is to use an Apache Derby database (in memory) which
is automatically initilialized. What do I have to define and where, that
this works?
Can I define the order in which the EJB modules are loaded?
Thanks,
Karsten
Apache OpenEJB 3.0-beta-2 build: 20080131-03:38
http://openejb.apache.org/
- openejb.home = C:\workspace\pattern-management\pattern-management-impl
- openejb.base = C:\workspace\pattern-management\pattern-management-impl
- Configuring Service(id=Default Security Service, type=SecurityService,
provider-id=Default Security Service)
- Configuring Service(id=Default Transaction Manager,
type=TransactionManager, provider-id=Default Transaction Manager)
- Configuring Service(id=Derby Database, type=Resource,
provider-id=Default JDBC Database)
- Configuring Service(id=Default JDK 1.3 ProxyFactory,
type=ProxyFactory, provider-id=Default JDK 1.3 ProxyFactory)
- Configuring Service(id=Default Stateless Container, type=Container,
provider-id=Default Stateless Container)
- Found EjbModule in classpath:
C:\workspace\pattern-management\pattern-management-impl\src\main\resourc
es
- Found EjbModule in classpath:
C:\workspace\pattern-management\pattern-management-impl\src\test\resourc
es
- Configuring app:
C:\workspace\networkstorage-management\networkstorage-management-impl\ta
rget\classes
- Loaded Module:
C:\workspace\networkstorage-management\networkstorage-management-impl\ta
rget\classes
- Configuring app:
C:\workspace\pattern-management\pattern-management-impl\target\classes
- FAIL ... PatternManagementDaoImpl: Missing required persistence.xml
for @PersistenceContext ref "em" to unit "pattern-managementPu"
- FAIL ... TestFacadeImpl: Missing required persistence.xml for
@PersistenceContext ref "em" to unit "pattern-managementPu"
- Jar not loaded.
C:\workspace\pattern-management\pattern-management-impl\target\classes.
Module failed validation.
AppModule(path=C:\workspace\pattern-management\pattern-management-impl\t
arget\classes)
- Configuring app:
C:\workspace\pattern-management\pattern-management-impl\src\main\resourc
es
- Configuring PersistenceUnit(name=pattern-managementPu, provider=null)
- Loaded Module:
C:\workspace\pattern-management\pattern-management-impl\src\main\resourc
es
- Configuring app:
C:\workspace\pattern-management\pattern-management-impl\src\test\resourc
es
- Configuring PersistenceUnit(name=pattern-managementPu, provider=null)
- Loaded Module:
C:\workspace\pattern-management\pattern-management-impl\src\test\resourc
es
- Creating ProxyFactory(id=Default JDK 1.3 ProxyFactory)
- Creating TransactionManager(id=Default Transaction Manager)
- Creating SecurityService(id=Default Security Service)
- Creating Resource(id=Derby Database)
- Creating Container(id=Default Stateless Container)
- Assembling app:
C:\workspace\networkstorage-management\networkstorage-management-impl\ta
rget\classes
- Jndi(name=NetworkStorageServiceImplRemote) -->
Ejb(deployment-id=NetworkStorageServiceImpl)
- Created Ejb(deployment-id=NetworkStorageServiceImpl,
ejb-name=NetworkStorageServiceImpl, container=Default Stateless
Container)
- Deployed
Application(path=C:\workspace\networkstorage-management\networkstorage-m
anagement-impl\target\classes)
- Assembling app:
C:\workspace\pattern-management\pattern-management-impl\src\main\resourc
es
- PersistenceUnit(name=pattern-managementPu, provider=null)
- JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested
installation of a ClassFileTransformer which requires a JavaAgent. See
http://openejb.apache.org/3.0/javaagent.html
- Deployed
Application(path=C:\workspace\pattern-management\pattern-management-impl
\src\main\resources)
- Assembling app:
C:\workspace\pattern-management\pattern-management-impl\src\test\resourc
es
- PersistenceUnit(name=pattern-managementPu, provider=null)
- JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested
installation of a ClassFileTransformer which requires a JavaAgent. See
http://openejb.apache.org/3.0/javaagent.html
- Deployed
Application(path=C:\workspace\pattern-management\pattern-management-impl
\src\test\resources)
- OpenEJB ready.
OpenEJB ready.
Re: OpenEJB - Missing required persistence.xml
Posted by Jacek Laskowski <ja...@laskowski.net.pl>.
On Feb 11, 2008 10:34 AM, <Ka...@t-systems.com> wrote:
> - FAIL ... PatternManagementDaoImpl: Missing required persistence.xml
> for @PersistenceContext ref "em" to unit "pattern-managementPu"
>
> What's wrong? It is there. And where should it be placed? In META-INF
> like usually? It seems that it is later found.
"like usually"? That's how EJB3 spec mandates it so we should follow
the rule and we do. Can you jar -tf <your ejb/ear> and send the output
here? Could you show persistence.xml too so we can look at it?
> Can I define the order in which the EJB modules are loaded?
Not in a spec-compliant way. I'm not sure if you can do it in openejb
either, but would rather wait for Dave/Dain's reply before counting on
mine.
Jacek
--
Jacek Laskowski
http://www.JacekLaskowski.pl
Re: OpenEJB - Missing required persistence.xml
Posted by David Blevins <da...@visi.com>.
It seems like what's happening is eclipse isn't configured to copy in
the src/*/resources files into the related build output directories.
To see if I could replicate the issue, I grabbed our injection-of-
entitymanager example from the examples zip and generated an eclipse
project for it using 'mvn eclipse:eclipse' on the command line. Then
I added the M2_REPO variable[1]. When it asked me if I wanted to
rebuild everything I said yes. After I was able to run the test case
in eclipse.
Here's the relevant part of my .classpath file when all that was done:
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/resources" excluding="**/
*.java"/>
<classpathentry kind="src" path="src/test/java" output="target/test-
classes"/>
<classpathentry kind="output" path="target/classes"/>
The goal is that "src/main/java" and "src/main/resources" should
output into "target/classes". And "src/test/java" and "src/test/
resources" should output into "target/test-classes". If both of those
happen correctly, you shouldn't need any <Deployments> entries in your
openejb.xml file at all.
If you can post your .classpath file for pattern-management-impl
that'd be great.
On a side note, you can configure data sources from within your test
case (and delete your openejb.xml entirely) like so:
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.client.LocalInitialContextFactory");
p.put("myDataSource", "new://Connector?type=DataSource");
p.put("myDataSource.JdbcDriver",
"org.apache.derby.jdbc.EmbeddedDriver");
p.put("myDataSource.JdbcUrl",
"jdbc:derby:derbyDB;create=true");
Context context = new InitialContext(p);
-David
[1] http://people.apache.org/~dblevins/eclipse-howto/new-variable.tiff
On Feb 11, 2008, at 10:34 AM, <Ka...@t-systems.com> <Karsten.Ohme@t-systems.com
> wrote:
> Hi,
>
> I'm experimenting for one day with OpenEJB 3.0-beta-2, but I'm
> stuck. I
> have tried different approaches to test EJBs, ejb3unit, JBoss
> embeddable, but OpenEJB seems to be the best, although it also does
> not
> work for me.
>
> I always get a
>
> - FAIL ... PatternManagementDaoImpl: Missing required persistence.xml
> for @PersistenceContext ref "em" to unit "pattern-managementPu"
>
> What's wrong? It is there. And where should it be placed? In META-INF
> like usually? It seems that it is later found.
>
> What I want to do is to use an Apache Derby database (in memory) which
> is automatically initilialized. What do I have to define and where,
> that
> this works?
>
> Can I define the order in which the EJB modules are loaded?
>
> Thanks,
> Karsten
>
> Apache OpenEJB 3.0-beta-2 build: 20080131-03:38
> http://openejb.apache.org/
> - openejb.home = C:\workspace\pattern-management\pattern-management-
> impl
> - openejb.base = C:\workspace\pattern-management\pattern-management-
> impl
> - Configuring Service(id=Default Security Service,
> type=SecurityService,
> provider-id=Default Security Service)
> - Configuring Service(id=Default Transaction Manager,
> type=TransactionManager, provider-id=Default Transaction Manager)
> - Configuring Service(id=Derby Database, type=Resource,
> provider-id=Default JDBC Database)
> - Configuring Service(id=Default JDK 1.3 ProxyFactory,
> type=ProxyFactory, provider-id=Default JDK 1.3 ProxyFactory)
> - Configuring Service(id=Default Stateless Container, type=Container,
> provider-id=Default Stateless Container)
> - Found EjbModule in classpath:
> C:\workspace\pattern-management\pattern-management-impl\src\main
> \resourc
> es
> - Found EjbModule in classpath:
> C:\workspace\pattern-management\pattern-management-impl\src\test
> \resourc
> es
> - Configuring app:
> C:\workspace\networkstorage-management\networkstorage-management-impl
> \ta
> rget\classes
> - Loaded Module:
> C:\workspace\networkstorage-management\networkstorage-management-impl
> \ta
> rget\classes
> - Configuring app:
> C:\workspace\pattern-management\pattern-management-impl\target\classes
> - FAIL ... PatternManagementDaoImpl: Missing required persistence.xml
> for @PersistenceContext ref "em" to unit "pattern-managementPu"
> - FAIL ... TestFacadeImpl: Missing required persistence.xml for
> @PersistenceContext ref "em" to unit "pattern-managementPu"
> - Jar not loaded.
> C:\workspace\pattern-management\pattern-management-impl\target
> \classes.
> Module failed validation.
> AppModule(path=C:\workspace\pattern-management\pattern-management-
> impl\t
> arget\classes)
> - Configuring app:
> C:\workspace\pattern-management\pattern-management-impl\src\main
> \resourc
> es
> - Configuring PersistenceUnit(name=pattern-managementPu,
> provider=null)
> - Loaded Module:
> C:\workspace\pattern-management\pattern-management-impl\src\main
> \resourc
> es
> - Configuring app:
> C:\workspace\pattern-management\pattern-management-impl\src\test
> \resourc
> es
> - Configuring PersistenceUnit(name=pattern-managementPu,
> provider=null)
> - Loaded Module:
> C:\workspace\pattern-management\pattern-management-impl\src\test
> \resourc
> es
> - Creating ProxyFactory(id=Default JDK 1.3 ProxyFactory)
> - Creating TransactionManager(id=Default Transaction Manager)
> - Creating SecurityService(id=Default Security Service)
> - Creating Resource(id=Derby Database)
> - Creating Container(id=Default Stateless Container)
> - Assembling app:
> C:\workspace\networkstorage-management\networkstorage-management-impl
> \ta
> rget\classes
> - Jndi(name=NetworkStorageServiceImplRemote) -->
> Ejb(deployment-id=NetworkStorageServiceImpl)
> - Created Ejb(deployment-id=NetworkStorageServiceImpl,
> ejb-name=NetworkStorageServiceImpl, container=Default Stateless
> Container)
> - Deployed
> Application(path=C:\workspace\networkstorage-management
> \networkstorage-m
> anagement-impl\target\classes)
> - Assembling app:
> C:\workspace\pattern-management\pattern-management-impl\src\main
> \resourc
> es
> - PersistenceUnit(name=pattern-managementPu, provider=null)
> - JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested
> installation of a ClassFileTransformer which requires a JavaAgent.
> See
> http://openejb.apache.org/3.0/javaagent.html
> - Deployed
> Application(path=C:\workspace\pattern-management\pattern-management-
> impl
> \src\main\resources)
> - Assembling app:
> C:\workspace\pattern-management\pattern-management-impl\src\test
> \resourc
> es
> - PersistenceUnit(name=pattern-managementPu, provider=null)
> - JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested
> installation of a ClassFileTransformer which requires a JavaAgent.
> See
> http://openejb.apache.org/3.0/javaagent.html
> - Deployed
> Application(path=C:\workspace\pattern-management\pattern-management-
> impl
> \src\test\resources)
> - OpenEJB ready.
> OpenEJB ready.
>