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

时间:2011-03-30 17:36:32

标签: glassfish jms remote-access

我正在尝试从独立的远程客户端连接到GlassFish 3的JMS服务。但是我得到了一个java.lang.ClassNotFoundException:com.sun.messaging.jms.ra.ResourceAdapter。关于如何解决这个问题的任何想法?

到目前为止,这是我的设置:

  • 在本地模式下的Glassfish 3 JMS服务(我假设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 个答案:

答案 0 :(得分: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的解决方案是相同的。

答案 1 :(得分:2)

确定。我找到了解决方案。有关详细信息,请参阅here,但简短的回答是我需要在类路径中添加两个jar:imqjmsra.jar和imqbroker.jar。这些可以在名为imqjmsra.rar的rar中找到,可以在glassfish的mq目录下找到。我不得不从这个rar中提取出两个罐子!

答案 2 :(得分:1)

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

答案 3 :(得分: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