尝试使用JT400.jar中的IFSFile对象创建IFSFile时,我遇到了一些麻烦。我面临的问题是当BATCH用户调用调用JAVA的进程时(没有启用AS400机器的登录)。
给出例外
密码为*无。:XXXXXX com.ibm.as400.access.AS400SecurityException:密码为* NONE。:XXXXXX at com.ibm.as400.access.AS400ImplRemote.returnSecurityException(AS400ImplRemote.java:2219)at com.ibm.as400。 access.CurrentUser.getUserInfo(CurrentUser.java:79)at com.ibm.as400.access.AS400ImplRemote.getPassword(AS400ImplRemote.java:1411)at com.ibm.as400.access.AS400ImplRemote.signon(AS400ImplRemote.java:2507) at com.ibm.as400.access.AS400.sendSignonRequest(AS400.java:3351)at com.ibm.as400.access.AS400.promptSignon(AS400.java:2938)at com.ibm.as400.access.AS400.signon (AS400.java:4246)com.ibm.as400.access.AS400.connectService(AS400.java:1336)位于com.ibm的com.ibm.as400.access.IFSFile.chooseImpl(IFSFile.java:630)。 as400.access.IFSFile.copyTo(IFSFile.java:729)at com.ibm.as400.access.IFSFile.copyTo(IFSFile.java:699)
使用的代码:
AS400 as400 = new AS400("localhost");
//Obtain the template path
String templatePath ="/HOME/XXX/auth.txt";
IFSFile templateAuth = new IFSFile(as400,templatePath);
templateAuth.copyTo(fileXML + ".xml");
我检查了一些已打开的线程但没有获得任何结果。 (在下面评论的帖子中找到)
JT400 Read File From IFS with user without password
Java IFSFile on Iseries testing over PC
当BATCH用户调用该进程时,可以选择生成IFSFile(请注意,当启用了登录的用户调用该进程时,该进程按预期工作)
我需要类似于创建JDBCAppender时所做的事情,JDBCAppender对象允许setUser(null)和setPassword(null)使批处理用户能够写入表。
谢谢大家!
我最近在尝试使用CommandCall时遇到了类似的问题,而在PASSWORD的配置文件下运行是* NONE。我(最终)通过在/QIBM/ProdData/Java400/jt400ntv.jar(恰好是符号链接)上使用本机Java工具箱来解决它。我没有进行任何代码更改:
AS400 as400 = new AS400();
CommandCall cc = new CommandCall(as400);
String wrkenvvar_cmd = MessageFormat.format("ADDENVVAR ENVVAR('JAVA_HOME') VALUE(''{0}'') REPLACE(*YES)",path);
boolean ok = cc.run(wrkenvvar_cmd);
我希望有所帮助。