我是Jboss的新手,我不明白我应该在哪里定义数据库连接数据,如 url,username,password 等。
这是我的多模块项目:
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>
最后我简单的服务:
@Stateless
@Remote(IService.class)
public class ServiceImpl implements IService{
@PersistenceContext(unitName = "ejb3_jpa_myapp_pu")
private EntityManager em;
@Override
public void doSomeJob() {
// [...]
}
}
我知道我必须定义数据库连接属性,但在哪里可以这样做?
答案 0 :(得分: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以获取更多信息。