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

将远程JMS客户端连接到GlassFish 3,glassfish,jms,remote-access,Glassfish,Jms,Remote Access,我正在尝试从一个独立的远程客户端连接到GlassFish3的JMS服务。但是,我得到了一个java.lang.ClassNotFoundException:com.sun.messaging.jms.ra.ResourceAdapter。有没有办法解决这个问题 以下是我目前的设置: 本地模式下的Glassfish 3 JMS服务(我假设嵌入式模式在这种情况下不起作用,因为它绕过了网络堆栈) JNDI属性指定如下: java.naming.factory.initial=com.sun.ente

我正在尝试从一个独立的远程客户端连接到GlassFish3的JMS服务。但是,我得到了一个java.lang.ClassNotFoundException:com.sun.messaging.jms.ra.ResourceAdapter。有没有办法解决这个问题

以下是我目前的设置:

  • 本地模式下的Glassfish 3 JMS服务(我假设嵌入式模式在这种情况下不起作用,因为它绕过了网络堆栈)

  • 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.JNDistrateFactoryImpl

  • gf-client-module.jar(在GLASSFISH_HOME/modules中)添加到独立应用程序的类路径。还尝试添加模块目录中的其他jar(例如jms core.jar),但仍然得到相同的ClassNotFoundException


任何帮助都将不胜感激。

好的。我找到了解决办法。有关详细信息,请参见,但简短的回答是我需要向类路径添加两个jar:imqjmsra.jar和imqbroker.jar。这些都可以在名为imqjmsra.rar的rar中找到,该rar可以在glassfish的mq目录下找到。我必须从这个rar中取出两个罐子

这是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

与其使用您可能需要的所有Glassfish jar文件(如gf-client-module.jar、imqjmsra.jar和imqbroker.jar),不如使用gf-client.jar文件。可以在$GLASSFISH_HOME/lib上找到它


更多信息请访问。该文档涉及在独立客户端中使用EJB,但解决方案与使用JMS相同。

正如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

此答案的链接已断开。