Jersey 2初始化:资源配置在此上下文中不可修改

时间:2016-07-11 14:33:41

标签: java jax-rs jersey-2.0 weblogic12c

我使用IntelliJ 2016 Ultimate作为IDE来开发JAX-RS 2.0 Web应用程序。

在各种远程WebLogic计算机上部署为WAR工件时,webapp可以正常工作。

但是,当部署为爆炸工件时(在本地WebLogic安装上(读取:目标/ webbap目录),Jersey 有时无法正确初始化,但有以下异常: 在此上下文中,资源配置无法修改。

java.lang.IllegalStateException: The resource configuration is not modifiable in this context.
    at org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:274)
    at org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:221)
    at org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:453)
    at org.glassfish.jersey.servlet.WebComponent.(WebComponent.java:385)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:362)
    at javax.servlet.GenericServlet.init(GenericServlet.java:244)
    at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:343)
    at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:294)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
    at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196)
    at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
    at weblogic.servlet.internal.StubSecurityHelper.initServletInstance(StubSecurityHelper.java:99)
    at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:93)
    at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:69)
    at weblogic.servlet.internal.StubLifecycleHelper.(StubLifecycleHelper.java:57)
    at weblogic.servlet.internal.StubLifecycleHelper.(StubLifecycleHelper.java:36)
    at weblogic.servlet.internal.ServletStubImpl.initStubLifecycleHelper(ServletStubImpl.java:666)
    at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:612)
    at weblogic.servlet.internal.ServletStubImpl.reloadWhenClassloaderChanged(ServletStubImpl.java:562)
    at weblogic.servlet.internal.ServletStubImpl.checkForReload(ServletStubImpl.java:530)
    at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:411)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:304)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
    ....

这发生在对资源的第一个请求上。对于哪种资源并不重要,我已经看到它在许多不同的资源上发生。 此时唯一的解决方案是重启webapp。

技术堆栈

  • WebLogic 12.2.1
  • Maven 3.2.3
  • Java 8
  • JavaEE 7
  • JAX-RS 2.0 / Jersey 2.21(与WebLogic捆绑在一起)

IDE

  • IntelliJ 2016.1 Ultimate

很难可靠地再现,有时泽西岛的初始化连续5次失败,有时10次没有问题。

我不确定究竟出了什么问题。任何人都可以给我一些关于初始化期间究竟失败的解释,或者想知道如何调试这个问题。

0 个答案:

没有答案