2016-07-18 37 views
2

我是新来的JBoss和我不明白的地方我应该这样定义网址,用户名,密码等数据库连接的数据..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

您需要在JBoss实例正在使用的独立XML文件中定义数据源。 JBoss的不与数据库驱动程序附带所以有两个步骤:

1)创建数据库驱动程序(如MySQL和甲骨文,Postgres的等),JBoss的模块

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了解更多信息。

相关问题