【问题标题】:javax.naming.NoInitialContextException: Unable to find the InitialContextFactory com.tibco.tibjms.naming.TibjmsInitialContextFactoryjavax.naming.NoInitialContextException:无法找到 InitialContextFactory com.tibco.tibjms.naming.TibjmsInitialContextFactory
【发布时间】:2018-05-01 06:00:22
【问题描述】:

我开发了 TIBCO EMS 独立客户端,用于 Adob​​e Livecycle 向 tibco 队列发送请求。出现以下错误。

报错,无法加载 InitialContextFactory。

下面的错误快照。

javax.naming.NoInitialContextException: Unable to find the InitialContextFactory com.tibco.tibjms.naming.TibjmsInitialContextFactory.
org.apache.aries.jndi.ContextHelper.getInitialContext(ContextHelper.java:149)
org.apache.aries.jndi.OSGiInitialContextFactoryBuilder.getInitialContext(OSGiInitialContextFactoryBuilder.java:50)
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:696)
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:319)
javax.naming.InitialContext.init(InitialContext.java:254)
javax.naming.InitialContext.<init>(InitialContext.java:228)
com.citigroup.gsu.edelivery.engine.utils.TibcoEMS.ServiceLocator.getInstance(ServiceLocator.java:34)
com.citigroup.gsu.edelivery.engine.utils.TibcoEMS.TibcoEMSClient.SendTibcoEMSMessage(TibcoEMSClient.java:36)

代码 sn-p 详情如下。

TibcoEMSClient.java:36

serviceLocator = ServiceLocator.getInstance(user,password, providerUrl);

ServiceLocator.java:34

env.put(Context.INITIAL_CONTEXT_FACTORY, providerContextFactory);
env.put(Context.PROVIDER_URL, providerUrl);
ic = new InitialContext(env);

请帮忙。

【问题讨论】:

    标签: jms websphere adobe tibco tibco-ems


    【解决方案1】:

    看起来像类路径问题。您需要将 tibjms.jar 添加到项目类路径或应用程序服务器类路径。您可以从 tibco 安装文件夹中获取 Jar 文件,例如 C:\tibco\ems\6.0\lib 或从 tibco 网站下载。如果您使用的是 ssl,您可能还需要 tibcrypt.jar

    如何将 tibjms.jar 添加到类路径取决于您的应用程序服务器。 对于 WebSphere,本文档可能会有所帮助 https://docs.tibco.com/pub/enterprise_message_service/6.0.1_january_2011/html/tib_ems_integration_guide/wwhelp/wwhimpl/common/html/wwhelp.htm#href=appint.5.17.htm&single=true

    请看步骤:

    将 TIBCO Enterprise Message Service 添加为 JMS 提供者 本节 将 WebSphere 配置为使用 TIBCO Enterprise Message Service 作为 JMS 提供者。

    1. 启动 WebSphere 应用程序服务器。
    2. 启动 WebSphere 管理控制台。
    3. 在 WebSphere 导航窗格中,选择资源 > JMS > JMS 提供程序。
    4. 在内容窗格中,单击“新建”按钮。
    5. 为所需属性输入以下值: 名称 TIBCO 描述 TIBCO 企业消息服务类路径
      EMS_HOME\lib\tibjms.jar 外部初始上下文工厂
      com.tibco.tibjms.naming.TibjmsInitialContextFactory 外部提供者 URL tibjmsnaming://localhost:7222
    6. 点击确定按钮。
    7. 点击应用按钮。

    【讨论】:

    • 我应该在 WebSphere 类路径中指定 tibjms.jar。
    • 是的。您需要项目类路径或 Websphere 类路径中的 jar
    • 您通常不希望将 jars 添加到 WebSphere 的类路径中。如果您将 JMS Provider 添加到 WebSphere,您可以专门为它指定一个类路径。这就是我们过去所做的。
    • @dbreaux 我不是 WebSphere 专家。本文档可能对docs.tibco.com/pub/enterprise_message_service/… 有所帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    相关资源
    最近更新 更多