2015-09-09 2 views
0

Я развернул свое приложение в JBoss 7.1, а соединение с базой данных выполняется в формате JPA persistence.xml. Вот конфигурацияJPA: приложение должно поставлять соединения JDBC

<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" /> 
      <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" /> 
      <property name="hibernate.connection.username" value="postgres" /> 
      <property name="hibernate.connection.password" value="Prashant11" /> 
      <property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/> 
      <property name="hibernate.connection.URL" value="false"/> 
      <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost/"/> 

Начало Вызванный: EJB Призвание потерпел неудачу на компоненте ProfileSession для метода общественного абстрактного java.util.List sp.ProfileSessionRemote.getTopProfile (ИНТ []): javax.ejb.EJBException: java.lang. UnsupportedOperationException: приложение должно предоставить JDBC МАГИСТРАЛИ

+0

Errm, я бы предположил, что «hibernate.connection.URL» должен быть URL-адресом! Кроме того, вы указываете URL-адрес как «javax.persistence.jdbc.url», но затем пропустите все другие свойства STANDARD javax.persistence.jdbc. Предложите вам ознакомиться с базовым руководством по JPA –

ответ

0

Если вы пытаетесь подключиться с помощью автономного подключения т.е.

<persistence-unit name="justshop-pu" transaction-type="RESOURCE_LOCAL">. 

Это может быть из-за:

<property name="hibernate.connection.URL" value="false"/> 

использование

<property name="hibernate.connection.url" value="false"/> 

вместо этого. деликатный случай.

Или

Настройка источника данных:

, если вы используете JTA как тип транзакции в блок сохранения и поскольку вы пытаетесь подключиться с EJB, который conatiner управляемого контекста и, следовательно, он будет по умолчанию JTA сделка. Вам нужно будет настроить подключение к источнику данных.

Эти шаги для того же используются для MySQL конфигурации источника данных в JBoss 7.1:

<datasource jndi-name="java:jboss/datasources/ExpenseDS" pool-name="ExpenseDS" enabled="true" use-java-context="true"> 
        <connection-url>jdbc:mysql://localhost/expense</connection-url> 
        <driver>com.mysql</driver> 
        <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> 
        <pool> 
         <min-pool-size>10</min-pool-size> 
         <max-pool-size>100</max-pool-size> 
         <prefill>true</prefill> 
        </pool> 
        <security> 
         <user-name>username</user-name> 
         <password>pwd</password> 
        </security> 
        <statement> 
         <prepared-statement-cache-size>32</prepared-statement-cache-size> 
         <share-prepared-statements>true</share-prepared-statements> 
        </statement> 
       </datasource> 
  • также добавить запись драйвера в standalone.xml, как показано ниже:
<driver name="com.mysql" module="com.mysql"> 
<driver-class>com.mysql.jdbc.Driver</driver-class> 
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> 
</driver> 
  • Cre съел файл module.xml, как показано ниже
<?xml version="1.0" encoding="UTF-8"?> 

<!-- 
    ~ JBoss, Home of Professional Open Source. 
    ~ Copyright 2010, Red Hat, Inc., and individual contributors 
    ~ as indicated by the @author tags. See the copyright.txt file in the 
    ~ distribution for a full listing of individual contributors. 
    ~ 
    ~ This is free software; you can redistribute it and/or modify it 
    ~ under the terms of the GNU Lesser General Public License as 
    ~ published by the Free Software Foundation; either version 2.1 of 
    ~ the License, or (at your option) any later version. 
    ~ 
    ~ This software is distributed in the hope that it will be useful, 
    ~ but WITHOUT ANY WARRANTY; without even the implied warranty of 
    ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 
    ~ Lesser General Public License for more details. 
    ~ 
    ~ You should have received a copy of the GNU Lesser General Public 
    ~ License along with this software; if not, write to the Free 
    ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
    ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org. 
    --> 

<module xmlns="urn:jboss:module:1.1" name="com.mysql"> 

    <resources> 
     <resource-root path="mysql-connector-java-5.1.31.jar"/> 
     <!-- Insert resources here --> 
    </resources> 
    <dependencies> 
     <module name="javax.api"/> 
    </dependencies> 
</module> 
  • Место, что вместе с банкой драйвера MySQL в качестве модуля в JBoss. Создайте папку модуля в модулях в jboss: - Для примера: для mysql, поскольку мы предоставили модуль как com.mysql, мы создадим папки com/mysql и другую основную папку и поместим класс драйвера и module.xml в команду «com/mysql/main "(см. конфигурацию h2database, если вы запутались)
-1

какая версия Hibernate вы используете? Похоже, вы смешиваете Hibernate 3.x и 4.x синтаксис в файле hibernate.cfg.xml.

Hibernate 3.x

<properties> 
     <property name="hibernate.connection.driver_class" value="...."/> 
     <property name="hibernate.connection.url" value="...."/> 
     <property name="hibernate.connection.username" value="...."/> 
     <property name="hibernate.connection.password" value="...."/> </properties> 

Спящий 4.x

<properties> 
     <property name="javax.persistence.jdbc.driver" value="...."/> 
     <property name="javax.persistence.jdbc.url" value="...."/> 
     <property name="javax.persistence.jdbc.user" value="...."/> 
     <property name="javax.persistence.jdbc.password" value="...."/> 
</properties> 
Смежные вопросы