当前位置: 首页 > 面试题库 >

Weblogic 12c:泽西岛的Prefer-web-inf-classs和Preferred-application-packages

梁祯
2023-03-14
问题内容

我必须在 Weblogic 12c服务器(12.2.1) 上同时使用(非常足够..)prefer-web-inf-classes
weblogic.xml的prefer-application-packages 属性。

它是基于Jersey 1.9的REST应用程序。(Jersey 1.x JAX-RS RI)和Guice。

1.为什么使用:prefer-web-inf-classes

如果您有多个WAR,则必须在war / lib级别放置guice-jersey /
guice的库,否则将收到Multibindings
Error。

它也必须指定prefer-web-inf-classestrue

这样,它可以正常工作!

我已经尝试使用工作以同样的方式prefer-application- packages的包(com.sun.jersey.guice.spi.container.servletcom.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上完美运行。。我已经分别探究过两次战争,并且工作正常……但是,请记住我的朋友,我有两次战争。

摘要

我不能同时使用这两个属性(在weblogic.xml上同时使用这两个属性会产生部署错误),但是这是必需的:

  1. 对于吉斯过滤器,需要的问题提出prefer-web-inf-classestrue使用guice-servlet.jar/ jersey-guice.jar战争-lib的水平
  2. 要使用Jersey 1.x,需要使用… prefer-application-package

问题 :如何将两者结合使用?


问题答案:

毕竟

  1. prefer-web-inf-classes用于true
  2. 如果使用此功能,则无需使用prefer-application-packages.. 但要确保在战争/战争级别具有正确的库。

问题是:

该项目与Jersey 2有依赖关系(基于Swagger for Jersey 2.X
…),因此通过Swagger依赖关系(swagger-jersey2-jaxrs),Jersey 2库打包在了ear /
war上,因此prefer-web-inf-classes没有效果!

删除依赖性后,所有问题都解决了!

在同一级别(类路径或ear lib或war lib)不应存在同一库的不同版本。



 类似资料:
  • 我不得不两个都用(说来也奇怪..)Weblogic 12C服务器(12.2.1)上Weblogic.xml的和属性 它是基于Jersey 1.9的REST应用程序。(Jersey 1.x JAX-RS RI)和Guice。 1.为什么使用:prefere-web-inf-classs 如果您有多个WAR,您必须将guice-jersey/guice的库放置在WAR/lib级别,否则会出现多绑定错误

  • 我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?

  • 问题内容: 我的问题是:为什么在创建部署在某种servlet容器(如jetty或tomcat)上的应用程序时执行JavaSE应用程序和ServletModule时需要创建AbstractModule?它们之间有什么区别? 我需要将Jersey与Guice集成在一起。是否需要注册Guice的存在才能以某种方式使用它?我是否可以仅启用注入并在我想要的任何地方(常规类,过滤器,处理程序,服务,DAO等)

  • 问题内容: 我有一个Jersey REST API,并且正在使用来处理授权。我还在所有端点上使用,以便我的API可以处理数千个并发请求。 我的授权过滤器命中了一个远程服务,但是当运行过滤器时,Jersey尚未将当前线程添加到它的内部,因此我完全失去了异步的好处。 我可以告诉Jersey我希望这是异步的吗? 这是一个示例资源: 更新 刚刚收到泽西队球员的回音,从2.7开始,这是不可能的。只有资源方法

  • 我很难理解泽西岛的注入机制。JAX-RS规范(http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-520005)指出,在应用程序子类、根资源类和提供程序中可以通过@Context进行注入。 我现在有一个在启动时实例化的类,并且有一个在每次请求时调用的方法。在方法内部,我需要访问当前的UriInfo对象。问题是,这个方法不是从我的

  • 我正在泽西岛2中编写一个RESTful网络服务。我想支持响应的 Gzip 编码。按照这个答案,我在我的类中启用了。 在我的资源类中,我返回一个对象。 现在,当我点击这个api时,我得到一个响应,但响应头不包含头,而是包含 header。 请求: 响应: 响应中没有 标头,也没有任何标头。 我在上使用。 我还遗漏了其他配置吗?我如何获得这两个头并得到gzip压缩的响应,而不是接收分块的响应? 编辑: