Я пытаюсь подписаться на экземпляр HornetQ, запущенный на сервере J7SS AS7. Мне удалось подключить и опубликовать/получить сообщения с тестовым приложением, которое существует за пределами сервера приложений, но когда я пытаюсь запустить аналогичный пример, развернутый в пределах, на сервере я получаю следующее исключение при создании InitialContext
экземпляр в моем сообщении абонентским класса:Как найти экземпляр HornetQ из приложения, запущенного на том же сервере приложений? (AS7) (Не удалось создать экземпляр InitialContextFactory)
javax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory org.jboss.naming.remote.client.InitialContextFactory from classloader ModuleClassLoader for Module "deployment.Test.war:main" from Service Module Loader
at org.jboss.as.naming.InitialContextFactoryBuilder.createInitialContextFactory(InitialContextFactoryBuilder.java:64)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:681)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.init(InitialContext.java:242)
at javax.naming.InitialContext.<init>(InitialContext.java:216)
at uk.co.test.MessageSubscriber.startSubscription(MessageSubscriber.java:127)
at uk.co.test.MessageSubscriber.access$0(MessageSubscriber.java:114)
at uk.co.test.MessageSubscriber$1.run(MessageSubscriber.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
И вот код, где я пытаюсь создать контекст (Я исключил реальную подписку, тема код установки и т.д. вне для ясности):
String factoryName = "jms/RemoteConnectionFactory";
String topicName = "jms/topic/test";
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
props.put(Context.PROVIDER_URL, "remote://server:4447");
props.put(Context.SECURITY_PRINCIPAL, "testuser");
props.put(Context.SECURITY_CREDENTIALS, "password");
props.put("jboss.naming.client.ejb.context", true);
InitialContext context = new InitialContext(props); // Exception
Создание контекста отлично работает при подключении удаленно к серверу, поэтому я предполагаю, что существует другой подход к обнаружению HornetQ, который я забыл. Или, может быть, я где-то пропадаю какую-либо зависимость или это проблема общей конфигурации ... В любом случае я изо всех сил пытаюсь найти какие-либо примеры, которые я могу использовать для продвижения вперед.
Любые идеи, в которых я ошибаюсь?
Спасибо.
Спасибо! Это работает отлично. – PA001