Weblogic 12c:Jersey 的 Prefer-web-inf-类 和 prefer-application-packages
Weblogic 12c : Prefer-web-inf-classes and prefer-application-packages for Jersey
我必须在 [=53= 上使用 weblogic.xml 的 prefer-web-inf-classes
和 prefer-application-packages
属性]Weblogic 12c 服务器 (12.2.1)
它是基于Jersey 1.9的REST应用。 ( Jersey 1.x JAX-RS RI) 和 Guice.
1.为什么使用 :prefer-web-inf-类
如果你有多个 WAR,你必须将 guice-jersey / guice 的库放在 war/lib 层,否则你会得到一个 Multibindings Error.
还必须注明prefer-web-inf-classes
到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 的其他方式,以及不同版本的杰克逊图书馆等 )
它在 Jersey 1.X 上完美运行,如果它是 indicated this way.。我已经分别探测了两个 war,并且工作正常......但是,记住我的朋友我有两个 war..所以......
总结
我不能同时使用这两个属性(在 weblogic.xml.. 上使用这两个属性时出现部署错误),但它是必需的:
- 关于Guice Filter的问题,需要把
prefer-web-inf-classes
放到true
才能在war使用guice-servlet.jar
/ jersey-guice.jar
-lib 级别.
- 要使用 Jersey 1.x,需要使用 .....
prefer-application-package
问题:如何将两者结合使用其中之一??
你好,世界!
您好,有两种方法可以解决这个问题。
您可以将两个文件合并为一个文件,根据需要选择标签调用。
您只需编写标签即可合并或导入/包含您的 xml 文件。示例显示。
提示:做google如何根据条件合并和调用xml文件。
毕竟
- 仅使用
prefer-web-inf-classes
到 true
。
如果你使用这个,你不需要使用 prefer-application-packages
....但确保你在 war 有正确的库/耳朵水平。
问题是:
该项目与 Jersey 2 有依赖关系(基于 Swagger 对 Jersey 2.X ...)因此通过 Swagger 依赖关系(swagger-jersey2-jaxrs
),Jersey 2 库被打包在ear/war... 所以 prefer-web-inf-classes
没有效果!
去掉依赖后全部解决!
在同一级别(classpath 或 ear lib,或 war lib)不应存在同一库的不同版本。
我必须在 [=53= 上使用 weblogic.xml 的 prefer-web-inf-classes
和 prefer-application-packages
属性]Weblogic 12c 服务器 (12.2.1)
它是基于Jersey 1.9的REST应用。 ( Jersey 1.x JAX-RS RI) 和 Guice.
1.为什么使用 :prefer-web-inf-类
如果你有多个 WAR,你必须将 guice-jersey / guice 的库放在 war/lib 层,否则你会得到一个 Multibindings Error.
还必须注明prefer-web-inf-classes
到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 的其他方式,以及不同版本的杰克逊图书馆等 )
它在 Jersey 1.X 上完美运行,如果它是 indicated this way.。我已经分别探测了两个 war,并且工作正常......但是,记住我的朋友我有两个 war..所以......
总结
我不能同时使用这两个属性(在 weblogic.xml.. 上使用这两个属性时出现部署错误),但它是必需的:
- 关于Guice Filter的问题,需要把
prefer-web-inf-classes
放到true
才能在war使用guice-servlet.jar
/jersey-guice.jar
-lib 级别. - 要使用 Jersey 1.x,需要使用 .....
prefer-application-package
问题:如何将两者结合使用其中之一??
你好,世界! 您好,有两种方法可以解决这个问题。
您可以将两个文件合并为一个文件,根据需要选择标签调用。
您只需编写标签即可合并或导入/包含您的 xml 文件。示例显示。 提示:做google如何根据条件合并和调用xml文件。
毕竟
- 仅使用
prefer-web-inf-classes
到true
。 如果你使用这个,你不需要使用
prefer-application-packages
....但确保你在 war 有正确的库/耳朵水平。问题是:
该项目与 Jersey 2 有依赖关系(基于 Swagger 对 Jersey 2.X ...)因此通过 Swagger 依赖关系(swagger-jersey2-jaxrs
),Jersey 2 库被打包在ear/war... 所以 prefer-web-inf-classes
没有效果!
去掉依赖后全部解决!
在同一级别(classpath 或 ear lib,或 war lib)不应存在同一库的不同版本。