【问题标题】:IBM Clearcase CM API Provider Instantiation throws Exception "Cannot instantiate protocol provider: cqjniproxy (Not found in java.library.path)"IBM Clearcase CM API 提供程序实例化抛出异常“无法实例化协议提供程序:cqjniproxy(未在 java.library.path 中找到)”
【发布时间】:2014-09-05 15:13:13
【问题描述】:

我最近从我的桌面开始使用 CM API 编写测试客户端。 在尝试检索提供程序时,它会引发此异常:

代码行

StpProvider provider = (StpProvider) ProviderFactory.createProvider(CcProvider.PROVIDER_CLASS, callback);

PROVIDER_CLASS 是“com.ibm.rational.stp.client.internal.core.StpProviderImpl”

例外

...CRVAP0055E(内部错误):尝试实例化域子提供程序“com.ibm.rational.stp.client.internal.cq.CqJniSubprovider”引发异常。有关详细信息,请参阅嵌套异常。 ...CRVAP0049E(内部错误):无法实例化协议提供程序:cqjniproxy(未在 java.library.path 中找到) ...java.lang.reflect.InvocationTargetException: 在 com.ibm.rational.stp.cs.internal.util.StpExceptionImpl.realException(StpExceptionImpl.java:493) 在 com.ibm.rational.stp.cs.internal.util.StpExceptionImpl.(StpExceptionImpl.java:572) 在 com.ibm.rational.stp.cs.internal.util.StpExceptionImpl.(StpExceptionImpl.java:538) 在 com.ibm.rational.stp.client.internal.core.CoreProvider.(CoreProvider.java:2879) 在 com.ibm.rational.stp.client.internal.core.CoreProvider.(CoreProvider.java:2772) 在 com.ibm.rational.stp.client.internal.core.StpProviderImpl.(StpProviderImpl.java:36) 在 com.ibm.rational.stp.client.internal.core.StpProviderImpl.(StpProviderImpl.java:45) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:56) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:39) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:527) 在 javax.wvcm.ProviderFactory.createProvider(ProviderFactory.java:93) 在 web.mrs.cmapi.Main.getCCProvider(Main.java:53) 在 web.mrs.cmapi.Main.main(Main.java:31)

我在 IBM 网站上发现很少有页面提到是否有任何其他资源(如 BIRT 或 CQ 报告服务器)已经在使用 CM API 提供程序,那么我会得到这个异常,但由于我目前正在我的桌面上对其进行测试,所以没有这样的实例正在运行(除非我遗漏了什么)。

以下链接包含此信息:

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014430264

http://www-01.ibm.com/support/docview.wss?uid=swg21577252

我们当前安装的 clearcase/Clearquest 版本是 8.0.0.10

我非常感谢任何人可以提供的所有帮助,因为这对于解决我们目前在命令提示符下使用 cleartool 面临的几个问题非常有用。

【问题讨论】:

    标签: clearcase instantiation java.library.path


    【解决方案1】:

    您提到的技术说明指出:

    CRVAP0049E 无法实例化协议提供者:cqjniproxy(未在 java.library.path 中找到)

    当两个不同的 Web 应用程序尝试使用变更管理 (CM) API 的 JNI 适配器访问 ClearQuest 时,会发生此错误

    例如,如果 BIRT 和 ClearQuest Report Server for Crystal Reports 部署到同一个 Web 服务器,则只有一个服务器应用程序可以运行使用变更管理 API JNI 数据源的报告(以先连接者为准,直到配置文件重新启动)。

    在您的情况下,您可能需要以in this thread 的身份安装 ClearQuest 适配器和 ClearQuest 客户端库:请参阅“Creating Rational ClearQuest and Rational RequisitePro shared libraries

    也许 ClearTeam 服务器中有一个选项可以指定您根本不使用(也不需要)ClearQuest。

    作为OP Karteek Dasari cmets below

    根本原因 [是] 需要为 Clearcase 客户端安装额外的“CCRC WAN 服务器”,它提供了提供程序实例化所需的额外 jar。
    此外,提供程序类将是 NETWORK_PROVIDER_CLASS

    见:

    ClearCase 8:CCRC 视图

    ProviderFactory.createProvider(CcProvider.NETWORK_PROVIDER_CLASS , callback); 
    

    ClearCase 8:动态视图

    ProviderFactory.createProvider(CcProvider.LOCAL_PROVIDER_CLASS , callback); 
    

    【讨论】:

    • 感谢您的回答。我会试试这个。
    • 我发现根本原因是需要为 Clearcase 客户端安装额外的“CCRC WAN 服务器”,它提供了提供程序实例化所需的额外 jar。此外,提供程序类将是 NETWORK_PROVIDER_CLASS。
    • @KarteekDasari 太棒了!为了提高知名度,我已将您的结论包含在答案中。我还添加了 IBM 文档和技术说明来说明这些参数。
    猜你喜欢
    • 2020-01-17
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多