Geronimo服务器下部署Seam程序

Geronimo为Apache推出的应用服务器,默认支持的JPA Provider为Apache OpenJpa,本文讨论如何将jboss seam(hiberante jpa)程序移植到Geronimo上运行。

 

Running JBoss Seam 2.0.0.GA on Geronimo 2.1

http://cwiki.apache.org/GMOxSAMPLES/running-jboss-seam-200ga-on-geronimo-21.html

上述链接文章为Geronimo官方提供的例子,基于seam 2.0.0GA和geronimo2.1。

 

对如何集成,文中主要介绍了两点:

1.hibernate默认不识别geronimo的事物管理。

  》如何让hibernate与geronimo的事物建立起联系,提供给hibernate一个方法让其能够访问geronimo的事物管理,这样两者及集成好了。

  》》解决该问题新建的程序:见附件:geronimo-hibernate-transaction-manager-lookup-1.0-SNAPSHOT.zip

2.发布时会遇到NPE的问题,跟踪问题源头,是org.hibernate.ejb.Ejb3Configuration引起的。

 》改造org.hibernate.ejb.Ejb3Configuration 方法避免此问题出现。

 》》hibernate-entitymanager.jar中org.hibernate.ejb.Ejb3Configuration中info.getJarFileUrls()循环前判断info.getJarFileUrls()是否为null。

文中未对例子程序作说明,其实例子程序也是有变化的,本文追加作为第3点。

3.开发程序的变化。

开发的程序本身不能依赖于jboss服务器,选择seam自带的examples/jee5/seam-booking,该例子程序特殊性在于不依赖于具体的应用服务器,变化主要是ejb的注册引用采用通用的enc方式,而不是jboss的默认java:,程序上表现为component.xml和web.xml的变化。详细参考该seam例子程序。注:该程序也可在glassfish下直接发布。

 

创建部署计划后,即可在geronimo上部署该程序的ear。

你可能感兴趣的:(应用服务器,Hibernate,jboss,jpa,seam)