我必须在Weblogic 12c Server (12.2.1)上同时使用weblogic.xml的prefer-web-inf-classes和prefer-application-packages属性(奇怪的是...)。这是基于Jersey 1.9 (Jersey 1.x JAX-RS RI)和Guice的REST应用程序。
1.为什么要使用prefer-web-inf-classes
如果您有多个WAR文件,您必须将guice-jersey/guice库放置在war/lib级别,否则会出现Multibindings错误。还必须将prefer-web-inf-classes设置为true。只有这样才能正常工作!
我尝试过使用prefer-application-packages与包(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上完美运行。我分别测试了两个war,都可以正常工作...但是,请记住,我的朋友,我有两个war...
总结:我不能同时使用这两个属性(weblogic.xml)(部署时会出错),但需要:
1.为了解决Guice Filter问题,需要将prefer-web-inf-classes设置为true,以便在war-lib级别使用guice-servlet.jar/jersey-guice.jar。
2.为了使用Jersey 1.x,需要使用prefer-application-package。
问题:如何将它们结合起来使用其中之一?
1.为什么要使用prefer-web-inf-classes
如果您有多个WAR文件,您必须将guice-jersey/guice库放置在war/lib级别,否则会出现Multibindings错误。还必须将prefer-web-inf-classes设置为true。只有这样才能正常工作!
我尝试过使用prefer-application-packages与包(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上完美运行。我分别测试了两个war,都可以正常工作...但是,请记住,我的朋友,我有两个war...
总结:我不能同时使用这两个属性(weblogic.xml)(部署时会出错),但需要:
1.为了解决Guice Filter问题,需要将prefer-web-inf-classes设置为true,以便在war-lib级别使用guice-servlet.jar/jersey-guice.jar。
2.为了使用Jersey 1.x,需要使用prefer-application-package。
问题:如何将它们结合起来使用其中之一?