seamSpace是Seam自带的一个演示Seam的安全模块的一个demo,里面用到了好多安全相关的操作,由于项目框架选择的原因,想把Seam和Geronimo、OpenJpa集成起来。下面就来看看集成他们的具体步骤。
1.JBoss到Geronimo的移植。
①JNDI的变更:使用JBoss服务器时,有很多默认的配置,但Geronimo和JBoss的默认的JNDI配置是不一样的,工程中的EJB BEAN、数据源以及Seam本身的一些组件,都需要显式定义它们的JNDI。
②去除JBoss的一些专用配置,并添加Geronimo的一些专用配置
③数据源定义配置移到persistent.xml文件中
2.Hibernate到OpenJpa
①修改persistent.xml中的persistent provider为OpenJpa
②在component.xml中添加org.jboss.seam.persistence.persistenceProvider的定义,默认是Hibernate,需要新建一个OpenJpaPersistenceProvider,如下
public class OpenJpaPersistenceProvider extends PersistenceProvider {
Log log = Logging.getLog(OpenJpaPersistenceProvider.class);
@Override
public void setFlushModeManual(EntityManager entityManager) {
// see also https://jira.jboss.org/jira/browse/JBSEAM-3030
log.warn("setFlushModeManual is not supported by OpenJPA");
}
}
3.seamSpace的移植
①修改seam使用的JNDI
<core:init debug="true" jndi-pattern="java:comp/env/#{ejbName}Local"/>
②规范化seam安全框架里的JPQL语句,以及seamSpace里的JPQL语句
③修改所有的使用:member作为命名参数的地方,把member改为其他字符,member是Openjpa的一个关键字。
④对通过entityManager查询List结果需进行操作的,需把list拷贝一个出来再做操作,OpenJpa不让对他查询出的结果进行类似remove、sort的操作,不过这样可能导致list下的某些对象不能加载
public List<String> listRoles()
{
return new
java.util.LinkedList( lookupEntityManager().createQuery(
"select r." + roleNameProperty.getName() + " from " + roleClass.getName() + " r").getResultList());
}
⑤ drl里相关的实体对象的加载方式修改为fetch = FetchType.EAGER
4.总结
总体上移植的还比较顺利,可能SEAM与Hibernate耦合的比较深,Seam需要它的一些jar包,另外就是OpenJpa现在还很不成熟,好多地方会莫名的出点错,版本间的差别也比较大。这个还需大家多多测测。
分享到:
相关推荐
"Jboss4.2.2+Spring2.5.6+Hibernate+JTA事务的实现"就是一个典型的例子,它涉及到四个关键的技术栈,即JBoss Application Server 4.2.2、Spring 2.5.6、Hibernate ORM以及Java Transaction API(JTA)。这些技术的...
Jboss7上+maven搭建struts2+spring3+hibernate3完整能运行工程源码,在tomcat7上运行也成功测试了,注意:我工程文件是用myeclipse2013开发的,你需要导入自己ide的时候,会有兼容性问题:最好阁下是自己新建一个maven...
总的来说,“EJB3+JBOSS5+JPA整合”是一个集成了企业级服务、持久化管理和应用服务器的复杂体系,它为企业级Java应用提供了强大的后端支持。开发者需要深入理解EJB3的编程模型、JPA的持久化机制以及JBOSS5的配置和...
Jboss 7 + EJB 3.0 + Eclipse环境配置
经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发.part2
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part3
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
总结来说,jbpm4整合struts2+spring2.5+hibernate3.3是一项复杂的工作,涉及到多个层次的配置和集成。正确理解和配置每个框架的角色,以及它们之间的交互,是实现高效流程管理的关键。这需要开发者具备扎实的Java...
Java开发框架中的Spring+Hibernate+Struts组合,被誉为Java开发的主流体系,具有显著的优势地位。这个框架组合的稳固性体现在其广泛的应用和社区支持,尤其是在企业级JavaEE应用中。Spring作为一款全面的轻量级应用...
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part2
spring 3.2.0+hibernate 4.1.6+struts2整合需要的jar包 的目录 antlr-2.7.7.jar aopalliance-1.0.jar asm-3.3.jar asm-commons-3.3.jar aspectjweaver-1.5.3.jar bonecp-0.7.1.RELEASE.jar cglib-2.1.3.jar ...
**Hibernate**是一个开放源代码的对象关系映射(Object-Relational Mapping, ORM)框架,用于将对象模型映射到基于SQL的关系型数据库上。Hibernate4提供了更强大的查询语言、改进的缓存机制以及更好的性能优化选项。...
【标题】"jbossas7_seamremoting_jpa_小例子" 涉及的知识点主要集中在Java企业级开发的几个核心组件上,包括JBoss Application Server 7(JBoss AS7)、Seam Remoting以及Java Persistence API(JPA)和Hibernate。...
- 负载均衡:通过worker控制器(如controller)分配请求到不同的Jboss实例,可以调整`lbfactor`来控制负载分配的权重。 - 异常处理:确保监控Jboss的日志,以便在出现问题时进行故障排查。 - 高可用性:确保每个...
1. 下载与解压:从官方网站获取JBoss AS7的zip包,解压到指定目录。 2. 配置环境变量:设置JAVA_HOME和JBOSS_HOME,确保系统能够找到JBoss AS7的运行环境。 3. 启动与停止:通过bin目录下的standalone.bat或...
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part1
- **部署过程**:详细描述如何将开发完成的应用程序部署到JBoss AS 7上,并提供自动化部署方案。 - **监控与调试**:教授如何使用JBoss AS 7自带的工具进行监控和调试,以确保应用运行正常。 - **性能调优**:...
完成后,右键点击项目,选择"Run As" -> "Run on Server",选择JBoss服务器,Eclipse会将应用部署到JBoss上。 九、调试与优化 Eclipse提供了强大的调试工具,包括断点、单步执行、变量查看等。你可以通过"Run"菜单...
《经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发》介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message Driven Bean的...
【myeclipse+jboss5+shh 搭建框架】是关于集成开发环境Myeclipse、应用服务器JBoss和SSH(Struts1.2、Spring2、Hibernate3.1)三大框架组合使用的教程。以下是详细步骤: 1. **创建Web项目**: 首先,使用...