【发布时间】:2013-09-06 18:22:48
【问题描述】:
我有一个使用 openjpa 2.1.1 作为其持久性框架的 spring mvc 应用程序。它是作为 STS 中的 Maven 项目开发的,并在 vFaric TC Server (Tomcat 7) 上本地运行。
当我们第一次将战争部署到 Websphere 8.5 时,我们遇到了类加载器与我们战争文件中的以下 3 个 openjpa jar 的冲突:
geronimo-jpa_2.0_spec-1.1.jar geronimo-jta_1.1_spec-1.1.1.jar 验证-api-1.0.0.GA.jar
从战争中删除这些并推迟到 Websphere 捆绑的 openjpa 工作正常,所以我将 openjpa POM 依赖范围从“编译”更改为“提供”(这样这些 jar 就不会被打包到战争文件中)。
由于 Tomcat 7 不兼容 Java EE,我将 3 个 jars 放在 Tomcat\lib 中(还尝试了 vfabric-tc-server lib - 它包装了 tomcat),但应用程序在启动时看不到 JPA 类( noclassdeffound 控制台中的异常)。
我还尝试从 STS 中的“启动配置”将 jars 添加到服务器类路径 - 那里也没有运气。
是否需要在 Tomcat 中的某个位置设置类加载器顺序,以便 JPA 在应用程序之前加载?
我需要的是一个可以在部署到 Tomcat 或 Websphere 时工作的构建。
任何帮助将不胜感激。
【问题讨论】:
标签: maven tomcat7 openjpa websphere-8