当前位置: 首页 > 知识库问答 >
问题:

无法使用Spring 3连接到JBoss 5中的HornetQ连接工厂

终育
2023-03-14

在本地,我的应用程序可以很好地连接到内置的netty连接工厂,并且在启动或发送主题消息方面没有问题。我的本地盒子是独立的JBoss 5.1和独立的大黄蜂Q。

但是,当部署到我们的DEV服务器(运行集群JBoss 5.1和集群HornetQ)时,我无法连接,得到以下堆栈跟踪:

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/eShowroom]] (main) Exception sending context initialized event to listener instance of cla>\ss org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'topicConnectionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: ConnectionFactory not bound

我正在尝试使用默认的内置netty连接器,除了我自己的JMS主题之外,没有额外的配置。我相对不知道DEV服务器设置,因为它超出了我的控制范围,对我来说相当黑匣子。

applicationContext.xml(在< code > $ JBOSS _ HOME/server/default/deploy/application . war/we b-INF 中):

    <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
       <property name="environment">
            <props>
                <prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
                <prop key="java.naming.provider.url">jnp://${jboss.bind.address:localhost}:1099</prop>
                <prop key="java.naming.factory.url.pkgs">org.jboss.naming</prop>
            </props>
       </property>
    </bean>

    <bean id="topicConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiTemplate" ref="jndiTemplate"></property>
        <property name="jndiName" value="/ConnectionFactory"></property>
    </bean>

    <bean id="cacheTopic" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiTemplate" ref="jndiTemplate"></property>
        <property name="jndiName" value="/topic/myCacheTopic"></property>
    </bean>

    <bean id="jmsDestinationResolver" class="org.springframework.jms.support.destination.JndiDestinationResolver">
        <property name="jndiTemplate" ref="jndiTemplate"/>
        <property name="cache" value="true"/>
    </bean>

    <bean id="messageSendTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="topicConnectionFactory"/>
        <property name="destinationResolver" ref="jmsDestinationResolver"/>
        <property name="pubSubDomain" value="true"/>
    </bean>

大黄蜂.xml (在$JBOSS_首页/服务器/默认/部署/大黄蜂)

    <connection-factory name="NettyConnectionFactory">
      <xa>true</xa>
      <connectors>
         <connector-ref connector-name="netty"/>
      </connectors>
      <entries>
         <entry name="/ConnectionFactory"/>
         <entry name="/XAConnectionFactory"/>
      </entries>
   </connection-factory>

   <connection-factory name="NettyThroughputConnectionFactory">
      <xa>true</xa>
       <connectors>
         <connector-ref connector-name="netty-throughput"/>
       </connectors>
        <entries>
            <entry name="/ThroughputConnectionFactory"/>
            <entry name="/XAThroughputConnectionFactory"/>
        </entries>
    </connection-factory>

   <connection-factory name="InVMConnectionFactory">
      <xa>true</xa>
      <connectors>
         <connector-ref connector-name="in-vm"/>
      </connectors>
      <entries>
         <entry name="java:/ConnectionFactory"/>
         <entry name="java:/XAConnectionFactory"/>
      </entries>
   </connection-factory>

本地和DEV的唯一区别在于hornetq-configuration.xml.

DEV 大黄蜂配置.xml(与大黄蜂.xml的路径相同)

   <broadcast-groups>
      <broadcast-group name="bg-group1">
         <group-address>${hornetq.broadcast.bg-group1.address:231.7.7.7}</group-address>
         <group-port>${hornetq.broadcast.bg-group1.port:9876}</group-port>
         <broadcast-period>5000</broadcast-period>
         <connector-ref>netty</connector-ref>
      </broadcast-group>
   </broadcast-groups>

   <discovery-groups>
      <discovery-group name="dg-group1">
         <group-address>${hornetq.discovery.dg-group1.address:231.7.7.7}</group-address>
         <group-port>${hornetq.discovery.dg-group1.port:9876}</group-port>
         <refresh-timeout>10000</refresh-timeout>
      </discovery-group>
   </discovery-groups>

   <cluster-connections>
      <cluster-connection name="my-cluster">
         <address>jms</address>  
         <connector-ref>netty</connector-ref>
          <discovery-group-ref discovery-group-name="dg-group1"/>
      </cluster-connection>
   </cluster-connections>

共有1个答案

贝阳泽
2023-03-14

因此,不管出于什么原因,这都是集群环境中的时间问题。需要连接工厂的bean只是被迫等待其他所有东西都启动并运行后再启动。

 类似资料:
  • 我正在尝试从用java编写的Lambda连接到AWS Oracle RDS。用于进行连接的连接钱包的二进制文件。 当我从SQLDeveloper使用它时,它工作正常。但是当我使用此 java 代码时,不会发生同样的情况。 在SQLDeveloper中,我使用的自定义jdbc url是:DBC:Oracle:thin:@(DESCRIPTION =(ADDRESS _ LIST =(ADDRESS

  • 我有这个代码可以通过IMAP连接到Gmail 我总是会遇到这个例外,指向商店。connect() 我已经检查了谷歌的所有信息,如果我是对的,IMAP的端口是993。用户名和密码绝对正确。我想我错过了一些东西,但我无法弄清楚。 任何帮助都将不胜感激! 编辑 添加邮件后。debug,我得到了这些日志,但我仍然停留在商店里。connect() 它已登录,但仍卡在connect上。。

  • 我使用的是Oracle 11g R2数据库。我使用Oracle SQL Developer。如果我创建了一个新连接并检查了基本连接类型并填写了我可以连接的字段。如果我选择TNS并在下拉菜单中选择我想要的,它会显示失败E/S异常:网络适配器无法建立连接。 这是tnsnames.ora。我用它连接到2个数据库,dblilly和astrea。我可以正确连接到astrea。侦听器已打开,实例已准备就绪。你

  • 问题内容: 我正在尝试使用Ruby on Rails运行Selenium的示例脚本。我必须使用代理运行它。这是我的代码: 我收到以下错误: 有人能帮我吗…?我已经尝试了好几个小时,却找不到问题…真的不知道该怎么办。 环境: Ubuntu 16.04 LTS,Firefox 45.0,rbenv 2.3.1 另一个问题:有人知道Selenium + Ruby on Rails的示例吗?我找不到真正好

  • 我正在尝试连接到MySQL服务器,但出现无法处理的错误。 java.sql.SQLNonTransientConnectionException:无法创建到数据库服务器的连接。尝试重新连接3次。放弃。com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)com.mysql.cj.jdbc.excepti

  • 我真的想不通为什么我不能用下面的代码连接到我的Django项目内的JQuery。你能告诉我是什么原因吗?多谢! null null