【问题标题】:Connecting a remote JMS client to GlassFish 3将远程 JMS 客户端连接到 GlassFish 3
【发布时间】:2011-07-26 06:51:27
【问题描述】:

我正在尝试从独立的远程客户端连接到 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。

任何帮助将不胜感激。

【问题讨论】:

    标签: glassfish jms remote-access


    【解决方案1】:

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

    【讨论】:

    • 此答案的链接断开。
    【解决方案2】:

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

    【讨论】:

      【解决方案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 的解决方案是相同的。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2012-07-28
          • 2011-01-29
          • 1970-01-01
          • 1970-01-01
          • 2011-12-24
          • 1970-01-01
          • 1970-01-01
          • 2017-11-22
          • 1970-01-01
          相关资源
          最近更新 更多