java.lang.UnsupportedOperationException:JBAS011859:命名上下文是只读的

时间:2014-01-02 11:03:40

标签: java jboss7.x activemq

您好我正在尝试部署一个war文件,该文件在Jboss-as-7.1.1.Final应用程序服务器中有activemq-all-5.8.0.jar文件。在这样做的过程中,我遇到了以下错误。

    09:55:42,813 ERROR [stderr] (JMX connector) Exception in thread "JMX connector" java.lang.UnsupportedOperationException: JBAS011859: Naming context is read-only
    09:55:42,814 ERROR [stderr] (JMX connector)     at org.jboss.as.naming.WritableServiceBasedNamingStore.requireOwner(WritableServiceBasedNamingStore.java:126)
    09:55:42,815 ERROR [stderr] (JMX connector)     at org.jboss.as.naming.WritableServiceBasedNamingStore.bind(WritableServiceBasedNamingStore.java:56)
    09:55:42,816 ERROR [stderr] (JMX connector)     at org.jboss.as.naming.NamingContext.bind(NamingContext.java:221)
    09:55:42,817 ERROR [stderr] (JMX connector)     at org.jboss.as.naming.InitialContext.bind(InitialContext.java:161)
    09:55:42,817 ERROR [stderr] (JMX connector)     at org.jboss.as.naming.NamingContext.bind(NamingContext.java:230)
    09:55:42,818 ERROR [stderr] (JMX connector)     at javax.naming.InitialContext.bind(InitialContext.java:419)
    09:55:42,819 ERROR [stderr] (JMX connector)     at javax.management.remote.rmi.RMIConnectorServer.bind(RMIConnectorServer.java:643)
    09:55:42,820 ERROR [stderr] (JMX connector)     at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:426)
    09:55:42,820 ERROR [stderr] (JMX connector)     at org.apache.activemq.broker.jmx.ManagementContext$1.run(ManagementContext.java:131)
    09:55:44,826 ERROR [stderr] (JMX connector) Exception in thread "JMX connector" java.lang.UnsupportedOperationException: JBAS011859: Naming context is read-only
    09:55:44,827 ERROR [stderr] (JMX connector)     at org.jboss.as.naming.WritableServiceBasedNamingStore.requireOwner(WritableServiceBasedNamingStore.java:126)
    09:55:44,828 ERROR [stderr] (JMX connector)     at org.jboss.as.naming.WritableServiceBasedNamingStore.bind(WritableServiceBasedNamingStore.java:56)
    09:55:44,828 ERROR [stderr] (JMX connector)     at org.jboss.as.naming.NamingContext.bind(NamingContext.java:221)
    09:55:44,829 ERROR [stderr] (JMX connector)     at org.jboss.as.naming.InitialContext.bind(InitialContext.java:161)
    09:55:44,842 ERROR [stderr] (JMX connector)     at org.jboss.as.naming.NamingContext.bind(NamingContext.java:230)
    09:55:44,842 ERROR [stderr] (JMX connector)     at javax.naming.InitialContext.bind(InitialContext.java:419)
    09:55:44,843 ERROR [stderr] (JMX connector)     at javax.management.remote.rmi.RMIConnectorServer.bind(RMIConnectorServer.java:643)
    09:55:44,844 ERROR [stderr] (JMX connector)     at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:426)
    09:55:44,844 ERROR [stderr] (JMX connector)     at org.apache.activemq.broker.jmx.ManagementContext$1.run(ManagementContext.java:131)

虽然应用程序已成功部署,但也可按预期工作。 任何人都可以帮助解决这个问题 在此先感谢。

2 个答案:

答案 0 :(得分:1)

这个问题很陈旧,但以下信息仍然有用:

在JBOSS中启动activemq代理非常合理。发生错误是因为代理正在JBOSS中启动,但代理具有

的管理上下文

<amq:managementContext> <amq:managementContext createConnector="true" /> </amq:managementContext>

这是默认行为,因此如果您尚未对此进行配置,则需要执行此操作。您有可能想要创建自己的连接器,例如,如果您正在运行独立代理,但是如果您在JBOSS容器中运行,那么您可能不希望这样,您可以使用它们。

您还可以通过设置系统属性为jvm中的所有代理关闭它:

-Dorg.apache.activemq.broker.jmx.createConnector=false

即使您认为已在代理上将JMS连接器配置为false,您仍可能会收到此错误。当我使用代理URL vm://localhost创建连接工厂并在正确配置的代理启动之前使用它们创建连接时,就会发生这种情况。据我所知,我自动为连接创建了一个具有默认设置的代理。这与ActiveMQ没有任何关系,在一个线程上创建代理和在另一个线程上创建连接只是一种竞争条件。

答案 1 :(得分:0)

您似乎从战争中启动了activemq代理(服务器):

org.apache.activemq.broker.jmx.ManagementContext$1.run(ManagementContext.java:131)

我猜这不是你想要的。您可能只使用activemq作为客户端?如果是这种情况,则应仅包括客户端库。