我是一个400-java集成的新手。我已经创建了一个网络应用程序,它在后端调用Java程序,而后者又通过jt400应用程序接口调用AS400。我想保留一个注销按钮/超链接,它将注销当前用户。我观察到的是,当用户第一次登录时,除非我重新启动Web应用服务器(Tomcat),否则不会注销,当然,这不是每次都能做到的,即使我在java程序中这样做了:
finally{
as400System.disconnectAllServices();
}
当我完成后,当我下一次点击我的web应用url时,该用户仍在登录。
我尝试通过一个单独的程序调用AS400的"signoff“命令,但该命令调用返回"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.
在这种情况下,如何处理签名有什么建议吗?
发布于 2016-07-18 16:54:35
Javdocs说disconnectAllServices()
断开所有服务的连接。与此对象关联的所有套接字连接都将关闭。登录信息不会更改,连接属性保持冻结状态。
我觉得你想要resetAllServices()
将断开所有服务,并清除登录信息。此方法的目的是为此AS400对象“抹去过去”,使连接属性能够随后被重置。
发布于 2016-07-19 13:21:45
更新:我想出了其中的一个步骤。jt400接口的默认登录提示带有一个复选框“默认Id”。如果我没有检查它,当我在我的java注销代码中将com.ibm.as400.access.AS400对象置为空时,它会要求重新登录。所以这没什么。
但问题仍然存在,当复选框被选中时,我必须重新启动web服务器。
https://stackoverflow.com/questions/38438078
复制相似问题