我是as400-java集成的新手。 我创建了一个Web应用程序,它在后端调用Java程序,后者又通过jt400 api调用AS400。 我想保留一个注销按钮/超链接,它将注销当前用户。 我观察到的是,当用户第一次登录时,除非我重新启动我的Web应用程序服务器(Tomcat),否则不会发生注销[当然每次都无法完成! ],即使我这样做了 在我的java程序中:
finally{
as400System.disconnectAllServices();
}
当我完成后,仍然是该用户登录,下次我点击我的网络应用程序网址。
我试图打电话给"签收"通过一个单独的程序命令AS400,但该命令调用返回" false":
CommandCall command = new CommandCall(as400);
boolean result= command.run("signoff"); ....
System.out.println(result);...
AS400Message[] messageList = command.getMessageList();
for (AS400Message message : messageList){
System.out.println(message.getText());
}
上面的代码打印出来:
false..
Command SIGNOFF not allowed in this setting.
Errors occurred in command.
在这种情况下如何处理签名的任何建议?
答案 0 :(得分:1)
Javdocs说disconnectAllServices()
断开所有服务。将关闭与此对象关联的所有套接字连接。 登录信息不会更改,连接属性仍会冻结。
我想你想要resetAllServices()
断开所有服务,并清除登录信息。此方法的目的是为此AS400对象“擦除平板清理”,以便随后重置连接属性。
答案 1 :(得分:0)
更新:我想出了它的一个步骤。 jt400 api的默认登录提示附带一个复选框"默认ID" 。如果我没有检查它,当我在我的java注销代码中取消com.ibm.as400.access.AS400对象时,它会要求重新登录。那就好了。
但仍然存在问题,当选中该复选框时,我必须重新启动Web服务器。