Issue specifying the <jar-file> in persistence.xml in JBOSS 5 on linux system
dbobes Jan 11, 2010 10:09 AMHello,
My application deploys without any errors in JBOSS 5.1.0GA on a windows system but it fails when deployed in JBOSS 5.1.0GA on Red Hat 5.1.
This is my ear file structure:
myapp.ear
+- lib/
| +- extejbmodule.jar
| +- ...
+- META-INF/
| +- persistence.xml
| +- ...
+- myseammodule.jar
+- mywebmodule.war
+- ...
Right now the myseammodule.jar also contains the JPA entity mappings and I added the <jar-file> tag to my persistence.xml to have this jar scanned for mappings. The persistence.xml looks like this:
<?xml version="1.0" encoding="UTF-8"?> <!-- Persistence deployment descriptor for prod profile --> <persistence 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" version="1.0"> <persistence-unit name="myapppu"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/jdbc/myAppDS</jta-data-source> <jar-file>myapp.ear/myseammodule.jar</jar-file> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> <property name="hibernate.hbm2ddl.auto" value="none"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.jdbc.batch_size" value="20"/> <property name="jboss.entity.manager.factory.jndi.name" value="java:/myappEntityManagerFactory"/> </properties> </persistence-unit> </persistence>
When the ear is deployed on JBOSS 5.1.0GA on a linux system (Red Hat 5.1) the server throws an error:
2010-01-11 09:31:38,554 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (HDScanner) Error installing to Start: name=persistence.unit:unitName=myapp.ear/#myapppu state=Create
java.lang.RuntimeException: could not find relative path: myapp.ear/myseammodule.jar
at org.jboss.jpa.deployment.PersistenceUnitDeployment.getRelativeURL(PersistenceUnitDeployment.java:208)
at org.jboss.jpa.deployment.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:267)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...
DEPLOYMENTS IN ERROR:
Deployment "<UNKNOWN jboss.j2ee:ear=myapp.ear,jar=myapp.ear,name=Server,service=EJB3>" is in error due to the following reason(s): ** UNRESOLVED Demands 'persistence.unit:unitName=myapp.ear/#myapppu' **
Deployment "persistence.unit:unitName=myapp.ear/#myapppu" is in error due to the following reason(s): java.lang.RuntimeException: could not find child 'myapp.ear\myapppu.jar' on 'DelegatingHandler@1179491551[path= context=file:/usr/local/jboss-5.1.0.GA/server/default/tmp/a3p5u2o-ls1ivl-g4bbjti5-1-g4bcqt45-as/myapp.ear real=vfszip:/usr/local/jboss-5.1.0.GA/server/default/tmp/a3p5u2o-ls1ivl-g4bbjti5-1-g4bcqt45-as/myapp.ear]'
One note, the Server bean is from extejbmodule.jar (I'm not sure if this is important).
Any ideas why this configuration doesn't work on the linux system?
Thank you,
Dragos