我必须在Weblogic 12c 服务器(12.2.1)上同时使用(奇怪的是..)prefer-web-inf-classes
和weblogic.xmlprefer-application-packages
的 属性
它是基于 Jersey 1.9 的 REST 应用程序。(泽西岛 1.x JAX-RS RI)和 Guice。
1. 为什么使用 :prefer-web-inf-classes
如果您有多个 WAR,则必须将 guice-jersey / guice 的库放在 war/lib 级别,否则会出现Multibindings Error。
还必须指出prefer-web-inf-classes
to true
。
这样它就可以正常工作了!
我试图以同样的方式使用prefer-application-package
s 和包(com.sun.jersey.guice.spi.container.servlet
,com.google.inject.servlet
等...),但没有办法。
注意:不能在EAR级别排除此库。
2. 为什么使用 :prefer-application-packages
要在 Weblogic 12c (12.2.1) 上使用 Jersey 1.x JAX-RS RI,所以我必须指出以下包(Weblogic 使用 Jersey 2 的其他方式,以及不同版本的 Jackson 库等)
如果以这种方式指示,它可以在 Jersey 1.X 上完美运行。. 我已经分别探测了两场战争,并且工作正常......但是,记住我的朋友我有两场战争......所以......
概括
我不能同时使用这两个属性(在 weblogic.xml 上使用这两个属性时出现部署错误..),但它是必需的:
- 对于 Guice Filter 的问题,需要
prefer-web-inf-classes
使用true
/guice-servlet.jar
在jersey-guice.jar
war -lib 级别。 - 要使用 Jersey 1.x,需要使用.....
prefer-application-package
问题:如何将两者结合使用其中之一?