Я пытаюсь настроить установку JMS между двумя серверами. Отправитель включен (сервер A) jboss 5, а получатель включен (сервер B) jboss 4 (который использует удаленную очередь с сервера A.
Когда я пытаюсь запустить оба на jboss 5 или jboss 4, это работает. Но когда получатель находится на jboss 4, а отправитель на jboss 5, он выдает значение ниже Exception.
Причина: java.lang.ClassNotFoundException: не найдены загрузчики классов для: org.jboss.jms.client.JBossConnectionFactory (без менеджера безопасности: загрузчик классов RMI отключен)
Исключительная трассировка:
javax.naming.CommunicationException [Root exception is java.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.jms.client.JBossConnectionFactory (no security manager: RMI class loader disabled)]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:728)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:182)
at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:260)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:188)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:510)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$ExceptionListenerImpl$ExceptionListenerRunnable.run(JMSContainerInvoker.java:1419)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.jms.client.JBossConnectionFactory (no security manager: RMI class loader disabled)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:375)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
at org.jboss.system.JBossRMIClassLoader.loadClass(JBossRMIClassLoader.java:91)
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at java.rmi.MarshalledObject.get(MarshalledObject.java:142)
at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:652)
... 8 more
Я нашел ниже ссылку, которая кажется похожей на проблему, с которой я сталкиваюсь, но не могу точно определить, с какого сервера, на каком сервере мне нужны клиентские библиотеки в файле war ?.
https://access.redhat.com/solutions/45133
Подробнее: -
В моем случае jboss 4.0.4 и jboss 5.1.0 оба размещают сообщения для разных очередей.
- jboss 5 размещает сообщение, а слушатель находится на jboss4 для QueueA.
- jboss 4 размещает сообщение, а слушатель находится на jboss 5 для QueueB.
Чего мы хотим достичь: - Jboss 4 на сервере A должен взаимодействовать с RemoteQueues, которые настроены на jboss 5 на сервере B, который не работает и выбрасывает выше Exception. Связь не происходит между обоими серверами.