/**** /* Se debe crear un archivo donde se ponga la interface de las clases /************ import java.rmi.*; public interface iSeriesService extends Remote { // Función que envia datos al AS/400 en Forma de Trama public String enviarDatos(String pServidor, String pUsuario, String pPassword, String pLibreria, String pTipoProg, String pPrograma, String pTrama) throws RemoteException; } /********** /* este es el archivo que implementa la clase /************************************** import java.rmi.*; import java.util.Vector; import com.ibm.as400.access.*; /** * * @author EDGO */ public class iSeries implements iSeriesService { static private AS400 servidor[]; private ProgramCall cmd; private String sServidor=nombre de Servidor; private String sUsuario=Usuario de Conexion; private String sPassword=Clave de Conexion; private int nNumConex=Numero de Conexiones con AS/400; /** * Método que envia una Cadena de Datos al Programa Manejador Devuelve * una cadena con el resultado * * @param pServidor Nombre del Servidor iSeries * @param pUsuario Uusario Atorizado * @param pPassword Clave de Accesso * @param pLibreria Nombre de la Libreria o Biblioteca * @param pTipoProg Tipo de Programa Nativo iSeires * @param pPrograma Nombre del Programa * @param pTrama Cadena de Caracteres * @throws RemoteException * @return String */ public String enviarDatos(String pServidor, String pUsuario, String pPassword, String pLibreria, String pTipoProg, String pPrograma, String pTrama) throws RemoteException { String sRpta = \"\"; int nConexion; if (servidor == null) { creaConexion(); } //crea un aleatorio para enviar la conexion nConexion = (int) (Math.random() * nNumConex); String sNombre = servidor[nConexion].getSystemName(); sNombre = sNombre.toUpperCase(); if (sNombre.compareTo(pServidor) == 0) { try { String c = \"/QSYS.LIB/\" + pLibreria + \".LIB/\" + pPrograma + \".\" + pTipoProg; ProgramParameter[] parmList = new ProgramParameter[1]; AS400Text parm1 = new AS400Text(39999); parmList[0] = new ProgramParameter(ProgramParameter.PASS_BY_REFERENCE, parm1.toBytes(pTrama), 39999); ProgramCall cmd = new ProgramCall(servidor[nConexion], c, parmList); try { if (cmd.run() != true) { // Reporte de las fallas System.out.println(\"Programa ha fallado!\"); // muestra mensajes de error AS400Message[] messagelist = cmd.getMessageList(); for (int i = 0; i < messagelist.length; ++i) { System.out.println(messagelist[i]); } } else { AS400Text text = new AS400Text(39999); sRpta = (String) text.toObject(parmList[0].getOutputData()); sRpta.trim(); parmList = null; cmd = null; } } catch (Exception ex) { sRpta = \"Error:\" + ex.getMessage(); ex.printStackTrace(); } } catch (Exception ex1) { sRpta = \"Error:\" + ex1.getMessage(); ex1.printStackTrace(); } } return sRpta; } private void creaConexion() { int i; servidor = new AS400[nNumConex]; for (i = 0; i < nNumConex; i++) { servidor[i] = new AS400(sServidor, sUsuario, sPassword); } } }