156 lines
4.8 KiB
Java
156 lines
4.8 KiB
Java
/*
|
|
* Creado el 13-feb-07
|
|
*
|
|
* Para cambiar la plantilla para este archivo generado vaya a
|
|
* Ventana>Preferencias>Java>Generaci�n de c�digo>C�digo y comentarios
|
|
*/
|
|
package com.tarisan.chipcard.tpvvs.webservicetrayicon;
|
|
|
|
import com.tarisan.chipcard.tpvvs.ws.*;
|
|
import java.io.*;
|
|
import java.net.URL;
|
|
/*import java.sql.Connection;
|
|
import java.sql.DriverManager;
|
|
import java.sql.PreparedStatement;
|
|
import java.sql.SQLException;
|
|
import java.util.Calendar;
|
|
import java.util.Properties;
|
|
|
|
import org.apache.commons.logging.Log;*/
|
|
|
|
import com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.*;
|
|
|
|
import es.chipcard.util.SerClsFecha;
|
|
|
|
/**
|
|
* @author jjrider
|
|
*
|
|
* Para cambiar la plantilla para este comentario de tipo generado vaya a
|
|
* Ventana>Preferencias>Java>Generaci�n de c�digo>C�digo y comentarios
|
|
*/
|
|
public class ClienteServicioWeb extends Thread{
|
|
|
|
private Msg request=null;
|
|
private ControladorRespuestas objController=null;
|
|
private static java.io.File fMessagesDir=null;
|
|
private int secuencial = 0;
|
|
|
|
private URL endPointURL=null;
|
|
|
|
private int nSegundosTimeout=60;
|
|
|
|
|
|
|
|
static{
|
|
//System.setProperty("javax.net.ssl.trustStore","./conf/cacerts");
|
|
///etc/java-6-sun/security/
|
|
|
|
//System.setProperty("javax.net.ssl.trustStore","/root/apache-tomcat-6.0.20/webapps/tarisan/WEB-INF/lib/cacerts");
|
|
System.setProperty("javax.net.ssl.trustStore","/usr/share/tomcat/conf/cacerts");
|
|
|
|
System.out.println(System.getProperty("javax.net.ssl.trustStore"));
|
|
System.setProperty("javax.net.ssl.trustStorePassword","changeit");
|
|
}
|
|
public ClienteServicioWeb(Msg msg,ControladorRespuestas objController,URL endPointURL)
|
|
{
|
|
request=msg;
|
|
System.out.println(request.toString());
|
|
this.objController=objController;
|
|
this.endPointURL=endPointURL;
|
|
start();
|
|
}
|
|
|
|
public ClienteServicioWeb(Msg msg,ControladorRespuestas objController,URL endPointURL, int seq){
|
|
request=msg;
|
|
this.secuencial = seq;
|
|
System.out.println(request.toString());
|
|
this.objController=objController;
|
|
this.endPointURL=endPointURL;
|
|
start();
|
|
}
|
|
|
|
public void run(){
|
|
String sResponse=null;
|
|
String sUniqueID=calculateUniqueId();
|
|
try{
|
|
SerClsChipCardWSPuntoEntradaSoapBindingStub service=new SerClsChipCardWSPuntoEntradaSoapBindingStub();
|
|
service.setEndPoint(endPointURL );
|
|
service.setTimeout(getSegundosTimeout()*1000);
|
|
saveRequest(sUniqueID, this.secuencial);
|
|
sResponse=service.requestService(request.toString());
|
|
}catch(Exception err){
|
|
err.printStackTrace();
|
|
WebServiceTrayIcon.showErrorMessage("Web Service Tray Icon","No se obtuvo la respuesta a la peticion por motivo:"+err.getMessage());
|
|
objController.recibeRespuesta(null);
|
|
}
|
|
if(sResponse!=null){
|
|
try{
|
|
saveResponse(sUniqueID,sResponse, this.secuencial);
|
|
if(Tarisan.inserta_respuesta_oracle(sResponse, secuencial))
|
|
System.out.println("Respuesta "+this.secuencial+" insertada OK en oracle. "+sResponse);
|
|
else
|
|
System.out.println("Respuesta "+this.secuencial+" NO insertada en oracle. "+sResponse);
|
|
|
|
}catch(Exception err){
|
|
err.printStackTrace();
|
|
}
|
|
}
|
|
objController.recibeRespuesta(sResponse);
|
|
|
|
}
|
|
|
|
public int getSegundosTimeout(){
|
|
return nSegundosTimeout;
|
|
}
|
|
|
|
public void setSegundosTimeout(int nValue){
|
|
nSegundosTimeout=nValue;
|
|
}
|
|
|
|
private String calculateUniqueId(){
|
|
SerClsFecha fecha=new SerClsFecha();
|
|
String sRetorno=fecha.toString("yyyyMMdd_HHmmssSSS");
|
|
return sRetorno;
|
|
}
|
|
|
|
protected void saveRequest(String sID, int secuencial){
|
|
try{
|
|
//System.out.println("Se va a guardar la peticion: "+getMessagesDir()+sID+"_"+secuencial+"_Request.xml");
|
|
OutputStream fout=new BufferedOutputStream(new FileOutputStream(new File(getMessagesDir(),sID+"_"+secuencial+"_Request.xml")));
|
|
request.saveToOutputStream(fout);
|
|
fout.close();
|
|
}catch(Exception err){err.printStackTrace();
|
|
|
|
}
|
|
}
|
|
|
|
protected void saveResponse(String sID,String sResponse, int secuencial){
|
|
try{
|
|
// <Tarjeta><num>803446000000081111111001</num><ver>
|
|
//System.out.println("Se va a guardar la peticion: "+getMessagesDir()+sID+"_"+secuencial+"_Response.xml");
|
|
OutputStream fout=new BufferedOutputStream(new FileOutputStream(new File(getMessagesDir(),sID+"_"+secuencial+"_Response.xml")));
|
|
saveXMLToFile(fout,sResponse);
|
|
}catch(Exception err){err.printStackTrace();}
|
|
}
|
|
|
|
|
|
|
|
private void saveXMLToFile(OutputStream fout,String sXML){
|
|
try{
|
|
byte bRes[]=sXML.getBytes();
|
|
fout.write(bRes);
|
|
fout.close();
|
|
}catch(Exception err){err.printStackTrace();}
|
|
}
|
|
|
|
private java.io.File getMessagesDir(){
|
|
if(fMessagesDir==null){
|
|
fMessagesDir=new File("./messages/");
|
|
}
|
|
if(!fMessagesDir.exists()){
|
|
fMessagesDir.mkdirs();
|
|
}
|
|
return fMessagesDir;
|
|
}
|
|
}
|