JBoss und PostgreSQL DB

tobe77

Grünschnabel
Hallo zusammen,

ich möchte eine JBoss AS Server zusammen mit einer PostgreSQL Datenbank betreiben:

Die persistence.xml sieht folgendermaßen aus:

Code:
<?xml version="1.0" encoding="UTF-8" ?>
<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="persunit" transaction-type="JTA">
    
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/PostgresDS</jta-data-source>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
            <property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.JTATransactionFactory"/>
            <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
            <property name="hibernate.hbm2ddl.auto" value="update" />
        </properties>
 
    </persistence-unit>
</persistence>

und die postgres-ds.xml so

Code:
<?xml version="1.0" encoding="UTF-8"?>  
 <datasources>  
     <local-tx-datasource>  
         <jndi-name>PostgresDS</jndi-name>  
         <connection-url>jdbc:postgresql://127.0.0.1:5432/postgres</connection-url> 
         <driver-class>org.postgresql.Driver</driver-class>  
         <user-name>postgres</user-name>  
         <password>postgres1</password>  
     </local-tx-datasource>  
 </datasources>

Die persistence.xml befindet sich im Meta-Ordner des EJB Projektes und die postgres-ds.xml liegt im Deploy Ordner des AS Servers.

In einem Stateless SB möchte ich per Annotation den Entity-Manager folgendermaßen benutzen:

Code:
@Stateless(name = "SbUrbmStammdaten")
@Remote(SbUrbmStammdatenRemote.class)
public class SbUrbmStammdaten implements SbUrbmStammdatenRemote {
 
    public static final String RemoteJNDIName =  SbUrbmStammdaten.class.getSimpleName() + "/remote";
    
   @PersistenceContext(unitName="persunit")
    private EntityManager entityManager;
 
......


Das Starten des AS-Servers schlägt aber leider mit folgender Exception fehl:

Code:
Caused by: java.lang.IllegalArgumentException: Can't find a persistence unit named 'persunit' in AbstractVFSDeploymentContext@3346896


Hab ihr eine Idee was da falsch läuft
 
Hi,
schau doch mal ein Dein Deploymentfile, ob da überhaupt die Persistence-xml mitgeliefert wird.

Des Weiteren solltest Du sicherstellen, daß Dein DB-Connector im Deploymentverzeichnis liegt.

Sollte das soweit stimmen, geh mal in die JMX-Console und stell den Logger für org auf DEBUG. Danach machst Du einen Redeploy. Damit lässt sich so ein Fehler i.d.R. gut finden.

Grüße
gore
 

Neue Beiträge

Zurück