La interfaz de servicios web del planificador de trabajos se utiliza para someter un
trabajo por lotes mediante programa y manipularlo.
Antes de empezar
El planificador de trabajos da soporte al acceso programado a sus funciones
mediante una interfaz EJB para aplicaciones Java™ Platform, Enterprise Edition (Java EE) y una interfaz de servicios web para aplicaciones
Java EE y no de Java EE.
El
lenguaje de descripción de servicios web (WSDL) describe la interfaz de servicios web para el
planificador de trabajos.
Desarrolle e instale sus aplicaciones por lotes.
Acerca de esta tarea
En este tema se describe cómo someter un trabajo de
proceso por lotes al planificador de trabajos. Incluye un
ejemplo de código que muestra cómo invocar la interfaz de servicios web
de
planificador de trabajos.
Procedimiento
- Cree un programa para someter el trabajo por lotes.
El ejemplo siguiente muestra cómo invocar la interfaz de servicios web del planificador de trabajos para
someter un trabajo por lotes.
Algunas sentencias están partidas en varias líneas para fines de impresión.
import javax.xml.namespace.QName;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.encoding.XMLType;
Call call = null;
String lrsHostName = "localhost";
String lrsPort = "9080";
private String readXJCL() throws FileNotFoundException, IOException {
// Código para leer el archivo xJCL en una String
}
public void submitJob() {
String endPoint =
"http://"+lrsHostName+":"+lrsPort+"/LongRunningJobSchedulerWebSvcRouter/
services/JobScheduler";
try {
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService(new
QName("http://longrun.websphere.ibm.com", "JobSchedulerService"));
call = (Call) service.createCall();
call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY,
"http://schemas.xmlsoap.org/soap/encoding/");
call.setProperty(Call.OPERATION_STYLE_PROPERTY, "wrapped");
call.setPortTypeName(new
QName("http://longrun.websphere.ibm.com", "JobSchedulerService"));
call.setTargetEndpointAddress(endPoint);
//eliminar todos los parámetros del objeto call
call.removeAllParameters();
call.setReturnType(XMLType.SOAP_STRING, null);
call.addParameter("arg", XMLType.SOAP_STRING, ParameterMode.IN);
call.setOperationName(new QName("http://longrun.websphere.ibm.com","submitJob"));
String xjcl = readXJCL(); // Método para leer el archivo xJCL en una string
call.invoke(new Object[] {xjcl});
} catch (ServiceException se) {
System.out.println("Service Exception: " + se.getMessage());
se.printStackTrace();
} catch (java.rmi.RemoteException re) {
System.out.println("Remote Exception: " + re.getMessage());
re.printStackTrace();
}
}
- Ejecute el programa para someter el trabajo por lotes