使用Groovy和Jacob扩展HP质量中心

使用Groovy和Jacob扩展HP质量中心,groovy,jacob,hp-quality-center,Groovy,Jacob,Hp Quality Center,我试图使用Groovy和Jacob COM包装器与HP Quality Center进行接口,但遇到了问题 当我尝试运行以下代码时: import com.jacob.activeX.ActiveXComponent import com.jacob.com.* def QCUrl = "http://qc.example.com/qcbin" def QCcom = new ActiveXComponent("TDApiOle80.TDConnection") def conQC = QCc

我试图使用Groovy和Jacob COM包装器与HP Quality Center进行接口,但遇到了问题

当我尝试运行以下代码时:

import com.jacob.activeX.ActiveXComponent
import com.jacob.com.*

def QCUrl = "http://qc.example.com/qcbin"
def QCcom = new ActiveXComponent("TDApiOle80.TDConnection")
def conQC = QCcom.getObject()
Dispatch.call(conQC, 'InitConnectionEx', QCUrl)
我得到一个例外:

com/jacob.com.ComFailException: Can't map name to dispid: InitConnectionEx

HP质量中心OTA明确表示,
InitConnectionEx
是我感兴趣的方法;然而,我觉得我在某个地方错过了一步。任何帮助都将不胜感激。

我曾经有幸与质量中心及其API合作。我没有直接使用Jacob,而是使用Groovy模块,这使得COM脚本编写更容易接受。使用Scriptom,连接到QC的代码如下所示:

import org.codehaus.groovy.scriptom.*

Scriptom.inApartment
{
    def tdc = new ActiveXObject ('TDApiOle80.TDConnection')
    tdc.InitConnectionEx('http://qc.example.com/qcbin')
    tdc.Login('user', 'password')
    tdc.Connect('domain','project')
}

在谷歌花了很多时间之后,我终于找到了解决问题的办法。发生错误是因为我没有使用管理员权限启动SoapUI

显然,如果您正在运行的应用程序没有管理员权限,那么它就无法创建必要的ActiveXObject。当我尝试实例化一个ActiveXObject时,我不会得到任何错误,但是没有创建TDConnection对象,因此InitConnectionEx不存在

在使用管理员权限启动SoapUI后,我可以连接


我是从阅读这篇文章中得到这个想法的。

谢谢你的回复,克里斯托夫。我非常喜欢Scriptom的语法,而不是简单的Jacob接口。但是,在完成所有设置并运行上述代码示例之后,我仍然收到:
com.jacob.com.ComFailException:cannotmap name to dispid:InitConnectionEx
错误。有什么建议吗?