在我们的EJB和jar文件中开始使用beans.xml文件后,我有一个非常奇怪的异常.
我们使用JBoss7.1.1版本.
我们的应用程序打包为ear文件.
它之前已部署并正常运行.
有一些Module1 EJB组件.现在我们对Module1中的一些bean使用@Inject批注,因此添加了meta-inf / beans.xml.
另一个EJB组件Module2使用Module1中的EJB,如:
我们使用JBoss7.1.1版本.
我们的应用程序打包为ear文件.
它之前已部署并正常运行.
有一些Module1 EJB组件.现在我们对Module1中的一些bean使用@Inject批注,因此添加了meta-inf / beans.xml.
另一个EJB组件Module2使用Module1中的EJB,如:
@EJB
private IOmistajaFinderLocal omistajaFinder;
但现在应用程序无法部署在JBoss上.有以下例外:
java.lang.UnsupportedOperationException: JBAS011859: Naming context is read-only at org.jboss.as.naming.WritableServiceBasednamingStore.requireOwner(WritableServiceBasednamingStore.java:126) at org.jboss.as.naming.WritableServiceBasednamingStore.createSubcontext(WritableServiceBasednamingStore.java:116) at org.jboss.as.naming.NamingContext.createSubcontext(NamingContext.java:338) at org.jboss.as.naming.InitialContext.createSubcontext(InitialContext.java:229) at org.jboss.as.naming.NamingContext.createSubcontext(NamingContext.java:346) at javax.naming.InitialContext.createSubcontext(UnkNown Source) at com.sun.jersey.server.impl.cdi.CDIExtension$1.stepInto(CDIExtension.java:280) at com.sun.jersey.server.impl.cdi.CDIExtension.diveIntoJNDIContext(CDIExtension.java:267) at com.sun.jersey.server.impl.cdi.CDIExtension.createJerseyConfigJNDIContext(CDIExtension.java:273) at com.sun.jersey.server.impl.cdi.CDIExtension.initialize(CDIExtension.java:192) at com.sun.jersey.server.impl.cdi.CDIExtension.beforeBeandiscovery(CDIExtension.java:297) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(UnkNown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(UnkNown Source) at java.lang.reflect.Method.invoke(UnkNown Source) at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:264) at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137) at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:260) at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:170) at org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:51) at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:154) at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:241) at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:229) at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:207) at org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:75) at org.jboss.weld.bootstrap.events.AbstractDeFinitionContainerEvent.fire(AbstractDeFinitionContainerEvent.java:46) at org.jboss.weld.bootstrap.events.BeforeBeandiscoveryImpl.fire(BeforeBeandiscoveryImpl.java:46) at org.jboss.weld.bootstrap.WeldBootstrap.startinitialization(WeldBootstrap.java:322) at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:81) at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) at org.jboss.msc.service.ServiceControllerImpl$startTask.startService(ServiceControllerImpl.java:1811) at org.jboss.msc.service.ServiceControllerImpl$startTask.run(ServiceControllerImpl.java:1746) at java.util.concurrent.ThreadPoolExecutor.runWorker(UnkNown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(UnkNown Source) at java.lang.Thread.run(UnkNown Source) at org.jboss.as.weld.services.WeldService.start(WeldService.java:83) at org.jboss.msc.service.ServiceControllerImpl$startTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] at org.jboss.msc.service.ServiceControllerImpl$startTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] at java.util.concurrent.ThreadPoolExecutor.runWorker(UnkNown Source) [rt.jar:1.7.0_09] at java.util.concurrent.ThreadPoolExecutor$Worker.run(UnkNown Source) [rt.jar:1.7.0_09] at java.lang.Thread.run(UnkNown Source) [rt.jar:1.7.0_09] Caused by: org.jboss.weld.exceptions.DeFinitionException: Exception List with 1 exceptions: Exception 0 : java.lang.UnsupportedOperationException: JBAS011859: Naming context is read-only at org.jboss.as.naming.WritableServiceBasednamingStore.requireOwner(WritableServiceBasednamingStore.java:126) at org.jboss.as.naming.WritableServiceBasednamingStore.createSubcontext(WritableServiceBasednamingStore.java:116) at org.jboss.as.naming.NamingContext.createSubcontext(NamingContext.java:338) at org.jboss.as.naming.InitialContext.createSubcontext(InitialContext.java:229) at org.jboss.as.naming.NamingContext.createSubcontext(NamingContext.java:346) at javax.naming.InitialContext.createSubcontext(UnkNown Source) at com.sun.jersey.server.impl.cdi.CDIExtension$1.stepInto(CDIExtension.java:280) at com.sun.jersey.server.impl.cdi.CDIExtension.diveIntoJNDIContext(CDIExtension.java:267) at com.sun.jersey.server.impl.cdi.CDIExtension.createJerseyConfigJNDIContext(CDIExtension.java:273) at com.sun.jersey.server.impl.cdi.CDIExtension.initialize(CDIExtension.java:192) at com.sun.jersey.server.impl.cdi.CDIExtension.beforeBeandiscovery(CDIExtension.java:297) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(UnkNown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(UnkNown Source) at java.lang.reflect.Method.invoke(UnkNown Source) at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:264) at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137) at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:260) at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:170) at org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:51) at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:154) at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:241) at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:229) at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:207) at org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:75) at org.jboss.weld.bootstrap.events.AbstractDeFinitionContainerEvent.fire(AbstractDeFinitionContainerEvent.java:46) at org.jboss.weld.bootstrap.events.BeforeBeandiscoveryImpl.fire(BeforeBeandiscoveryImpl.java:46) at org.jboss.weld.bootstrap.WeldBootstrap.startinitialization(WeldBootstrap.java:322) at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:81) at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) at org.jboss.msc.service.ServiceControllerImpl$startTask.startService(ServiceControllerImpl.java:1811) at org.jboss.msc.service.ServiceControllerImpl$startTask.run(ServiceControllerImpl.java:1746) at java.util.concurrent.ThreadPoolExecutor.runWorker(UnkNown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(UnkNown Source) at java.lang.Thread.run(UnkNown Source) at org.jboss.weld.bootstrap.events.AbstractDeFinitionContainerEvent.fire(AbstractDeFinitionContainerEvent.java:48) at org.jboss.weld.bootstrap.events.BeforeBeandiscoveryImpl.fire(BeforeBeandiscoveryImpl.java:46) at org.jboss.weld.bootstrap.WeldBootstrap.startinitialization(WeldBootstrap.java:322) at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:81) at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) ... 5 more 08:55:05,315 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation Failed and was rolled back. Steps that Failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"Helle.ear\".WeldService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"Helle.ear\".WeldService: org.jboss.weld.exceptions.DeFinitionException: Exception List with 1 exceptions: Exception 0 : java.lang.UnsupportedOperationException: JBAS011859: Naming context is read-only at org.jboss.as.naming.WritableServiceBasednamingStore.requireOwner(WritableServiceBasednamingStore.java:126) at org.jboss.as.naming.WritableServiceBasednamingStore.createSubcontext(WritableServiceBasednamingStore.java:116) at org.jboss.as.naming.NamingContext.createSubcontext(NamingContext.java:338) at org.jboss.as.naming.InitialContext.createSubcontext(InitialContext.java:229) at org.jboss.as.naming.NamingContext.createSubcontext(NamingContext.java:346) at javax.naming.InitialContext.createSubcontext(UnkNown Source) at com.sun.jersey.server.impl.cdi.CDIExtension$1.stepInto(CDIExtension.java:280) at com.sun.jersey.server.impl.cdi.CDIExtension.diveIntoJNDIContext(CDIExtension.java:267) at com.sun.jersey.server.impl.cdi.CDIExtension.createJerseyConfigJNDIContext(CDIExtension.java:273) at com.sun.jersey.server.impl.cdi.CDIExtension.initialize(CDIExtension.java:192) at com.sun.jersey.server.impl.cdi.CDIExtension.beforeBeandiscovery(CDIExtension.java:297) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(UnkNown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(UnkNown Source) at java.lang.reflect.Method.invoke(UnkNown Source) at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:264) at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137) at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:260) at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:170) at org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:51) at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:154) at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:241) at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:229) at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:207) at org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:75) at org.jboss.weld.bootstrap.events.AbstractDeFinitionContainerEvent.fire(AbstractDeFinitionContainerEvent.java:46) at org.jboss.weld.bootstrap.events.BeforeBeandiscoveryImpl.fire(BeforeBeandiscoveryImpl.java:46) at org.jboss.weld.bootstrap.WeldBootstrap.startinitialization(WeldBootstrap.java:322) at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:81) at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) at org.jboss.msc.service.ServiceControllerImpl$startTask.startService(ServiceControllerImpl.java:1811) at org.jboss.msc.service.ServiceControllerImpl$startTask.run(ServiceControllerImpl.java:1746) at java.util.concurrent.ThreadPoolExecutor.runWorker(UnkNown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(UnkNown Source) at java.lang.Thread.run(UnkNown Source) "}}}}
Module1和Module2都包含在application.xml文件和生成的ear文件中.
删除beans.xml可解决部署过程,但在这种情况下,我们无法使用@Injection注释.
有什么问题,如何解决?谢谢.
这是使用运动衫时的一个已知问题.尝试将以下选项添加到您的jvm,这将解决您的问题.如果从eclipse运行jboss服务器,则添加到服务器运行时配置.如果您使用standalone.bat从命令提示符启动jboss,则将以下选项添加到standalone.conf.bat.同样,如果您使用* Nix,则添加到standalone.conf.
set "JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。