2016-07-18 1 views
2

Я новичок в Jboss, и я не понимаю, где я должен определить данные соединения с базой данных, как URL, имя пользователя, пароль и т.д ..JBoss 7 & EJB3 | Где я должен определить источник данных

Вот мой многомодульная проект:

app-root 
    app-api 
     - src 
     - pom.xml 

    app-ear 
     - src 
     - pom.xml 

    app-ejb 
     - src 
     - pom.xml 

    pom.xml 

Мои persinstence.xml расположены унтер app-root/app-ejb/src/main/config/default/META-INF/persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.0" 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"> 

    <persistence-unit name="ejb3_jpa_myapp_pu" transaction-type="JTA"> 
     <description>Jboss Test application</description> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>java:jdbc/MyApp</jta-data-source> 

     <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" /> 
      <property name="hibernate.hbm2ddl.auto" value="none" /> 
      <property name="hibernate.show_sql" value="true" /> 
     </properties> 
    </persistence-unit> 

</persistence> 

И Finaly мой простой службы:

@Stateless 
@Remote(IService.class) 
public class ServiceImpl implements IService{ 

    @PersistenceContext(unitName = "ejb3_jpa_myapp_pu") 
    private EntityManager em; 

    @Override 
    public void doSomeJob() { 
     // [...] 
    } 
} 

Я знаю, что мне нужно определить свойства подключения к базе данных, но где я могу это сделать?

ответ

0

Вам необходимо определить источник данных в отдельном файле XML, который использует ваш экземпляр JBoss. JBoss не поставляется с драйверами баз данных таким образом, есть два шага:

1) Создать модуль JBoss для драйверов баз данных (например, MySQL, Oracle, Postgres и т.д.)

2) Создать определение источника данных

Шаг 1) нужно выполнить только один раз, то есть многие источники данных MySQL могут использовать один и тот же модуль MySQL JBoss.

Шаг 2) Конфигурация источника данных пример для MySQL будет:

<datasources> 
    <datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS"> 
     <connection-url>jdbc:mysql://localhost:3306/EJB3</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>test</user-name> 
     <password>test</password> 
     </security> 
     <statement> 
     <prepared-statement-cache-size>32</prepared-statement-cache-size> 
     <share-prepared-statements/> 
     </statement> 
    </datasource> 
    <drivers> 
     <driver name="com.mysql" module="com.mysql"> 
     <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> 
     </driver> 
    </drivers> 
</datasources> 

выше можно автоматизировать с помощью JBoss CLI. Также создание модулей JBoss также может быть автоматизировано, например, с помощью модуля smartics-jboss-modules-maven-plugin см. Generate an xml file with all dependencies with maven для получения дополнительной информации.

 Смежные вопросы

  • Нет связанных вопросов^_^