JBoss Tools 生成的 Seam 項目(新建項目時,服務器選擇 tomcat),會生成一些必要的文件,如:連接數據庫的數據源文件,如:project-ds.xml (但它只能在 Jboss as 的環境中運行,不適用于 tomcat),要想很我們的項目(war)運行于 tomcat 中的,我們得對它自動生成的文件做一些必要的修改。
一、修改數據庫的連接方式
1、采用數據源的形式
在 tomcat 中配置數據源方式如下:
在生成的項目同級目錄中找此文件: context.xml
Servers/Tomcat 。。。/context.xml 作如下配置:
在標簽 <Context> 中間加入:
<Resource
name="jdbc/demo" auth="Container" type="javax.sql.DataSource"
maxActive="30" maxIdle="5" maxWait="10000" username="root"
password="admin" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8">
</Resource>
2、使用非數據源的形式
在文件:persistence.xml 中添加hibernate 的連接數據庫的方式,如下:
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="admin"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8"/>
二、修改 JPA 配置文件 persistence.xml
1、如果數據的連接方式采用數據源的形式,則只需修改里面數據源的名稱,如:
<jta-data-source>java:comp/env/jdbc/demo</jta-data-source>
2、如果采用hibernate 的連接方式,則把此行刪了。
3、刪除里面的此行配置:
<property name="hibernate.transaction.manager_lookup_class"
value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
4、修改事務的策略方式為 RESOURCE_LOCAL :
<persistence-unit name="demo" transaction-type="RESOURCE_LOCAL">
三、配置 Seam 的事務管理器
在 component.xml 文件加入:
<transaction:entity-transaction entity-manager="#{entityManager}"/>
默認生成的此文件是不含有 transaction 的命名空間,需要手動在此文件加入它的命名空間:
xmlns:transaction=http://jboss.com/products/seam/transaction
http://jboss.com/products/seam/transaction
http://jboss.com/products/seam/transaction-2.1.xsd
四、為此項目加入必要的依賴包 。。。。。。