現在、部品に関する情報を取得するために Java Web サービス (Windchill の Info*Engine ドキュメントに記載) を使用する可能性を調査しています。Windchill バージョン 10.1 を使用しています。
.Net アプリケーションで使用する Web サービスを正常にデプロイしました。Windchill 情報にアクセスしようとしない呼び出しは正常に完了します。しかし、部品情報を取得しようとすると、wt.method.AuthenticationException が発生します。
以下は、webService 内で実行されるコードです (Web サービス メソッドは、このメソッドを呼び出すだけです)。
public static String GetOnePart(String partNumber) throws WTException
{
WTPart part=null;
RemoteMethodServer server = RemoteMethodServer.getDefault();
server.setUserName("theUsername");
server.setPassword("thePassword");
try {
QuerySpec qspec= new QuerySpec(WTPart.class);
qspec.appendWhere(new SearchCondition(WTPart.class,WTPart.NUMBER,SearchCondition.LIKE,partNumber),new int[]{0,1});
// This fails.
QueryResult qr=PersistenceHelper.manager.find((StatementSpec)qspec);
while(qr.hasMoreElements())
{
part=(WTPart) qr.nextElement();
partName = part.getName();
}
} catch (AuthenticationException e) {
// Exception caught here.
partName = e.toString();
}
return partName;
}
このコードは、サーバーにデプロイされたコマンド ライン アプリケーションでは機能しますが、Web サービス内から実行すると wt.method.AuthenticationException で失敗します。Web サービスは MethodServer 内にあるため、RemoteMethodServer の使用は私がすべきことではないため、失敗したと感じています。
とにかく、これを行う方法を知っている人がいれば、それは素晴らしいことです。おまけの質問は、Web サービス内からログを記録する方法と、このログを構成する方法です。
ありがとうございました。