【问题标题】:class cast exception in weblogicweblogic中的类转换异常
【发布时间】:2012-11-14 08:21:42
【问题描述】:

我有一个使用 jersey jars 的 web 应用程序(WAR 文件)。现在,当我尝试部署它时,我得到类转换异常(一些 bootstrap servlet 使用 jersey)。在分析中我发现 weblogic 本身有 jersey jars在 common\modules.. 和我的 web 应用程序有不同版本的 jersey jars。现在,如果我删除 common/modules jersey jar,那么我的 web 应用程序就被部署了。我想知道如何让我的 web 应用程序使用它自己的 jersey jar 版本,以便在不删除 common/module jars 的情况下部署它。 PS 我的 .war 文件没有 weblogic.xml 并且 weblogic 正在动态生成它。

【问题讨论】:

    标签: java exception casting jersey weblogic


    【解决方案1】:

    获取WebLogic动态生成的weblogic.xml并修改添加:

    <container-descriptor>
       <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
    

    现在确保在您的 war 文件中包含此 weblogic.xml 并重新部署应用程序。

    将 prefer-web-inf-classes 设置为 true will give preference 以应用程序的 WEB-INF 目录中存在的类。

    prefer-web-inf-classes 可能不会一直有效。如果您使用的是 10.3.4+ 的 WebLogic 版本,则使用删除 prefer-web-inf-classes 设置并改用 prefer-application-packages。还可以观看this 视频,了解 WebLogic 中的类加载是如何工作的。

    【讨论】:

    • 它已经有 weblogic.xml 并且已经有上面的代码了..但它仍然无法正常工作..
    • 战争文件中的泽西罐子在哪里?它们在WEB-INF目录下吗?
    • 是的,它在 web inf 中,不同版本的球衣出现在 weblogic 的模块目录中
    • 您使用的是哪个版本的 weblogic?如果您使用的是 10.3.4+,则删除 prefer-web-inf 元素并添加 prefer-application-packages 还可以查看 this 视频,该视频提供了有关如何完成类加载的详细信息。我猜您在更改 weblogic.xml 后重新部署了应用程序?
    • 感谢您的帮助..我正在使用 12c .. 正在工作..为什么 不工作..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多