无法获得托管连接EJB,Hibernate,JBOSS,Postgres

时间:2016-11-04 16:44:25

标签: java postgresql hibernate jboss wildfly-10

出现此错误的原因是什么?

我的数据源包含在模块中,如果我不尝试从那里查找,它就会好坏。 这是我的错误:

    2016-11-04 15:57:55,389 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (ServerService Thread Pool -- 74) javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/datasources/PostgresDS

这是mu standalone.xml:

                    <datasource jta="true" jndi-name="java:jboss/datasources/PostgresDS" pool-name="PostgresDS" enabled="true" use-java-context="true">
                <connection-url>jdbc:postgresql://localhost:5433/cats</connection-url>
                <connection-property name="cats">
                    dictionary
                </connection-property>
                <driver>postgres</driver>
                <pool>
                    <min-pool-size>1</min-pool-size>
                    <max-pool-size>20</max-pool-size>
                </pool>
                <security>
                    <user-name>postgres</user-name>
                    <password>mei</password>
                </security>
            </datasource>
            <drivers>
                <driver name="postgres" module="org.postgres">
                    <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
                    <datasource-class>org.postgresql.Driver</datasource-class>
            </drivers>

这是我的persistence.xml:

    <?xml version="1.0" encoding="UTF-8"?>

    <persistence version="2.1"
         xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="
    http://xmlns.jcp.org/xml/ns/persistence
    http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="primary">
    <jta-data-source>java:jboss/datasources/PostgresDS</jta-data-source>
   <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
        <property name="hibernate.archive.autodetection" value="class" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
        <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5433/cats" />
        <property name="hibernate.connection.username" value="postgres" />
        <property name="hibernate.connection.password" value="postgres" />
        <!-- <property name="hibernate.show_sql" value="true"/> -->
        <property name="hibernate.flushMode" value="FLUSH_AUTO" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
    </properties>
</persistence-unit>

这是我的pom.xml:

    <?xml version="1.0" encoding="UTF-8"?>  <!-- standalone="no"?> -->

http://maven.apache.org/xsd/maven-4.0.0.xsd">     4.0.0

<groupId>catshelter</groupId>
<artifactId>catshelter-java</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <version.wildfly.maven.plugin>1.0.2.Final</version.wildfly.maven.plugin>
    <version.jboss.spec.javaee.7.0>1.0.3.Final</version.jboss.spec.javaee.7.0>
    <version.war.plugin>3.0.0</version.war.plugin>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
</properties>

<dependencyManagement>
    <dependencies>
        <!-- JBoss version
             JavaEE 7
             Any d-s from org.jboss.spec-->
        <dependency>
            <groupId>org.jboss.spec</groupId>
            <artifactId>jboss-javaee-7.0</artifactId>
            <version>${version.jboss.spec.javaee.7.0}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

    </dependencies>
</dependencyManagement>

<dependencies>
    <!-- CDI API  Context and Dependency injection-->
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Common annotation API (JRS-250)-->
    <dependency>
        <groupId>org.jboss.spec.javax.annotation</groupId>
        <artifactId>jboss-annotations-api_1.2_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- JSF API Java Server Faces-->
    <dependency>
        <groupId>org.jboss.spec.javax.faces</groupId>
        <artifactId>jboss-jsf-api_2.2_spec</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- JTA - transaction api-->
    <!-- JPA  Java Persistence api-->
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.1-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <!--JPA -->
    <dependency>
        <groupId>org.jboss.spec.javax.transaction</groupId>
        <artifactId>jboss-transaction-api_1.2_spec</artifactId>
        <scope>provided</scope>
    </dependency>
    <!--EJB API-->
    <dependency>
        <groupId>org.jboss.spec.javax.ejb</groupId>
        <artifactId>jboss-ejb-api_3.2_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.2.0.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.1.0.Final</version>
    </dependency>

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.4.1211</version>
    </dependency>
</dependencies>
<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>${version.war.plugin}</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.wildfly.plugins</groupId>
            <artifactId>wildfly-maven-plugin</artifactId>
            <version>${version.wildfly.maven.plugin}</version>
            <configuration>
                <hostname>${wildfly-hostname}</hostname>
                <port>9991</port>
                <username>${wildfly-username}</username>
                <password>${wildfly-password}</password>
            </configuration>
        </plugin>
    </plugins>
</build>

1 个答案:

答案 0 :(得分:0)

这又是一个错误的xml配置。我在persistance.xml中更改了我的Hibernate设置:

     <persistence version="2.1"  
    xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="  
 http://xmlns.jcp.org/xml/ns/persistence  
 http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">  
 <persistence-unit name="postgres">  
    <jta-data-source>java:jboss/datasources/PostgresDS</jta-data-source>  
    <!--Next (provider and dialect) are for version 9.4 and higher -->
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>  
    <properties>  
    <property name="hibernate.dialect"value="org.hibernate.dialect.PostgreSQL94Dialect" />  
   <!--  this I comment because I already have my connection registered as a module
   <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />  
   <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5433/cats" />  
   <property name="hibernate.connection.username" value="postgres" />  
   <property name="hibernate.connection.password" value="mei" />  
   Next I setup value of show_sql for false and hb2ddl.auto for "create-drop"-->  
   <property name="hibernate.show_sql" value="false"/>  
   <property name="hibernate.flushMode" value="FLUSH_AUTO" />  
   <property name="hibernate.hbm2ddl.auto" value="create-drop" />  
 </properties>