当前位置: 首页 > 知识库问答 >
问题:

Weblogic:禁用泽西扫描

爱繁
2023-03-14

我的webapp包含一个库,其中包含一个用@javax.ws.rs.ext.提供程序注释的类。如果存在此类,我的webapp(部署为EAR中的WAR)将无法启动,并出现以下错误:

<19-Jun-2014 14:41:50 o'clock BST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "1403185262187" for task "2". Error is: "weblogic.application.ModuleException: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes."
weblogic.application.ModuleException: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
        at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
        at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
        at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:213)
        at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:208)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
        Truncated. see log file for complete stacktrace
Caused By: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
        at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99)
        at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1331)
        at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:168)
        at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:774)
        at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:770)
        Truncated. see log file for complete stacktrace

我根本没有使用jersey,我没有使用任何jax-rs服务和我的web。xml不包含与jersey相关的servlet。我不明白为什么weblogic在我的应用程序中初始化jersey并扫描jars相关的JAR。

我在互联网上找到的与此相关的大多数信息导致人们以不同的方式配置他们的jersey servlet。但我没有一个配置。。。

我无法控制有问题的库,因此无法删除该类。

那么,我如何告诉weblogic在初始化泽西时不要扫描我的类?

请注意,这是在更改我的网站后发生的。将xml转换为Servlet3.0而不是2.4。如果我把它改回2.4,一切都好。

我使用的是weblogic 12.1.2.0(12c)。

更新:事实证明JAX-RS扫描是JavaEE6的一个关键特性——整个想法是将带注释的类放在webapp中,不需要进行任何配置就可以将它们作为REST Web服务公开。

共有2个答案

宋宏毅
2023-03-14

我有一个线索,通过设置属性jersey.config.disableAutoDiscovery禁用球衣扫描,但它不适用于我。有关更多详细信息,请参阅配置类路径扫描。

琴俊人
2023-03-14

此页记录WebLogic用于加载泽西的JAR和WAR文件的名称。您可以重命名或删除这些文件,只是防止WebLogic直接加载它们。

我一直不清楚WebLogic是否真的使用这些JAR文件。从我所读到的所有内容来看,WebLogic在可部署库中提供JAR作为预构建的共享库,用于Web应用程序,而不是直接由WebLogic Server使用。

 类似资料:
  • 无法在weblogic服务器上部署jersey REST,是否存在特定于weblogic的REST服务配置? 完全堆栈跟踪- 2018年4月25日下午7:01:53。太阳运动衫服务器impl。应用WebApplicationImpl启动信息:启动泽西岛应用程序,版本“泽西岛:1.2 05/07/2010 02:11 PM”2018年4月25日7:01:53 PM com。太阳运动衫服务器impl。

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

  • 我不想让泽西做任何依赖注射。我认为有从Jersey到Guice的桥梁,但是基于我不能在这里显示的程序需求,我需要自己创建REST控制器实例,并向Guice请求它们。 我的问题:我怎样才能禁用泽西岛的依赖注入? 我当前正在使用注释。也许我可以改用注释,以为Jersey不会在寻找这些注释。但我还是宁愿把泽西岛的依赖注射关了。我怎么能那样做?

  • 我试图用Jersey发送一个带有POST的ByteArrayOutputStream压缩文件。

  • 问题内容: 我必须在 Weblogic 12c服务器(12.2.1) 上同时使用(非常足够..)和 weblogic.xml的 属性。 它是基于Jersey 1.9的REST应用程序。(Jersey 1.x JAX-RS RI)和Guice。 1.为什么使用:prefer-web-inf-classes 如果您有多个WAR,则必须在war / lib级别放置guice-jersey / guice

  • 问题内容: 我在Spring启动项目中有一个与Jackson配置有关的问题 如Spring Boot博客中所述 我尝试自定义对象序列化。 在我的配置中添加新的配置bean之后 当我尝试输出类User的实例时,json结果不在CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES中 json输出是: 并不是 也许我需要在Jersey配置中注册一些东西才能激活我的自定义ob