Как изменить порт во встроенном HornetQ программно
Я хочу изменить порт по умолчанию в моем встроенном HornetQ. Это работает, когда сделано в конфигурации hornetq.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();
Есть идеи? Спасибо
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);