2017-07-20 15 views
2

DOORSからJavaでデータを取得したいと考えています。私はJacobを使ってDOORSを走らせることができることを知りましたが、うまくいきません。誰でもJacobを使わなくても解決策を教えてくれますか? 誰かが私にいくつかの特定のコードを与えることができれば感謝します。Javaを使用したDOORSへのアクセス

マイコード:

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

String dxlFile = "" + appDir + "\\dxl\\transferTraceInfoToDOORS.dxl"; 
try { 
     //Try and get the active instance of doors first 
     ComThread.InitMTA(); 
    //ActiveXComponent runningDoors = new ActiveXComponent("DOORS.Application"); 

    ActiveXComponent runningDoors = 
        ActiveXComponent.connectToActiveInstance("DOORS.Application"); 
    if(runningDoors ==null) { 
     JOptionPane.showMessageDialog(null, 
      "This application needs an active running instance of DOORS to work, 
      please fire DOORS up and try again"); 
     System.exit(0); 
    } else { 
     runningDoors.invoke("RunStr", "print(\"Testing\"); 
     oleSetResult(\"Finished\")"); 
     //runningDoors.invoke("RunFile", dxlFile); 
       System.out.println(runningDoors.getPropertyAsString("Result")); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} finally { 
    ComThread.Release(); 
} 

私は「まずExcel.Application」を使用すると、このコードはうまく動作しますが、私はこのメッセージを得たのでDOORSで、それがアクティブなインスタンスを検出しません:「このアプリケーションは、アクティブを必要としますDOORSのインスタンスを実行して、DOORSを起動して再試行してください。 "私を助けてください。私は解決策を見つけることができませんでした。

ありがとうございます。

+0

dxlFileのパスは正しいと確信していますか?例外が発生するか? – reporter

+0

実行中のDOORSのアクティブなインスタンスを検出しないという問題。だから私はこのメッセージを受け取りました: "このアプリケーションは、動作するDOORSのアクティブな実行インスタンスが必要です。DOORSを起動して再試行してください"。 –

答えて

0

JavaとDXLに関する一般的な発言がhttps://www.ibm.com/developerworks/community/forums/html/topic?id=269a1e10-da03-4df4-9eaa-1415e30329cb

で見つけることができます。いくつかのDOORSバージョンのインストーラに問題があり、DOORSは、インストール時にCOMサーバーとして正しく登録に失敗しました。詳細と提案については、https://www.ibm.com/developerworks/community/forums/html/topic?id=c5154866-d0ec-4900-906d-a4c532fc11a4を参照してください。

関連する問題