2016-07-18 9 views
2

を定義する必要があります。JBoss 7およびEJB3 |どこで私はここで <p></p>は私のマルチモジュールプロジェクトです..私は、JBossへの新たなんだと私は<em>URL、ユーザ名、パスワード</em>などのように、データベース接続情報を定義する必要がどこ私は理解していないデータソース

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私のシンプルなサービスをウンター位置

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

    app-ear 
     - src 
     - pom.xml 

    app-ejb 
     - src 
     - pom.xml 

    pom.xml 

マイpersinstence.xml:

@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やOracleの、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を参照してください。

関連する問題

 関連する問題