4

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

4

1 回答 1

5

获取weblogic.xmlWebLogic 动态生成的并修改它以添加:

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

现在确保在您的 war 文件中有这个 weblogic.xml 并重新部署应用程序。

将 prefer-web-inf-classes 设置为 true将优先考虑应用程序的 WEB-INF 目录中存在的类。

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

于 2012-11-14T08:48:45.170 回答