2017-03-24 3 views
0

Je tente de créer un fichier spool avec la bibliothèque jt400.create spooledFile à partir de jtopen

Je l'ai fait le programme qui liste la bobine dans un outqueue sans problème, mais quand je veux créer l'objet SpooledFile, mon AS400 me renvoie une erreur

com.ibm.as400.access.ServerStartupException: Impossible de passer la connexion au travail du serveur. Le travail du serveur a expiré.

Je ne comprends pas pourquoi. Y at-il quelque chose à faire sur os400 sur la sécurité. Merci de m'aider.

+0

Exécutez-vous sur le serveur IBM i ou exécute-t-il un système client distant? – user2338816

+0

JT400 nécessite de parler à plusieurs ports réseau sur l'hôte qui doit être accessible. –

Répondre

0

Il serait utile de voir la trace de la pile. JT400 peut nécessiter le service d'hôte PRINT pour les opérations de fichier spoule. Sur IBM i, vérifiez si le travail QNPSERVD est présent (wrkjob QNPSERVD) si vous n'utilisez pas STRHOSTSVR *netprt pour démarrer. Vérifiez également que le port du serveur d'impression (par défaut 8474 pour la connexion standard et 9474 pour le cryptage) est accessible depuis votre serveur Java.

0

Je vois le serveur hôte enter image description here

avec les droits enter image description here

Il est un système client à distance (tomcat) qui exécuter ce code

@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); 

cette commande ne fonctionne pas et je ne sais pas pourquoi.