我必须使用 weblogic.xml< 的="">
它是基于 Jersey 1.9 的 REST 应用程序。 (Jersey 1.x JAX-RS RI)和 Guice。 <强>1。为什么使用 :prefer-web-inf-classes
如果你有多个 WAR,你必须在 war/lib 级别放置 guice-jersey/guice 的库,否则你会得到一个 Multibindings Error . 还必须将 这样就可以正常工作了! 我尝试以同样的方式使用 注意:无法在 EAR 级别排除此库。 <强>2。为什么使用 :prefer-application-packages
要在 Weblogic 12c (12.2.1) 上使用 Jersey 1.x JAX-RS RI,所以我必须指出以下包(Weblogic 使用 Jersey 2 的其他方式,以及不同版本的 Jackson 库等。 ) 如果它是 indicated this way.,它在 Jersey 1.X 上完美运行.我已经分别探测了两场 war ,并且工作正常......但是,记住我的 friend 我有两场 war ......所以...... 总结 我不能同时使用这两个属性(在 weblogic.xml 上使用这两个属性的部署错误..),但它是必需的: 问题:如何将两者结合使用其中之一??prefer-web-inf-classes 和 prefer-application-packages 这两个(奇怪的是..)属性/em> 在 Weblogic 12c 服务器 (12.2.1) 上prefer-web-inf-classes 指定为 true。prefer-application-package 和包 (com.sun.jersey.guice.spi.container.servlet, com.google.inject.servlet 等...)但没办法。
prefer-web-inf-classes设置为true才能使用guice-servlet.jar/jersey-guice.jar 在 war-lib 级别。prefer-application-package
最佳答案
毕竟
prefer-web-inf-classes 设为 true。如果你使用这个,你不需要使用 prefer-application-packages ....但确保你有正确的库在 war /耳朵级别.
问题是:
该项目与 Jersey 2 有依赖关系(基于 Jersey 2.X 的 Swagger ...)因此,通过 Swagger 依赖关系 (swagger-jersey2-jaxrs),Jersey 2 库被打包在 ear/war 上...所以 prefer-web-inf-classes 没有效果!
删除依赖后一切都解决了!
在同一级别(classpath 或 ear lib,或 war lib)不应存在同一库的不同版本。
关于java - 网络逻辑 12c : Prefer-web-inf-classes and prefer-application-packages for Jersey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36292980/