Weblogic:禁用平针扫描

str*_*ger 10 weblogic jax-rs jersey weblogic12c

我的webapp包含一个库,其中包含一个带注释的类@javax.ws.rs.ext.Provider.如果存在此类,则我的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
Run Code Online (Sandbox Code Playgroud)

我根本不使用运动衫,我没有使用任何jax-rs服务,而且我的web.xml不包含与球衣相关的servlet.我不明白为什么weblogic初始化jersey并在我的应用程序中扫描jars相关的东西.

我可以在互联网上找到的与此相关的大部分信息都会导致人们以不同的方式配置他们的球衣servlet.但我没有配置......

我不控制有问题的库,因此删除该类不是一种选择.

那么,我怎么能告诉weblogic在初始化球衣时不要扫描我的课程呢?

请注意,这是在将我的web.xml更改为servlet 3.0而不是2.4之后发生的.如果我把它改回2.4,一切都很好.

我正在使用weblogic 12.1.2.0(12c).

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

Eri*_*pie 0

此页面记录了 WebLogic 用于加载 Jersey 的 JAR 和 WAR 文件的名称。您可以重命名或删除这些文件,并阻止 WebLogic 直接加载它们。

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