我有一个使用 openjpa 2.1.1 作为其持久性框架的 spring mvc 应用程序。它是作为 STS 中的 Maven 项目开发的,并在 vFaric TC Server (Tomcat 7) 上本地运行。
当我们第一次将war部署到Websphere 8.5时,我们遇到了与war文件中的以下3个openjpa jars的类加载器冲突:
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 中的“启动配置”将 jar 添加到服务器类路径 - 那里也没有运气。
是否需要在 Tomcat 中的某处设置类加载器顺序,以便 JPA 在应用程序之前加载?
我需要的是一个可以在部署到 Tomcat 或 Websphere 时工作的构建。
任何帮助都感激不尽。