我必须更改已安装的jboss 4.0.2环境的配置。已经建立的主题,需要更改名称。所以我在/home/jboss-4.0.2/server/myappinstance/conf/下的属性文件所需的位置更改了它 以及列出主题的主要jboss service.xml文件
mytopic目的地-service.xml中
<server>
<!-- event publish destination -->
<mbean code="org.jboss.mq.server.jmx.Topic"
name="jboss.mq.destination:service=Topic,name=myTopic">
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
</server>
和 myapp-jms-destinations-service.xml(几乎是一样的,不知道为什么它最初被拆分出来)
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jboss.naming.NamingAlias" name="jboss.mq:service=NamingAlias,fromName=issues/incomingEvent">
<attribute name="ToName">topic/myTopic</attribute>
<attribute name="FromName">issues/incomingEvent</attribute>
</mbean>
</server
&GT; 我在jboss日志中得到的错误就像:
org.jboss.deployment.DeploymentException: Error during topic setup; - nested throwable: (org.jboss.mq.SpyJMSException: Cannot subscribe to this Destination: ; - nested throwable: (java.lang.NullPointerException))
.........
......
....
Caused by: org.jboss.mq.SpyJMSException: Cannot subscribe to this Destination: ;
- nested throwable: (java.lang.NullPointerException)
at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:66)
at org.jboss.mq.SpyJMSException.rethrowAsJMSException(SpyJMSException.java:51)
at org.jboss.mq.Connection.addConsumer(Connection.java:835)
at org.jboss.mq.SpyConnectionConsumer.<init>(SpyConnectionConsumer.java:95)
at org.jboss.mq.SpyConnection.createDurableConnectionConsumer(SpyConnection.java:156)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerCreate(JMSContainerInvoker.java:789)
... 140 more Caused by: java.lang.NullPointerException
at org.jboss.mq.sm.AbstractStateManager.setDurableSubscription(AbstractStateManager.java:134)
at org.jboss.mq.server.JMSTopic.addSubscriber(JMSTopic.java:95)
at org.jboss.mq.server.ClientConsumer.addSubscription(ClientConsumer.java:133)
at org.jboss.mq.server.JMSDestinationManager.subscribe(JMSDestinationManager.java:596)
如果你注意到它说的地方: org.jboss.mq.SpyJMSException:无法订阅此目的地:;
目的地之间有一个空格:&#39;和&#39;;&#39;意味着目标的名称为null。现在,当我使用LP1的原始名称时,当我将其更改为myTopic时它很好,它给了我这个错误。我搜索了这个问题,看起来这是一个配置问题,但我似乎无法确定问题所在。
我检查了代码,主题名称在代码中也没有硬编码。我删除了工作和tmp目录,以删除任何缓存的配置。
答案 0 :(得分:1)
您是否删除了邮件数据库文件?或者,您是否取消订阅主题原始名称的订阅?我认为代码知道订阅原始主题名称,但具有该名称的主题不再存在。