【问题标题】:JMS Topic on Jboss 4.0.2关于 Jboss 4.0.2 的 JMS 主题
【发布时间】:2018-06-18 23:31:00
【问题描述】:

我必须更改已经设置好的 jboss 4.0.2 环境的配置。已经建立的主题,需要更改名称。所以我在 /home/jboss-4.0.2/server/myappinstance/conf/ 下的属性文件等需要的地方更改了它 以及列出主题的主要 jboss service.xml 文件

mytopic-Destination-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

> 我在 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:无法订阅此目的地:;

'Destination:' 和 ';' 之间有一个空格表示目的地的名称为空。现在,当我使用原始名称 LP1 时,当我将其更改为 myTopic 时,它给了我这个错误。我搜索了这个问题,它似乎是一个配置问题,但我似乎无法确定问题出在哪里。

我检查了代码,主题名称也没有硬编码在代码中。我也删除了 work 和 tmp 目录,只是为了删除所有缓存的配置。

【问题讨论】:

  • 您是否删除了消息传递数据库文件?或者,您是否取消订阅主题原始名称?我认为代码知道原始主题名称的订阅,但不再存在具有该名称的主题。
  • 什么是消息数据库文件?嗯,你的回答很有道理。我正在关闭 jboss,这不会取消订阅主题。
  • 如果您使用“仅在内存中”的超音速数据库进行消息传递,那么您的订阅将无法在服务器重新启动后继续存在。如果您使用数据库进行消息传递,那么订阅在数据库重新启动后会继续存在。查看服务器配置文件deploy-hasingleton/jms 目录中的文件。
  • 我想就是这样。我有一个带有 JMS_SUBSCRPTION 表的超音速数据库,并且那里的主题名称不同,所以我更正了它并且它有效。谢谢

标签: java jms-topic jboss-4.0.x


【解决方案1】:

您是否删除了消息传递数据库文件?或者,您是否取消订阅主题原始名称?我认为代码知道原始主题名称的订阅,但是具有该名称的主题不再存在。

【讨论】:

  • 有一个超音速数据库,其中有一个名为 JMS_SUBSCRIPTION 的表,其中 Topic 名称不同。这就是正在使用的主题。您的回答将我引导至该数据库并查看其脚本。虽然我不得不删除重新制作的数据目录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2017-11-26
  • 1970-01-01
  • 2017-10-08
  • 1970-01-01
  • 2020-05-21
  • 2013-02-18
相关资源
最近更新 更多