【问题标题】:error while connecting to hp Quality Center using com4j使用 com4j 连接到 hp Quality Center 时出错
【发布时间】:2014-09-22 18:06:52
【问题描述】:

我正在尝试在 Win7 上使用 com4j 库连接到 hp qc 版本 10.00

我按照以下步骤操作:

  • 使用 tlbimp.jar 为 OTAClient.dll 创建了包装器
  • 使用 regsvr32 注册 OTAClient.dll
  • 在程序中导入了OTAClient Wrapper。
  • 导入的 com4j 库。

使用以下代码:

import ota.ClassFactory;
import ota.ITDConnection;

public class comqc {

    public static void main(String args[]){

        ITDConnection td = ClassFactory.createTDConnection();   
        td.initConnectionEx("https://qcbt10.saas.hp.com/qcbin/start_a.htm");
        System.out.println(td.connected()); 
        td.connectProjectEx(domain, project, username, password);             
        }
}

得到以下输出:

true
Exception in thread "main" com4j.ComException: 80000482 (Unknown error) : Invalid server response : .\invoke.cpp:517
at com4j.Wrapper.invoke(Wrapper.java:166)
at $Proxy5.connectProjectEx(Unknown Source)
at qctools.main(qctools.java:15)
Caused by: com4j.ComException: 80000482 (Unknown error) : Invalid server response : .\invoke.cpp:517
at com4j.Native.invoke(Native Method)
at com4j.StandardComMethod.invoke(StandardComMethod.java:42)
at com4j.Wrapper$InvocationThunk.call(Wrapper.java:335)
at com4j.Task.invoke(Task.java:51)
at com4j.ComThread.run0(ComThread.java:153)
at com4j.ComThread.run(ComThread.java:134)

出了什么问题?

【问题讨论】:

    标签: java com4j hp-quality-center


    【解决方案1】:

    尝试将https://qcbt10.saas.hp.com/qcbin 作为连接目标。

    OTA参考(OTA_API_Reference.chm)中有很多例子;虽然是用 Basic 编写的,但它们应该很容易翻译成 Java。

    【讨论】:

    • 试过 'qcbt10.saas.hp.com/qcbin' 但 java(tm) 在 'true' 输出后崩溃!
    • “崩溃”是什么意思,和以前一样的例外?根据文档,initConnectionEx 已被弃用(无论这意味着什么),也许尝试Login 然后Connect
    • “崩溃”是指我收到一个弹出窗口,显示“Java(TM) Platform SE 二进制文件已停止工作。”我无法使用 Login 和 Connect 方法,因为 Wrapper OTAClient 中不存在它们,因此无法识别这些方法!我可以使用命令 --System.out.println(td.projectConnected());-- 这意味着项目已连接!
    【解决方案2】:

    我做错的第一件事是我使用的 URL
    "https://qcbt10.saas.hp.com/qcbin/start_a.htm" 而我不得不使用
    https://qcbt10.saas.hp.com/qcbin” 就像上面的答案一样! 但在这样做之后,程序运行了!但 JRE 在运行时崩溃并显示消息“Java(TM) Platform SE 二进制文件已停止工作”.. 这是通过在我的程序中使用“BugFactory”解决的!我不知道它是如何工作的以及为什么它没有更早地工作,但只要我在我的任何陈述中使用 BugFactory,崩溃就停止了! 例如,

    IBugFactory bugfactory = td.bugFactory().queryInterface(IBugFactory.class);
    

    这个声明成功了! 仍然通过使用正确的 URL 解决了实际问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多