将远程JMS客户端连接到GlassFish 3

7
我正在尝试从独立的远程客户端连接到GlassFish 3的JMS服务。然而,我遇到了一个java.lang.ClassNotFoundException: com.sun.messaging.jms.ra.ResourceAdapter的错误。有什么解决办法吗?
我的设置如下:
- Glassfish 3 JMS Service处于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中)已添加到独立应用程序的类路径中。还尝试添加其他位于modules目录中的jar文件(如jms-core.jar),但仍然出现相同的ClassNotFoundException。
希望能得到帮助,谢谢。
4个回答

3

不要使用您可能需要的所有个别Glassfish jar文件(例如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

好的,我找到了解决方案。详细信息请参见此处,但简短的答案是我需要将两个jar文件添加到类路径中:imqjmsra.jar和imqbroker.jar。这些文件可以在名为imqjmsra.rar的RAR文件中找到,该文件位于glassfish的mq目录下。我必须从此rar文件中提取这两个jar文件!


此答案的链接已损坏。 - powder366

1

这是 GlassFish 3 的客户端 jar 包完整列表:

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

根据 Ivan A Krizsan 在 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接