Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 JSF2与EJB3和JPA-如何最好地打包_Jsf 2_Deployment_Jpa 2.0_Ejb 3.0_Packaging - Fatal编程技术网

Jsf 2 JSF2与EJB3和JPA-如何最好地打包

Jsf 2 JSF2与EJB3和JPA-如何最好地打包,jsf-2,deployment,jpa-2.0,ejb-3.0,packaging,Jsf 2,Deployment,Jpa 2.0,Ejb 3.0,Packaging,我试图通过创建一些功能来教自己一些关于EJB3和JPA的知识,这些功能使用JSF2作为前端,无状态EJB3会话bean来处理事务,JPA来持久化实体 理想情况下,我希望EJB应用程序位于远程服务器上,JSF2 war文件位于单独的服务器上并进行远程通信,从而模拟分布式项目。但我希望它们共享相同的JPA实体类(因为将它们转换为其他DTO对象只是为了前端使用似乎是毫无意义的——因此,如果JPA项目是在自己的项目中,这对我来说是有意义的) 我很难理解的是如何最好地打包和部署各种组件。 最好部署: 1)

我试图通过创建一些功能来教自己一些关于EJB3和JPA的知识,这些功能使用JSF2作为前端,无状态EJB3会话bean来处理事务,JPA来持久化实体

理想情况下,我希望EJB应用程序位于远程服务器上,JSF2 war文件位于单独的服务器上并进行远程通信,从而模拟分布式项目。但我希望它们共享相同的JPA实体类(因为将它们转换为其他DTO对象只是为了前端使用似乎是毫无意义的——因此,如果JPA项目是在自己的项目中,这对我来说是有意义的)

我很难理解的是如何最好地打包和部署各种组件。 最好部署: 1) 在服务器1上:一个EAR文件,其中包含一台服务器上的JPA jar文件和EJB模块。但是如果我这样做的话,persistence.xml文件应该位于哪里——在jpajar文件中还是在ejb模块中

及 2) 在服务器2上:一个包含JSF应用程序的war文件和此war的WEB-INF库中的JPA jar文件。在这种情况下,我假设EJB接口也需要外部化到一个jar文件中,并包含在web inf/lib中

还是我的想法完全错了


如果您能告诉我,为了实现我的目标,最佳实践应该是什么,您会很感激吗?如果我做错了,请提前道歉……这是一次学习经历

首先,JPA对象由持久性上下文管理,因此我不建议将该对象传递给web层。您可以使用JAXB对象发送到web层。JPA实体对象应该被读取并设置为JAXB对象字段,并返回相同的值

它比pojo映射框架更快更简单