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
四、为此项目加入必要的依赖包 。。。。。。