Подключение удаленного JMS-клиента к GlassFish 3 - PullRequest
7 голосов
/ 30 марта 2011

Я пытаюсь подключиться к JMS-сервису GlassFish 3 из автономного удаленного клиента.Однако я получаю исключение java.lang.ClassNotFoundException: com.sun.messaging.jms.ra.ResourceAdapter.Любые идеи о том, как это исправить?

Вот мои настройки до сих пор:

  • Служба Glassfish 3 JMS в режиме LOCAL (я предполагаю, что режим EMBEDED не будет работать вэтот случай, потому что он обходит сетевой стек)

  • Свойства JNDI определены следующим образом:

    java.naming.factory.initial = com.sun.enterprise.naming.SerialInitContextFactory java.naming.factory.url.pkgs = com.sun.enterprise.naming java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl

  • gf-client-module.jar (в GLASSFISH_HOME / modules) добавлен в путь к классам автономного приложения.Также попытался добавить другие jar-файлы, присутствующие в каталоге модулей (например, jms-core.jar), но все еще получая то же ClassNotFoundException.

Любая помощь будет принята с благодарностью.

Ответы [ 4 ]

3 голосов
/ 16 апреля 2011

Вместо использования всех отдельных jar-файлов Glassfish, которые вам могут понадобиться (таких как gf-client-module.jar, imqjmsra.jar и imqbroker.jar), предпочтительным методом является использование gf-client.jar файл. Его можно найти в $ GLASSFISH_HOME / lib.

Дополнительную информацию можно получить по адресу http://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB.. Этот документ относится к использованию EJB в автономных клиентах, но решение для использования JMS такое же.

2 голосов
/ 31 марта 2011

Хорошо. Я нашел решение. Подробности смотрите здесь , но краткий ответ заключается в том, что мне нужно было добавить два jar-файла в classpath: imqjmsra.jar и imqbroker.jar. Они были доступны внутри rar с именем imqjmsra.rar, который можно найти в каталоге mq Glassfish. Мне пришлось извлечь две банки из этого рара!

1 голос
/ 13 апреля 2011

Вот полный список клиентских банок для Glassfish 3:

auto-depends.jar
deployment-common.jar
glassfish-corba-internal-api.jar    
internal-api.jar
management-api.jar
bean-validator.jar
dol.jar
glassfish-corba-newtimer.jar        
javax.ejb.jar
orb-connector.jar
common-util.jar
ejb-container.jar
glassfish-corba-omgapi.jar      
javax.jms.jar
orb-iiop.jar
config-api.jar
ejb.security.jar
glassfish-corba-orb.jar
javax.resource.jar
security.jar
config-types.jar
glassfish-api.jar
glassfish-corba-orbgeneric.jar      
javax.servlet.jar
ssl-impl.jar
config.jar
glassfish-corba-asm.jar
glassfish-naming.jar
javax.transaction.jar
transaction-internal-api.jar
connectors-internal-api.jar     
glassfish-corba-codegen.jar     
gmbal.jar
jta.jar
container-common.jar
glassfish-corba-csiv2-idl.jar       
hk2-core.jar
kernel.jar
0 голосов
/ 08 июля 2013

Как упомянуто в примечаниях Ивана А Кризсана для сертификации EJB, и в зависимости от версии Glassfish этого должно быть достаточно:

  • GlassFish 3 (и GlassFish 4 тоже, я только что проверил): $ GLASSFISH_HOME / lib / gf-client.jar
  • GlassFish 2: $ GLASSFISH_HOME / lib / appserv-rt.jar и $ APS_HOME / lib / javaee.jar
...