Spring + Jersey 集成问题 - SpringScopeContext 必须在 Singleton 范围内

问题描述

我在将 Jersey 与 Spring 集成时遇到问题。启动服务器时出现以下异常。

Jersey 2.32,Spring 5.2.12,Weblogic:12.2.1.3

警告:已检测到以下警告:警告:在未在活动 Jersey 错误范围内运行的代码中检测到 HK2 故障。 警告:检测到未知的 HK2 故障: MultiException 堆栈 1 of 1 java.lang.IllegalArgumentException: 实现类 org.jvnet.hk2.spring.bridge.internal.SpringScopeContext 必须在 Singleton 范围内 在 org.jvnet.hk2.internal.ServiceLocatorImpl.checkConfiguration(ServiceLocatorImpl.java:1722) 在 org.jvnet.hk2.internal.ServiceLocatorImpl.addConfiguration(ServiceLocatorImpl.java:2118) 在 org.jvnet.hk2.internal.DynamicConfigurationImpl.commit(DynamicConfigurationImpl.java:286) 在 org.jvnet.hk2.spring.bridge.internal.SpringBridgeImpl.initializeSpringBridge(SpringBridgeImpl.java:64) 在 org.glassfish.jersey.server.spring.SpringComponentProvider.initialize(SpringComponentProvider.java:87) 在 org.glassfish.jersey.server.ComponentProviderConfigurator.lambda$null$0(ComponentProviderConfigurator.java:55) 在 java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:439) 在 java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 在 java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) 在 java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) 在 java.util.stream.AbstractPipeline.wrapAndcopyInto(AbstractPipeline.java:472) 在 java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) 在 java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 在 java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566) 在 org.glassfish.jersey.server.ComponentProviderConfigurator.lambda$init$1(ComponentProviderConfigurator.java:56) 在 org.glassfish.jersey.internal.util.collection.Values$LazyValueImpl.get(Values.java:317) 在 org.glassfish.jersey.server.ApplicationConfigurator.createApplication(ApplicationConfigurator.java:98) 在 org.glassfish.jersey.server.ApplicationConfigurator.init(ApplicationConfigurator.java:72) 在 org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$0(ApplicationHandler.java:290) 在 java.util.Arrays$ArrayList.forEach(Arrays.java:3880) 在 org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:290) 在 org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:259) 在 org.glassfish.jersey.servlet.WebComponent.(WebComponent.java:311) 在 org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:154) 在 org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:347) 在 javax.servlet.GenericServlet.init(GenericServlet.java:244) 在 weblogic.servlet.internal.StubSecurityHelper$ServletInitaction.run(StubSecurityHelper.java:343) 在 weblogic.servlet.internal.StubSecurityHelper$ServletInitaction.run(StubSecurityHelper.java:294) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326) 在 weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197) 在 weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) 在 weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) 在 weblogic.servlet.internal.StubSecurityHelper.initServletInstance(StubSecurityHelper.java:99) 在 weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:87) 在 weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:71) 在 weblogic.servlet.internal.StubLifecycleHelper.(StubLifecycleHelper.java:57) 在 weblogic.servlet.internal.StubLifecycleHelper.(StubLifecycleHelper.java:31) 在 weblogic.servlet.internal.ServletStubImpl.initStubLifecycleHelper(ServletStubImpl.java:673) 在 weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:612) 在 weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:2064) 在 weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:2041) 在 weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1930) 在 weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3101) .... .... .... org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1287) 在 org.jvnet.hk2.internal.ClazzCreator.postconstructMe(ClazzCreator.java:333) 在 org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:375) 在 org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:487) 在 org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:305) 在 org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) 在 org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2126) 在 org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:116) 在 org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:698) 在 org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:78) 在 org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:212) 在 org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:235) 在 org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:358) 在 org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:487) 在 org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:305) 在 org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) 在 org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2126) 在 org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:116) 在 org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:90) 在 org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1237) 在 org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1168) 在

  1. java.lang.IllegalArgumentException: 实现类 org.jvnet.hk2.spring.bridge.internal.SpringScopeContext 必须在 Singleton 范围内

    在 org.jvnet.hk2.internal.ServiceLocatorImpl.checkConfiguration(ServiceLocatorImpl.java:1722) 在 org.jvnet.hk2.internal.ServiceLocatorImpl.addConfiguration(ServiceLocatorImpl.java:2118) 在 org.jvnet.hk2.internal.DynamicConfigurationImpl.commit(DynamicConfigurationImpl.java:286) 在 org.jvnet.hk2.spring.bridge.internal.SpringBridgeImpl.initializeSpringBridge(SpringBridgeImpl.java:64) 在 org.glassfish.jersey.server.spring.SpringComponentProvider.initialize(SpringComponentProvider.java:87) 截断。查看日志文件获取完整的堆栈跟踪 引起:java.lang.IllegalArgumentException:实现类org.jvnet.hk2.spring.bridge.internal.SpringScopeContext必须在Singleton范围内 在 org.jvnet.hk2.internal.ServiceLocatorImpl.checkConfiguration(ServiceLocatorImpl.java:1722) 在 org.jvnet.hk2.internal.ServiceLocatorImpl.addConfiguration(ServiceLocatorImpl.java:2118) 在 org.jvnet.hk2.internal.DynamicConfigurationImpl.commit(DynamicConfigurationImpl.java:286) 在 org.jvnet.hk2.spring.bridge.internal.SpringBridgeImpl.initializeSpringBridge(SpringBridgeImpl.java:64) 在 org.glassfish.jersey.server.spring.SpringComponentProvider.initialize(SpringComponentProvider.java:87) 截断。查看日志文件获取完整的堆栈跟踪

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)