操作
バグ #4350
未完了windowsでマスターマネージャーからjavaのRTCを起動できない。
開始日:
2017/10/26
期日:
進捗率:
100%
予定工数:
説明
rtcd_java をマスターマネージャーとして起動して、RTSEから JavaのRTCを「create」で生成すると「FAILED create of target RTC.」が表示されて、RTCが起動しない。
- rtcd_javaは管理者コマンドプロンプトで起動
- 起動フォルダは、C:\Program Files (x86)\OpenRTM-aist\1.2.0
- コンフィグファイルは、C:\Program Files (x86)\OpenRTM-aist\1.2.0\bin\rtcd_java.conf を使用。
c:\Program Files (x86)\OpenRTM-aist\1.2.0>rtcd_java -d -f .\bin\rtcd_java.conf
- 起動するRTCは、ConsileInコンポーネント。
- モジュールロードパスはコンフィグファイルで設定
manager.modules.load_path:C:\\Program Files (x86)\\OpenRTM-aist\\1.2.0\\Components\\Java\\RTMExamples\\SimpleIO
katami さんが7年以上前に更新
調査¶
スレーブマネージャの get_configuration() で マネージャコンフィグレーション(Properties)を_SDOPackage.NameValue[]で返しているが、そのコピー処理内(NVUtil.copyFromProperties)で例外が発生している。
NVUtil.copyFromPropertiesでは、Propertiesの内容を_SDOPackage.NameValue[]へコピーしているが、"config_file"をキーにしてPropertiesから値を取得する際にnullのため例外が発生している。
原因¶
rtcd_javaを実行しているフォルダ(C:\Program Files (x86)\OpenRTM-aist\1.2.0)にコンフィグレーションファイルがないため、"config_file"の値がnullになっている。
"config_file"には、ManagerConfigクラスでコンフィグファイル名(メンバー変数)が格納されるが、その変数の初期化されていないため、コンフィグレーションファイルが見つからないときは、初期化されていないメンバー変数が設定され、"config_file"をキーにしてPropertiesから値を取得する際にnullのため例外が発生する。
対策¶
ManagerConfigクラスでコンフィグファイル名(メンバー変数)の初期化を追加した。
操作