Расширение HP Quality Center с помощью Groovy и Jacob - PullRequest
3 голосов
/ 22 ноября 2011

Я пытаюсь взаимодействовать с HP Quality Center, используя Groovy с оболочкой Jacob COM, но у меня возникают проблемы.

Когда я пытаюсь запустить следующий код:

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 Quality Center дает понять, что InitConnectionEx - это метод, который меня интересует;однако я чувствую, что где-то пропускаю шаг.Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

После долгого времени в Google я пришел к решению проблемы. Ошибка произошла, потому что я не запускал SoapUI с правами администратора.

Очевидно, что если приложение, которое вы запускаете, не имеет прав администратора, то оно не может создать необходимые объекты ActiveXObject. Когда я пытался создать экземпляр ActiveXObject, я не получал никакой ошибки, но объект TDConnection не был создан, и поэтому InitConnectionEx не присутствовал.

После запуска SoapUI с правами администратора я могу подключиться.

Мне пришла в голову мысль прочитать эту статью .

2 голосов
/ 22 ноября 2011

Мне некогда доставляло сомнительное удовольствие работать с Quality Center и его API. Я не использовал Джейкоба напрямую, но модуль Groovy Scriptom , который делает сценарии 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')
}
...