我目前正在研究使用 Java Web 服务(如 Windchill 的 Info*Engine 文档所述)以检索有关部件的信息的可能性。我正在使用 Windchill 10.1 版。
我已经成功部署了一个 Web 服务,我在 .Net 应用程序中使用它。不尝试访问 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。我觉得它失败了,因为使用 RemoteMethodServer 不是我应该做的,因为 Web 服务在 MethodServer 内。
无论如何,如果有人知道如何做到这一点,那就太棒了。一个额外的问题是如何从 Web 服务中进行日志记录,以及如何配置此日志记录。
谢谢你。