我尝试使用库jt400创建一个假脱机文件。
我已经完成了一个程序,该程序列出了出口的假脱机没有问题,但是当我想创建SpooledFile对象时,我的as400给我一个错误
com.ibm.as400.access.ServerStartupException:无法传递 连接到服务器作业。服务器作业超时。
我不明白为什么。 os400上有关于安全性的事情。 谢谢你的帮助。
答案 0 :(得分:0)
查看堆栈跟踪会很有帮助。 JT400可能需要PRINT主机服务来进行假脱机文件操作。在IBM i上,如果不使用wrkjob QNPSERVD
启动,请检查QNPSERVD作业是否存在(STRHOSTSVR *netprt
)。还要检查是否可以从Java服务器访问打印服务器端口(默认为8474用于纯连接,9474用于加密)。
答案 1 :(得分:0)
我看到主机服务器 enter image description here
拥有权利 enter image description here
它是运行此代码的远程客户端系统(tomcat)
@Override
public void createSpooledFile(String nomOutQueue, InputStream in)
throws AS400Exception, AS400SecurityException,
ErrorCompletingRequestException, InterruptedException, IOException {
SpooledFile spooledFile = null;
try
{
String chaineOutqueue=new String("/QSYS.LIB/QUSRSYS.LIB/WEBSERV.OUTQ");
OutputQueue outputQueue =new OutputQueue(aS400silver, chaineOutqueue );
byte[] buf = new byte[2048];
int bytesRead;
SpooledFileOutputStream out;
OutputQueue outq = new OutputQueue(aS400silver, chaineOutqueue);
PrintParameterList parms = new PrintParameterList();
// create a PrintParameterList with the values that we want
// to override from the default printer file...we will override
// the output queue and the copies value.
parms.setParameter(PrintObject.ATTR_COPIES, 4);
if (outputQueue != null)
{
parms.setParameter(PrintObject.ATTR_OUTPUT_QUEUE, outputQueue.getPath());
}
out = new SpooledFileOutputStream(aS400silver,null,null,outq);
这个命令不起作用,我不知道为什么。