gpt4 book ai didi

java - 如何以编程方式更改嵌入式 HornetQ 中的端口

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:56:02 26 4
gpt4 key购买 nike

我想更改我的嵌入式 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();

有什么想法吗?谢谢

最佳答案

这不起作用,因为 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);

关于java - 如何以编程方式更改嵌入式 HornetQ 中的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6705380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com