2011-11-22 1 views
3

Groovy를 Jacob COM 래퍼와 함께 사용하여 HP Quality Center와 인터페이스를 시도하고 있지만 문제가 있습니다.Groovy와 Jacob을 사용하여 HP Quality Center 확장

나는 다음과 같은 코드를 실행하려고하면 :

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

은 HP 품질 센터 OTA가 InitConnectionEx 나는에 관심이하는 방법입니다 분명히 있다고한다 :

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) 

나는이 예외가를 ; 그러나 나는 어딘가에 한 걸음도 놓치고있는 것처럼 느낍니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변

2

많은 Google 시간이 지나면 문제가 해결되었습니다. 내가 관리자 권한으로 SoapUI를 시작하지 않았기 때문에 오류가 발생했습니다.

실행중인 응용 프로그램에 관리자 권한이없는 경우 필요한 ActiveXObject를 만들 수 없습니다. ActiveXObject의 인스턴스를 만들려고 할 때 오류가 발생하지 않지만 TDConnection 개체가 만들어지지 않아 InitConnectionEx가 존재하지 않습니다.

관리자 권한으로 SoapUI를 시작한 후 연결할 수 있습니다.

나는 article을 읽는 것으로부터 아이디어를 얻었다.

2

이전에 Quality Center 및 해당 API로 작업하는 데는 의문의 여지가있었습니다. 나는 Jacob을 직접 사용하지 않았지만 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') 
} 
+0

Christoph에게 감사드립니다. 나는 Scriptom의 문법이 맨손의 Jacob 인터페이스를 정말 좋아한다. 그러나, 위의 코드 예제를 모두 설치하고 실행 한 후에도 여전히 : com.jacob.com.ComFailException : 이름을 dispid에 매핑 할 수 없습니다 : InitConnectionEx' 오류가 발생합니다. 어떤 충고? –