【问题标题】:Weblogic - Says it requires Java 1.5 or higher, despite using 1.8Weblogic - 说它需要 Java 1.5 或更高版本,尽管使用的是 1.8
【发布时间】:2017-08-16 22:22:08
【问题描述】:

我有一个在 Tomcat 中运行良好的程序。但是,我们希望将其转换为 Weblogic。然而,当我尝试部署它时,我收到以下错误消息:

java.lang.IllegalStateException: AnnotationTransactionAttributeSource 仅适用于 Java 1.5 及更高版本

问题是,我运行的是 Java 1.8。我读到类似的问题可能是由 Spring 2.5 引起的(它显然无法识别高于 1.7 的任何内容),但我使用的是 3.2.13,为了安全起见,我尝试降级到 Java 1.7,但我得到了相同的结果错误信息

编辑:我正在运行 WebLogic Server 10.3.6

有没有其他人遇到过这种情况?

【问题讨论】:

  • 检查你的服务器配置,你安装了java 8并不意味着你的服务器会使用它
  • 服务器的“监控 -> 常规”选项卡确认 JVM 正在使用 Java 版本 1.8.0_141。供应商是甲骨文公司。
  • 您是否尝试检查您的project's java version
  • 我做到了。我什至通过 Tomcat 运行它,这样我就可以让程序打印出它在运行时使用的版本。它确认它正在运行 1.8.0_141

标签: java spring weblogic


【解决方案1】:

您不编写您使用的 weblogic 版本。

注意Weblogic 12.1.3+ does not support Spring 3.2.x

WebLogic Server 中的 WebLogic Server/Spring 集成功能 12.1.3 支持 Spring Framework 版本 3.0.x、3.1.x 和 4.0.x。 (注意不支持 Spring Framework 3.2.x 版本。)

所以请确保您不使用 Weblogic 提供的 Spring 实现。 你必须在你的部署中override the Weblogic libraries,因为提供的库通常是首选的并且在类路径中排在第一位。

有关 Spring 支持的更多详细信息,请参阅 Weblogic documentation

【讨论】:

  • 我正在运行 WebLogic Server 10.3.6。看起来这可能会在 3.0.5 时中断,所以我将回到那个位置看看是否有帮助。
  • 我假设您的依赖关系不正常。我会检查堆栈跟踪哪个类触发了异常以及该类位于哪个包中,然后检查该 jar 是否具有正确的版本。如果您不在部署描述符中覆盖该行为,Weblogic 先加载自己的库,然后再加载提供的库。
  • 我认为你是对的,Weblogic 正在运行自己的 Spring 2.5。我一直在寻找关于告诉我的程序使用自己的 Spring 版本的提示,但是当我修改 weblogic.xml 函数时,我最终得到了 NullPointerException。
  • 根据 WLS 配置和部署风格,想要使用自己的 spring 库时,有几种方法和陷阱。见stackoverflow.com/a/33741222/1838233。也许它有帮助。也许您错过了 weblogic.xml 中的依赖项?关于您的 NPE:检查日志文件发生了什么或使用远程调试。也许在部署过程中无法解析 Bean。例如。如果您尝试从部署期间不存在的 ApplicationContext 解析 bean。 (例如,WLS 尝试预初始化 Servlet)。首先部署一个示例应用程序可能是个好主意
猜你喜欢
  • 2016-12-31
  • 2021-10-02
  • 2021-10-03
  • 2023-03-25
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多