package com.fitbank.uci.webservice.client;

import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

/**
 * Cliente basico para comunicacion con un WebService FIT
 *
 * @author SoftwareHouse S.A.
 */
public class WSClientBasic {

    public static void main(String[] args) {
        try {
            //url del servicio que vamos a invocar
            String endpointURL = "http://127.0.0.1:8180/UCIWS/services/UCIWSBean?wsdl";

            //creamos una llamada remota
            Service service = new Service();
            Call call = (Call) service.createCall();

            //seteamos el url
            call.setTargetEndpointAddress(endpointURL);

            //nombre del metodo a invocar
            call.setOperationName("processXML");

            //nombre del parametro, tipo de dato 
            //y si es parametro de IN,OUT o INOUT
            call.addParameter("pParam", XMLType.XSD_STRING, ParameterMode.IN);

            //tipo de dato de retorno
            call.setReturnType(XMLType.XSD_STRING);

            String detail = "<FITBANK><GRQ><USR>HECCER</USR><IDM/><TER/><SID>WSHomeBanking0001</SID><ROL/><NVS/><PWD>3A1B975F6961D36D</PWD><NPW/><IPA>192.168.3.182</IPA><TIP>SIG</TIP><SUB>01</SUB><TRN>0000</TRN><VER>01</VER><ARE/><MSG>-2d45677ea13a4be472a1a-360b</MSG><REV>0</REV></GRQ><DET><CTL><CAM name=\"_CLOSE_ACTIVE_SESSIONS\" pk=\"0\"><VAL>0</VAL></CAM></CTL></DET><GRS cod=\"0\"><MSGU></MSGU><MSGP></MSGP></GRS></FITBANK>";

            //argumentos a pasar
            Object[] params = { detail };

            //invocamos el metodo remoto
            String ret = (String) call.invoke(params);

            //escribimos la respuesta obtenida
            System.out.println(ret);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}
