从jtopen创建spooledFile

时间:2017-03-24 16:06:10

标签: java ibm-midrange jt400

我尝试使用库jt400创建一个假脱机文件。

我已经完成了一个程序,该程序列出了出口的假脱机没有问题,但是当我想创建SpooledFile对象时,我的as400给我一个错误

  

com.ibm.as400.access.ServerStartupException:无法传递   连接到服务器作业。服务器作业超时。

我不明白为什么。 os400上有关于安全性的事情。 谢谢你的帮助。

2 个答案:

答案 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);

这个命令不起作用,我不知道为什么。