【问题标题】:Deployed EAR can't resolve class已部署的 EAR 无法解析类
【发布时间】:2015-01-21 23:11:46
【问题描述】:

我在我们的开发服务器 (WebLogic 10.3.3) 上部署了一个运行良好的 EAR。然而,当我使用相同的 EAR 并将其部署到在我的桌面上运行的 WebLogic 10.3.6 服务器上时,部署成功,但在加载 JSP 时出现错误:

weblogic.servlet.jsp.CompilationException: Failed to compile JSP /webclient/login/login.jsp
login.jsp:11:92: The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

我假设 EAR 在我的桌面上没有的演示上运行时引用了 EAR 之外的一些类。

据我所知,在两台机器上,系统类路径只是当前目录。 EAR 目录/meta-inf 中的 manifest.mf 文件是空的,我没有在其他地方看到指向 EAR 之外的 manifest.mf 文件。

我应该查看哪些设置或文件来解决此问题?

谢谢

【问题讨论】:

    标签: java jsp weblogic classpath ear


    【解决方案1】:

    尝试检查用于运行 WebLogic 10.3.6 (jdk7) 的 jdk 版本,我认为它与另一个版本一起运行

    【讨论】:

    • 您能帮我更好地理解这一点吗?我看到了stackoverflow.com/questions/19243458/… 和 bugzilla.redhat.com/show_bug.cgi?id=1080026,其中应用服务器使用了旧的 JSP 编译器,它引用了一个用 JDK 8 构建的 HashMap 对象。我的桌面上确实有 JDK 8 ,但就我而言,我没有重建任何类。谢谢。
    • jsp 页面将使用 weblogic jdk 编译,因此当您安装 weblogic (10.3.6) 时,它会询问您需要嵌入式版本(安装文件夹中包含的 jdk7)或系统的哪个 jdk 版本版本 (jdk 8) 如果您选择了系统版本,则会出现此问题。因此您可以从 bin 目录中的 setdomainenv.cmd 检查 weblogic 的 jdk 版本,以了解选择了哪个版本。
    • 在通过命令提示符启动 startWebLogic 之前检查 JAVA_HOME 的设置。 echo %JAVA_HOME%
    猜你喜欢
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 2013-01-20
    • 2018-07-26
    • 2016-12-04
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    相关资源
    最近更新 更多