【问题标题】:How to change the port in an embedded HornetQ programmatically如何以编程方式更改嵌入式 HornetQ 中的端口
【发布时间】:2011-10-06 00:44:06
【问题描述】:

我想更改嵌入式 HornetQ 中的默认端口。这在 hornetq-configuration.xml 文件中完成时有效:

<acceptors>
  <acceptor name="netty-acceptor">
    <factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
    <param key="port" value="6446"/>
  </acceptor>
</acceptors>

但以编程方式更改不会。我从文件加载配置,并尝试覆盖,但没有成功 - 这是我尝试的:

// Load configuration
FileConfiguration configuration = new FileConfiguration();
configuration.setConfigurationUrl("hornetq-configuration.xml");

// Prepare configuration objects
String netty = NettyAcceptorFactory.class.getName();
Map<String, Object> transportParams = new HashMap<String, Object>();
transportParams.put(TransportConstants.HOST_PROP_NAME, "localhost");
transportParams.put(TransportConstants.PORT_PROP_NAME, 6446);
TransportConfiguration transpConf = new TransportConfiguration(netty, transportParams);

// add configuration (clearing before didn't helped either))
configuration.getAcceptorConfigurations().add(transpConf);
configuration.start(); // moving this right after the setting the file didn't helped

// start server
HornetQServer server = HornetQServers.newHornetQServer(configuration);
JMSServerManager jmsServerManager = new JMSServerManagerImpl(server, "hornetq-jms.xml");
jmsServerManager.setContext(null);
jmsServerManager.start();

有什么想法吗?谢谢

【问题讨论】:

    标签: java embedded jms hornetq


    【解决方案1】:

    这不起作用,因为configuration.start() 将覆盖您添加的任何内容。

    你应该可以做这样的事情:

    FileConfiguration configuration = new FileConfiguration();
    configuration.setConfigurationUrl("hornetq-configuration.xml");
    
    configuration.start(); // <<<-----------------
    
    // Prepare configuration objects
    String netty = NettyAcceptorFactory.class.getName();
    Map<String, Object> transportParams = new HashMap<String, Object>();
    transportParams.put(TransportConstants.HOST_PROP_NAME, "localhost");
    transportParams.put(TransportConstants.PORT_PROP_NAME, 6446);
    TransportConfiguration transpConf = new TransportConfiguration(netty, transportParams);
    
    configuration.getAcceptorconfigurations().clear(); // <<<-----------------
    
    // add configuration
    configuration.getAcceptorConfigurations().add(transpConf);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 2010-10-06
      • 2016-01-28
      • 2014-02-13
      • 1970-01-01
      • 2011-11-13
      • 2010-09-11
      相关资源
      最近更新 更多