在WebSphere7中配置Seam2的配置文件

WebSphere7应用服务器,由于对EJB JNDI命名查找方法的不同,需要修改components.xml文件中的配置内容,首先需要去掉jndi-pattern属性值中的“/local”字符串,例如原的配置内容为:

< core:init jndi-pattern="java:comp/env/3mis/#{ejbName}/local " debug="true"/>

现在需要修改为:

<core:init jndi-pattern="java:comp/env/3mis/#{ejbName}" debug="true"/>

这样,才能保证Seam2WebSphere7中能够正确运行。还需要修改EJB的实体Bean管理器,修改后的内容如下:

<transaction:entity-transaction entity-manager="#{entityManager}"/>

<persistence:entity-manager-factory name="mis"/>

<persistence:managed-persistence-context name="entityManager" auto-create="true"

entity-manager-factory="#{mis}"/>

1.1 ejb-jar.xml文件的配置

如果在ejb-jar.xml配置文件中配置了ejb-ref-name属性的值,同样需样去掉属性值中的“/local”字符串,例如:

<session>

<ejb-name>RoplanmgtAction</ejb-name>

<ejb-local-ref>

<ejb-ref-name>3mis/RepOrderServiceImpl/local</ejb-ref-name>

<ejb-ref-type>Session</ejb-ref-type>

<local>com.newidea.mis.apm.service.RepOrderService</local>

</ejb-local-ref>

</session>

现在需要修改为:

<session>

<ejb-name>RoplanmgtAction</ejb-name>

<ejb-local-ref>

<ejb-ref-name>3mis/RepOrderServiceImpl</ejb-ref-name>

<ejb-ref-type>Session</ejb-ref-type>

<local>com.newidea.mis.apm.service.RepOrderService</local>

</ejb-local-ref>

</session>

这样,才能保证Seam2WebSphere7中能够正确运行。

1.2 web.xml文件的配置

WebSphere7中,需要在Web.xml配置文件中对Seam的会话Bean(包括Action)要在声明式配置,这样以便于Seam在运行期间能够找到用注解声明的EJB,这也是SeamWebSphere7中配置变化最大的一块,也是配置极为不便的配置内容,因为又配置大量的配置内容,在JBOSS中则不需要在Web.xml配置文件中配置EJB类。同样需样去掉ejb-local-refs属性值中的“/local”字符串,例如:

<ejb-local-ref>

<ejb-ref-name>3mis/RoplanmgtAction/local</ejb-ref-name>

<ejb-ref-type>Session</ejb-ref-type>

<local>com.newidea.mis.apm.action.Roplanmgt</local>

</ejb-local-ref>

现在需要修改为:

<ejb-local-ref>

<ejb-ref-name>3mis/RoplanmgtAction </ejb-ref-name>

<ejb-ref-type>Session</ejb-ref-type>

<local>com.newidea.mis.apm.action.Roplanmgt</local>

</ejb-local-ref>

这样,才能保证Seam2WebSphere7中能够正确运行。

1.3 persistence.xml文件的配置

WebSphere7中运行Seam2中的事务是能过JPA来管理,所以需要对持久化配置文件作一些修改,首在需要在persistence.xml中添加或修改如下内容:

声明事务类型为JPA


声明事务类型为JPA

<persistence-unit name="mis" transaction-type="JTA">

<provider>org.hibernate.ejb.HibernatePersistence</provider>

<!--<provider> org.apache.openjpa.persistence.PersistenceProviderImpl </provider>-->

<!--<jta-data-source>java:/misDatasource</jta-data-source>-->

<jta-data-source>misDatasource</jta-data-source>

<properties>

<property name="hibernate.cache.provider_class"

value="org.hibernate.cache.HashtableCacheProvider"/>

<property name="hibernate.transaction.flush_before_completion" value="true"/>

<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9iDialect"/>

<!-- <property name="hibernate.hbm2ddl.auto" value="update"/> -->

<property name="hibernate.show_sql" value="true"/>

<property name="hibernate.format_sql" value="false"/>

<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"/>

事件管理类

</properties>

</persistence-unit>

2. WebSphere7中运行Seam2所需的类库

需要下载最新的Seam2.2版本的才能在WebSphere7中正常运行,下面分别介绍所需要的基本类库。但这些类库在JBOSS中运行则不需要添加。 

2.1 管理JPA所需要的类库

管理JPA所需要的Hibernate类库如下:

hibernate.jar

hibernate-annotations.jar

hibernate-commons-annotations.jar

hibernate-entitymanager.jar

hibernate-validator.jar

commons-collections.jar

jboss-common-core.jar

当然,还需要其他第三方类库,所需要最基本的类库列表如下:

antlr-runtime.jar

drools-compiler.jar

drools-core.jar

jboss-el.jar

jboss-seam.jar

jboss-seam-ui.jar

jboss-seam-pdf.jar

jboss-seam-ioc.jar

jboss-seam-mail.jar

jbpm-jpdl.jar

mvel14.jar

richfaces-api.jar

richfaces-ui.jar

richfaces-impl.jar jsf-facelets.jar

jxl.jar commons-collections.jar jboss-common-core.jar slf4j-log4j12.jar slf4j-api.jar log4j.jar drools-api.jar drools-decisiontables.jar

quartz.jar jasperreports-2.0.5.jar commons-digester.jar javassist.jar dom4j.jar hibernate-core.jar hibernate-annotations.jar hibernate-commons-annotations.jar

hibernate-entitymanager.jar hibernate-validator.jar commons-beanutils.jar concurrent.jar cglib.jar asm.jar antlr.jar

最后,还需要注意就是,不能在DAO模式中直接在继承EntityHome来进行实体Bean的操作,而是需要能过Action来封装对DAO的访问。这一点与在JBOSS中不同。

3.   WebSphere7中部署Seam2应用程序

用开发工具Myeclipse打包Seam2应用程序后,现需要部署到WebSphere7中。

首先在浏览器地址栏中输入http://zhangf:9061/ibm/console,启动WebSphere7控制台,

输入管理员名和口令后, 进入控制台安装应用程序。

你可能感兴趣的:(Hibernate,jboss,配置管理,ejb,seam)