3

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 Quality Center OTA は、これInitConnectionExが私が興味を持っている方法であることを明らかにしています。しかし、私はどこかで一歩を踏み外したような気がします。どんな助けでも大歓迎です。

4

2 に答える 2

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')
}
于 2011-11-22T07:47:57.930 に答える
2

グーグルで多くの時間を費やした後、問題の修正に至りました。管理者権限で SoapUI を起動していなかったため、エラーが発生していました。

実行中のアプリケーションに管理者権限がない場合、必要な ActiveXObjects を作成できないようです。ActiveXObject をインスタンス化しようとすると、エラーは発生しませんが、TDConnection オブジェクトが作成されていないため、InitConnectionEx が存在しませんでした。

管理者権限でSoapUIを起動したら接続できました。

この記事を読んで思いつきました。

于 2011-11-22T21:08:34.300 に答える