AS400从Java程序注销

时间:2016-07-18 13:32:09

标签: java ibm-midrange

我是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.

在这种情况下如何处理签名的任何建议?

2 个答案:

答案 0 :(得分:1)

JavdocsdisconnectAllServices()

  

断开所有服务。将关闭与此对象关联的所有套接字连接。 登录信息不会更改,连接属性仍会冻结。

我想你想要resetAllServices()

  

断开所有服务,并清除登录信息。此方法的目的是为此AS400对象“擦除平板清理”,以便随后重置连接属性。

答案 1 :(得分:0)

更新:我想出了它的一个步骤。 jt400 api的默认登录提示附带一个复选框"默认ID" 。如果我没有检查它,当我在我的java注销代码中取消com.ibm.as400.access.AS400对象时,它会要求重新登录。那就好了。

但仍然存在问题,当选中该复选框时,我必须重新启动Web服务器。