1º) Creamos un proyecto Java donde residirá el punto de entrada al WS.
2º) Seleccionamos en el proyecto con New => Web Service Client and Proxy.
3º) Indicamos la URL del WSDL del servicio e indicamos que queremos copiar el WSDL en nuestro proyecto.

4º) Dejamos las opciones por defecto hasta "Policy" donde debemos marcar la política del WS (tipo de autenticación y seguridad). En nuestro caso es la oracle/wss_http_
5º) Observamos la estructura de ficheros que se han creado. En la clase nameServicioPortClient se muestra un ejemplo de como se crea el servicio:
public static void main(String[] args) {
GlanceVolcadoBindQSService glanceVolcadoBindQSService = new GlanceVolcadoBindQSService();
// Configure security feature
SecurityPoliciesFeature securityFeatures = new SecurityPoliciesFeature(new String[] {
"oracle/wss_http_token_client_policy" });
GlanceVolcadoPtt glanceVolcadoPtt = glanceVolcadoBindQSService.getGlanceVolcadoBindQSPort(securityFeatures);
// Add your code to call the desired methods.
}
6º) Creamos un paquete aparte donde crearemos propiamente el servicio:
public int getGlanceVolcado(String cdIdenti, int pendientes, Date fecha) {
System.out.println("AnaliticasOperacionesServiceImpl::Llamada servicio...");
int respuesta = -1;
GlanceVolcadoBindQSService glanceVolcadoBindQSService = new GlanceVolcadoBindQSService();
// Configure security feature
SecurityPoliciesFeature securityFeatures = new SecurityPoliciesFeature(new String[] {
"oracle/wss_http_token_client_policy" });
// Add your code to call the desired methods.
//Objecto que sirve el servicio
GlanceVolcadoPtt glanceVolcadoPtt = glanceVolcadoBindQSService.getGlanceVolcadoBindQSPort(securityFeatures);
try {
//Cogemos los parámetros de la request del contexto, en este caso el usuario y contraseña de la //policy
Map<String, Object> reqContext = ((BindingProvider) glanceVolcadoPtt).getRequestContext();
reqContext.put(BindingProvider.USERNAME_PROPERTY, AnaliticasOperacionesConstants.wss_http_token_client_policy_username);
reqContext.put(BindingProvider.PASSWORD_PROPERTY, AnaliticasOperacionesConstants.wss_http_token_client_policy_pwd);
//Creamos un objecto de tipo solicitud para pasar los parámetros necesarios
VolcadoRequestType request = new VolcadoRequestType();
request.setCdidenti(cdIdenti);
DatatypeFactory df = DatatypeFactory.newInstance();
GregorianCalendar gc = new GregorianCalendar();
gc.setTimeInMillis(fecha.getTime());
request.setFechaIni(df.newXMLGregorianCalendar(gc));
request.setPendientes(pendientes);
System.out.println("AnaliticasOperacionesServiceImpl::getGlanceVolcado::cdIdenti::"+cdIdenti);
System.out.println("AnaliticasOperacionesServiceImpl::getGlanceVolcado::pendientes::"+pendientes);
System.out.println("AnaliticasOperacionesServiceImpl::getGlanceVolcado::fecha::"+fecha);
//Hacemos la llamada al servicio y recogemos la respuesta
VolcadoResponseType response = glanceVolcadoPtt.glanceVolcado(request);
if (response != null) {
//El resultado de la llamada al servicio
respuesta = response.getResult();
System.out.println("AnaliticasOperacionesServiceImpl::getGlanceVolcado::Respuesta::"+response.getResult());
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("AnaliticasOperacionesServiceImpl::Fin llamada servicio");
return respuesta;
}
6º) En nuestro proyecto ViewController, primeramente en "Dependencies" debemos añadir el build output del proyecto del servicio para poder utilizar sus clases.
7º) Creamos una clase Bean que contendrá la llamada al método del servicio de la clase creada anteriormente:
public class PruebaBean {
public PruebaBean() {
super();
}
public int getGlanceVolcado(String cdIdenti, int pendientes, Date fecha){
AnaliticasOperacionesServiceImpl impl = new AnaliticasOperacionesServiceImpl();
return impl.getGlanceVolcado(cdIdenti, pendientes, fecha);
}
}
8º) Creamos un DataControl de la clase creada, mediante botón derecho en la clase "Create Data
Control":
9º) Ahora el método puede ser accesible desde cualquier taskflow y realizar la llamada al servicio
No hay comentarios:
Publicar un comentario