我试图通过创建一些使用 JSF2 作为前端的功能、无状态 EJB3 会话 bean 来处理事务和 JPA 来持久化实体,从而自学一些关于 EJB3 和 JPA 的知识。
理想情况下,我希望 EJB 应用程序位于远程服务器上,而 JSF2 war 文件位于单独的服务器上并进行远程通信 - 从而模拟分布式项目。但我希望他们共享相同的 JPA 实体类(因为将它们转换为其他 DTO 对象只是为了前端使用似乎没有意义 - 所以如果 JPA 项目在它自己的项目中,这对我来说很有意义
我无法理解的是如何最好地打包和部署各种组件。最好部署: 1) 在服务器一上:在一台服务器上包含 JPA jar 文件和 EJB 模块的 EAR 文件。但是,如果我这样做,persistence.xml 文件应该位于哪里——在 jpa jar 文件中还是在 ejb 模块中?
2) 在服务器 2 上:一个带有 JSF 应用程序的 war 文件和这个 war 的 WEB-INF 库中的 JPA jar 文件。在这种情况下,我假设 EJB 接口也需要外部化为 jar 文件并包含在 web-inf/lib 中?
还是我的想法完全错误?
希望对最佳实践有什么想法来实现我想要做的事情?如果我做错了,请提前道歉……这是一次学习经历!