Envio informacion
hola a todos.. realice una aplicaci貌n en J2me la cual captura informacion , ya la descargue al telefono celular, pero la aplicacion maneja un menu de envio y recepcion de datos que son enviados una base de datos en POSTGRESQL, utilice el emulador y la conexi貌n con esta base de datos se hace correctamente pero cuando se hace la prueba desde el celular no permite transmitir ni recibir los datos, en el celular aparece que la sincronizaci貌n es exitosa pero no hace el proceso de subida ni bajada de datos al celular. ( esta comunicacion se hace desde el celular a una pagina WEB) , si alguien conoce porque no se hace la transmision por fa me ayuda. este es el Codigo :
package icsermovil;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.microedition.io.HttpConnection;
import javax.microedition.io.Connector;
import java.io.DataOutputStream;
import java.io.OutputStream;
import java.io.DataInputStream;
/**
*
* @author user
*/
public class Sincronizador {
private String direccionServidor;
private OutputStream salidaDatos;
private javax.microedition.lcdui.StringItem stringItem = null;;
private javax.microedition.lcdui.Gauge gaugSincronizacion = null;
private static final int INSERTEDS = 0;
private static final int UPDATES = 1;
private static final int DELETES = 2;
private static final int INSERTEDS_CELULAR = 4;
private static final int UPDATES_CELULAR = 5;
private static final int DELETES_CELULAR = 6;
private javax.microedition.rms.RecordListener recordListener;
/** Creates a new instance of Sincronizador */
public Sincronizador(String direccionServidor) {
this.direccionServidor = direccionServidor;
}
/**Este metodo coloca un textfield al Sincronizador, en este textfield se mostraran
*mensajes del proceso de sincronizacion*/
public void setDisplayMessage(javax.microedition.lcdui.StringItem stringItem )
{
this.stringItem = stringItem ;
}
/**Este metodo coloca un textfield al Sincronizador, en este textfield se mostraran
*mensajes del proceso de sincronizacion*/
public void setDisplayAdvance(javax.microedition.lcdui.Gauge gaugSincronizacion)
{
this.gaugSincronizacion = gaugSincronizacion ;
}
public void sincronizeDatos()throws Exception
{
Thread hiloSincronizarDatos = new Thread(){ public void run(){
descargarDatos();
subirDatos();
} };
hiloSincronizarDatos.start();
}
private void descargarDatos()
{
String[] tablasSincronizar= new String[]{"categoria", "subcategoria", "producto"};
try
{
for (int i =0; i < tablasSincronizar.length; i++)
{
this.obtenerDatosTabla(tablasSincronizar[i], this.INSERTEDS );
this.confirmarDatosTabla(tablasSincronizar[i]);
//this.obtenerDatosTabla(strTabla, this.UPDATES );
//this.obtenerDatosTabla(strTabla, this.DELETES );
}
this.stringItem.setText("Sincronizaci贸n exitosa");
this.recordListener.recordAdded(null, -1);
}
catch(Exception exception)
{
this.stringItem.setText("Error al sincronizar" + exception.getMessage());
}
}
private void subirDatos()
{
String[] tablasSincronizar= new String[]{"cliente", "pedido", "detallepedido", "vendedor" };
try
{
for (int i =0; i < tablasSincronizar.length; i++)
{
this.subirDatosTabla(tablasSincronizar[i], this.INSERTEDS_CELULAR);
//this.confirmarDatosTabla(tablasSincronizar[i]);
//this.obtenerDatosTabla(strTabla, this.UPDATES_CELULAR );
//this.obtenerDatosTabla(strTabla, this.DELETES_CELULAR );
}
this.stringItem.setText("Sincronizaci贸n exitosa");
this.recordListener.recordAdded(null, -1);
}
catch(Exception exception)
{
this.stringItem.setText("Error al sincronizar " + exception.getMessage());
}
}
public void obtenerDatosTabla(String strTabla, int tipoDatos)throws java.io.IOException
{
HttpConnection connection;
String strPeticion;
String strCodigoCelular;
String strDatos;
strCodigoCelular = icsermovil.bussinessLogic.IcsermovilBussinessLogicVendedores.obtenerVendedores()[0].getCodigoCelular();
strPeticion = "?codigocelular=" + strCodigoCelular ;
strPeticion += "&operacion=" + tipoDatos ;
strPeticion += "&tabla=" + strTabla;
strPeticion += "&tipoDatos="+tipoDatos;
if (strTabla.compareTo("pedido" ) == 0 )
{
strDatos = getDatosPedido(tipoDatos);
}
strPeticion = this.direccionServidor + strPeticion;
this.stringItem.setText("Intentando contactar al servidor de sincronizaci贸n\nespere un momento por favor");
try
{
connection = (HttpConnection) Connector.open(strPeticion);
//connection.setRequestProperty("Connection","close");
this.stringItem.setText("Realizando petici贸n de subida de datos");
connection.setRequestMethod(HttpConnection.GET);
//Establecemos algunos campos de cabecera
//connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
//connection.setRequestProperty("Content-Type","text/plain");
//connection.setRequestProperty("Content-Type", "application/octet-stream");
//connection.setRequestProperty("Content-Type", "text/html; charset=UTF-8");
//connection.setRequestProperty("Content-Type", "");
//connection.setRequestProperty("Accept", "application/octet-stream");
//connection.setRequestProperty("Accept", "application/x-www-form-urlencoded");
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
connection.setRequestProperty("Content-Language","es-CO");
byte[] bufferLectura;
InputStream inputStream;
inputStream = connection.openInputStream();
long longitudDatos = connection.getLength();
StringBuffer stringBuffer = null;
if (longitudDatos > 0 )
{
bufferLectura = new byte[(int)longitudDatos] ;
inputStream.read(bufferLectura);
System.out.println(new String(bufferLectura ));
}
else
{
this.stringItem.setText("Descargando informaci贸n...");
byte byteLeido;
stringBuffer = new StringBuffer();
while ( (byteLeido = (byte)inputStream.read()) != -1)
{
stringBuffer.append((char)byteLeido);
}
}
inputStream.close();
inputStream = null;
String strDataServer = stringBuffer.toString();
stringBuffer = null;
this.stringItem.setText("Datos descargados");
/*salidaDatos = connection.openOutputStream();
byte datos[] = strPeticion.getBytes();
salidaDatos.write(strCodigoCelular.getBytes());
salidaDatos.write(strPeticion.getBytes());
salidaDatos.flush();
**/
int respuestaServer = connection.getResponseCode();
connection.close();
connection = null;
if (respuestaServer == javax.microedition.io.HttpConnection.HTTP_OK && strDataServer.compareTo("no data") != 0)
{
//se divide cada uno de los registros que ha llegado y se almacena en un array
icsermovil.utils.StringTokenizer stringTokenizer;
int iNumeroRegistros;
stringTokenizer = new icsermovil.utils.StringTokenizer(strDataServer , "\n");
String[] registros = null;
iNumeroRegistros = stringTokenizer.getCountStrings();
registros = new String[iNumeroRegistros];
for (int i =0 ; i < iNumeroRegistros; i++)
{
registros[i] = stringTokenizer.getString(i);
}
this.persistirInformacion(strTabla, registros);
stringTokenizer = null;
//this.confirmarInformacion(strTabla, registros);
}
}
catch(java.io.IOException iOException)
{
throw new java.io.IOException("Imposible conectarse al servidor de sincronizaci贸n" + iOException.getMessage());
}
}
public void subirDatosTabla(String strTabla, int tipoDatos)throws java.io.IOException
{
HttpConnection connection = null;
String strPeticion;
String strCodigoCelular;
icsermovil.dataEntities.IcsermovilPedido[] icsermovilPedidos = null;
icsermovil.dataEntities.IcsermovilDetallePedido[] icsermovilDetallePedido;
icsermovil.dataEntities.IcsermovilCliente[] icsermovilClientes = null;
strCodigoCelular = icsermovil.bussinessLogic.IcsermovilBussinessLogicVendedores.obtenerVendedores()[0].getCodigoCelular();
strPeticion = "?codigocelular=" + strCodigoCelular ;
strPeticion += "&operacion=" + tipoDatos;
strPeticion += "&tabla=" + strTabla;
strPeticion += "&tipoDatos="+tipoDatos;
strPeticion = this.direccionServidor + strPeticion;
try
{
/*connection = (HttpConnection) Connector.open(strPeticion);
//connection.setRequestProperty("Connection","close");
this.stringItem.setText("Realizando petici贸n de datos");
connection.setRequestMethod(HttpConnection.GET);
//Establecemos algunos campos de cabecera
//connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
//connection.setRequestProperty("Content-Type","text/plain");
//connection.setRequestProperty("Content-Type", "application/octet-stream");
//connection.setRequestProperty("Content-Type", "text/html; charset=UTF-8");
//connection.setRequestProperty("Content-Type", "");
//connection.setRequestProperty("Accept", "application/octet-stream");
//connection.setRequestProperty("Accept", "application/x-www-form-urlencoded");
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
connection.setRequestProperty("Content-Language","es-CO");
*/
this.gaugSincronizacion.setValue(0);
this.gaugSincronizacion.setMaxValue(7);
this.stringItem.setText("Creando trama de datos...");
this.gaugSincronizacion.setValue(1);
byte[] bufferEmvio;
OutputStream outputStream;
StringBuffer stringBufferDatosEnvio = new StringBuffer();
if (strTabla.compareTo("cliente") == 0 )
{
icsermovilClientes = icsermovil.dataAccess.IcsermovilDataAccessClientes.obtenerClientesASincronizar();
for (int i =0 ; icsermovilClientes != null && i < icsermovilClientes .length; i++)
{
stringBufferDatosEnvio.append(icsermovilClientes[i].getCodigo());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilClientes[i].getNombre());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilClientes [i].getDireccion());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilClientes [i].getTelefonoFijo());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilClientes [i].getTelefonoCelular());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilClientes [i].getCedula());
stringBufferDatosEnvio.append("\n");
}
}
if (strTabla.compareTo("pedido") == 0 )
{
icsermovilPedidos = icsermovil.dataAccess.IcsermovilDataAccessPedido.obtenerPedidosSincronizar();
for (int i =0 ; icsermovilPedidos!= null && i < icsermovilPedidos.length; i++)
{
stringBufferDatosEnvio.append(icsermovilPedidos[i].getNumeroPedido());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilPedidos[i].getCodigoCliente());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilPedidos[i].getFecha().getTime());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilPedidos[i].getCodigoVendedor());
stringBufferDatosEnvio.append("\n");
}
}
if (strTabla.compareTo("detallepedido") == 0 )
{
icsermovilDetallePedido = icsermovil.dataAccess.IcsermovilDataAccessDetallePedido.obtenerDetallePedido();
for (int i =0 ; icsermovilDetallePedido!= null && i < icsermovilDetallePedido.length; i++)
{
stringBufferDatosEnvio.append(icsermovilDetallePedido[i].getCodigoProducto());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilDetallePedido[i].getCantidad());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilDetallePedido[i].getCodigoPedido());
stringBufferDatosEnvio.append("\n");
}
}
this.gaugSincronizacion.setValue(2);
bufferEmvio = stringBufferDatosEnvio.toString().getBytes();
if(bufferEmvio.length > 0 )
{
this.gaugSincronizacion.setValue(3);
this.stringItem.setText("Intentando contactar al servidor de sincronizaci贸n\nespere un momento por favor");
connection = (HttpConnection) Connector.open(strPeticion);
this.gaugSincronizacion.setValue(4);
this.stringItem.setText("Enviando datos");
connection.setRequestMethod(HttpConnection.GET);
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
connection.setRequestProperty("Content-Language","es-CO");
outputStream = connection.openOutputStream();
this.gaugSincronizacion.setValue(5);
outputStream.write(bufferEmvio);
outputStream.flush();
outputStream.close();
outputStream = null;
this.gaugSincronizacion.setValue(6);
}
if (connection != null)
connection.close();
connection = null;
icsermovil.dataEntities.IcsermovilSincronizacion icsermovilSincronizacion;
for(int i =0; icsermovilClientes!= null && i < icsermovilClientes.length; i++)
{
icsermovilSincronizacion = new icsermovil.dataEntities.IcsermovilSincronizacion("cliente", "B", true, icsermovilClientes[i].getIdRegistro() + "");
icsermovil.dataAccess.IcsermovilDataAccessSincronizacion.borrarRegistroSincronizacion(icsermovilSincronizacion);
}
for(int i =0; icsermovilPedidos!= null && i < icsermovilPedidos.length; i++)
{
icsermovilSincronizacion = new icsermovil.dataEntities.IcsermovilSincronizacion("pedido", "B", true, icsermovilPedidos[i].getRegistro() + "");
icsermovil.dataAccess.IcsermovilDataAccessSincronizacion.borrarRegistroSincronizacion(icsermovilSincronizacion);
}
/*long longitudDatos = connection.getLength();
StringBuffer stringBuffer = null;
if (longitudDatos > 0 )
{
bufferLectura = new byte[(int)longitudDatos] ;
inputStream.read(bufferLectura);
System.out.println(new String(bufferLectura ));
}
else
{
this.stringItem.setText("Descargando informaci贸n...");
byte byteLeido;
stringBuffer = new StringBuffer();
while ( (byteLeido = (byte)inputStream.read()) != -1)
{
stringBuffer.append((char)byteLeido);
}
}*/
/*String strDataServer = stringBuffer.toString();
stringBuffer = null;
**/
this.stringItem.setText("Datos enviados/Desconectados del servidor");
this.gaugSincronizacion.setValue(7);
/*salidaDatos = connection.openOutputStream();
byte datos[] = strPeticion.getBytes();
salidaDatos.write(strCodigoCelular.getBytes());
salidaDatos.write(strPeticion.getBytes());
salidaDatos.flush();
**/
/* int respuestaServer = connection.getResponseCode();
System.out.println("Del server: " + respuestaServer );
connection.close();
if (respuestaServer == javax.microedition.io.HttpConnection.HTTP_OK && strDataServer.compareTo("no data") != 0)
{
//se divide cada uno de los registros que ha llegado y se almacena en un array
icsermovil.utils.StringTokenizer stringTokenizer;
int iNumeroRegistros;
stringTokenizer = new icsermovil.utils.StringTokenizer(strDataServer , "\n");
String[] registros = null;
iNumeroRegistros = stringTokenizer.getCountStrings();
registros = new String[iNumeroRegistros];
for (int i =0 ; i < iNumeroRegistros; i++)
{
registros[i] = stringTokenizer.getString(i);
}
this.persistirInformacion(strTabla, registros);
stringTokenizer = null;
//this.confirmarInformacion(strTabla, registros);
}*/
}
catch(java.io.IOException iOException)
{
throw new java.io.IOException("Imposible conectarse al servidor de sincronizaci贸n" + iOException.getMessage());
}
}
public void persistirInformacion(String strTabla, String[] registros)
{
try
{
icsermovil.dataAccess.IcsermovilDataAccessSincronizacion.insert_SincronizacionIcsermovilRegistro(strTabla, registros);
}
catch(Exception exception )
{
}
}
public void confirmarDatosTabla(String strTabla)throws java.io.IOException
{
HttpConnection connection;
String strPeticion;
String strCodigoCelular;
strCodigoCelular = icsermovil.bussinessLogic.IcsermovilBussinessLogicVendedores.obtenerVendedores()[0].getCodigoCelular();
strPeticion = "?codigocelular=" + strCodigoCelular ;
strPeticion += "&operacion=" + 3 ;
strPeticion += "&tabla=" + strTabla;
strPeticion = this.direccionServidor + strPeticion;
try
{
this.stringItem.setText("Intentando contactar al servidor de sincronizaci贸n\nespere un momento por favor");
connection = (HttpConnection) Connector.open(strPeticion);
//connection.setRequestProperty("Connection","close");
this.stringItem.setText("Realizando CONFIRMACION DE DATOS de datos");
connection.setRequestMethod(HttpConnection.GET);
//Establecemos algunos campos de cabecera
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
connection.setRequestProperty("Content-Language","es-CO");
byte[] bufferLectura;
InputStream inputStream;
inputStream = connection.openInputStream();
long longitudDatos = connection.getLength();
StringBuffer stringBuffer = null;
if (longitudDatos > 0 )
{
bufferLectura = new byte[(int)longitudDatos] ;
inputStream.read(bufferLectura);
System.out.println(new String(bufferLectura ));
}
else
{
this.stringItem.setText("Descargando informaci贸n...");
byte byteLeido;
stringBuffer = new StringBuffer();
while ( (byteLeido = (byte)inputStream.read()) != -1)
{
stringBuffer.append((char)byteLeido);
}
}
inputStream.close();
inputStream = null;
String strDataServer = stringBuffer.toString();
stringBuffer = null;
this.stringItem.setText("Datos descargados");
int respuestaServer = connection.getResponseCode();
System.out.println("Del server: " + respuestaServer );
connection.close();
if (respuestaServer == javax.microedition.io.HttpConnection.HTTP_OK && strDataServer.compareTo("confirmacionok") != 0)
{
this.stringItem.setText("Confirmacion de " + strTabla + " enviada y confirmada");
//aqui estan los datos del server
//strDataServer
}
}
catch(java.io.IOException iOException)
{
throw new java.io.IOException("Imposible conectarse al servidor de sincronizaci贸n" + iOException.getMessage());
}
}
public void setRecordListener(javax.microedition.rms.RecordListener recordListener)
{
this.recordListener = recordListener;
}
public String getDatosPedido(int iTipoDatos)
{
/* String returnValue = null;
StringBuffer stringBuffer = new StringBuffer() ;
icsermovil.dataEntities.IcsermovilPedido[] icsermovilPedido;
icsermovil.dataEntities.IcsermovilSincronizacion[] icsermovilSincronizacion;
icsermovilSincronizacion = icsermovil.dataAccess.IcsermovilDataAccessSincronizacion.obtenerRegistros("pedido", iTipoDatos);
icsermovilPedido = icsermovil.dataAccess.IcsermovilDataAccessPedido.obtenerPedido();
for (int i =0; icsermovilSincronizacion!= null && i < icsermovilSincronizacion.length ; i++ )
for (int j =0; icsermovilPedido!= null && j < icsermovilPedido.length ; j++ )
{
if (icsermovilSincronizacion[i].getCodigoRegistro() == icsermovilPedido[j].getRegistro() )
{
stringBuffer.append(icsermovilPedido[j].getNumeroPedido());
stringBuffer.append("\\");
stringBuffer.append(icsermovilPedido[j].getFecha());
stringBuffer.append("\\");
stringBuffer.append(icsermovilPedido[j].getCodigoCliente());
stringBuffer.append("\\");
returnValue = stringBuffer.toString();
break;
}
}*/
return null;
}
}
NOTA EL CELULAR ES UN NOKIA 3220
Gracias. [email protected]
package icsermovil;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.microedition.io.HttpConnection;
import javax.microedition.io.Connector;
import java.io.DataOutputStream;
import java.io.OutputStream;
import java.io.DataInputStream;
/**
*
* @author user
*/
public class Sincronizador {
private String direccionServidor;
private OutputStream salidaDatos;
private javax.microedition.lcdui.StringItem stringItem = null;;
private javax.microedition.lcdui.Gauge gaugSincronizacion = null;
private static final int INSERTEDS = 0;
private static final int UPDATES = 1;
private static final int DELETES = 2;
private static final int INSERTEDS_CELULAR = 4;
private static final int UPDATES_CELULAR = 5;
private static final int DELETES_CELULAR = 6;
private javax.microedition.rms.RecordListener recordListener;
/** Creates a new instance of Sincronizador */
public Sincronizador(String direccionServidor) {
this.direccionServidor = direccionServidor;
}
/**Este metodo coloca un textfield al Sincronizador, en este textfield se mostraran
*mensajes del proceso de sincronizacion*/
public void setDisplayMessage(javax.microedition.lcdui.StringItem stringItem )
{
this.stringItem = stringItem ;
}
/**Este metodo coloca un textfield al Sincronizador, en este textfield se mostraran
*mensajes del proceso de sincronizacion*/
public void setDisplayAdvance(javax.microedition.lcdui.Gauge gaugSincronizacion)
{
this.gaugSincronizacion = gaugSincronizacion ;
}
public void sincronizeDatos()throws Exception
{
Thread hiloSincronizarDatos = new Thread(){ public void run(){
descargarDatos();
subirDatos();
} };
hiloSincronizarDatos.start();
}
private void descargarDatos()
{
String[] tablasSincronizar= new String[]{"categoria", "subcategoria", "producto"};
try
{
for (int i =0; i < tablasSincronizar.length; i++)
{
this.obtenerDatosTabla(tablasSincronizar[i], this.INSERTEDS );
this.confirmarDatosTabla(tablasSincronizar[i]);
//this.obtenerDatosTabla(strTabla, this.UPDATES );
//this.obtenerDatosTabla(strTabla, this.DELETES );
}
this.stringItem.setText("Sincronizaci贸n exitosa");
this.recordListener.recordAdded(null, -1);
}
catch(Exception exception)
{
this.stringItem.setText("Error al sincronizar" + exception.getMessage());
}
}
private void subirDatos()
{
String[] tablasSincronizar= new String[]{"cliente", "pedido", "detallepedido", "vendedor" };
try
{
for (int i =0; i < tablasSincronizar.length; i++)
{
this.subirDatosTabla(tablasSincronizar[i], this.INSERTEDS_CELULAR);
//this.confirmarDatosTabla(tablasSincronizar[i]);
//this.obtenerDatosTabla(strTabla, this.UPDATES_CELULAR );
//this.obtenerDatosTabla(strTabla, this.DELETES_CELULAR );
}
this.stringItem.setText("Sincronizaci贸n exitosa");
this.recordListener.recordAdded(null, -1);
}
catch(Exception exception)
{
this.stringItem.setText("Error al sincronizar " + exception.getMessage());
}
}
public void obtenerDatosTabla(String strTabla, int tipoDatos)throws java.io.IOException
{
HttpConnection connection;
String strPeticion;
String strCodigoCelular;
String strDatos;
strCodigoCelular = icsermovil.bussinessLogic.IcsermovilBussinessLogicVendedores.obtenerVendedores()[0].getCodigoCelular();
strPeticion = "?codigocelular=" + strCodigoCelular ;
strPeticion += "&operacion=" + tipoDatos ;
strPeticion += "&tabla=" + strTabla;
strPeticion += "&tipoDatos="+tipoDatos;
if (strTabla.compareTo("pedido" ) == 0 )
{
strDatos = getDatosPedido(tipoDatos);
}
strPeticion = this.direccionServidor + strPeticion;
this.stringItem.setText("Intentando contactar al servidor de sincronizaci贸n\nespere un momento por favor");
try
{
connection = (HttpConnection) Connector.open(strPeticion);
//connection.setRequestProperty("Connection","close");
this.stringItem.setText("Realizando petici贸n de subida de datos");
connection.setRequestMethod(HttpConnection.GET);
//Establecemos algunos campos de cabecera
//connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
//connection.setRequestProperty("Content-Type","text/plain");
//connection.setRequestProperty("Content-Type", "application/octet-stream");
//connection.setRequestProperty("Content-Type", "text/html; charset=UTF-8");
//connection.setRequestProperty("Content-Type", "");
//connection.setRequestProperty("Accept", "application/octet-stream");
//connection.setRequestProperty("Accept", "application/x-www-form-urlencoded");
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
connection.setRequestProperty("Content-Language","es-CO");
byte[] bufferLectura;
InputStream inputStream;
inputStream = connection.openInputStream();
long longitudDatos = connection.getLength();
StringBuffer stringBuffer = null;
if (longitudDatos > 0 )
{
bufferLectura = new byte[(int)longitudDatos] ;
inputStream.read(bufferLectura);
System.out.println(new String(bufferLectura ));
}
else
{
this.stringItem.setText("Descargando informaci贸n...");
byte byteLeido;
stringBuffer = new StringBuffer();
while ( (byteLeido = (byte)inputStream.read()) != -1)
{
stringBuffer.append((char)byteLeido);
}
}
inputStream.close();
inputStream = null;
String strDataServer = stringBuffer.toString();
stringBuffer = null;
this.stringItem.setText("Datos descargados");
/*salidaDatos = connection.openOutputStream();
byte datos[] = strPeticion.getBytes();
salidaDatos.write(strCodigoCelular.getBytes());
salidaDatos.write(strPeticion.getBytes());
salidaDatos.flush();
**/
int respuestaServer = connection.getResponseCode();
connection.close();
connection = null;
if (respuestaServer == javax.microedition.io.HttpConnection.HTTP_OK && strDataServer.compareTo("no data") != 0)
{
//se divide cada uno de los registros que ha llegado y se almacena en un array
icsermovil.utils.StringTokenizer stringTokenizer;
int iNumeroRegistros;
stringTokenizer = new icsermovil.utils.StringTokenizer(strDataServer , "\n");
String[] registros = null;
iNumeroRegistros = stringTokenizer.getCountStrings();
registros = new String[iNumeroRegistros];
for (int i =0 ; i < iNumeroRegistros; i++)
{
registros[i] = stringTokenizer.getString(i);
}
this.persistirInformacion(strTabla, registros);
stringTokenizer = null;
//this.confirmarInformacion(strTabla, registros);
}
}
catch(java.io.IOException iOException)
{
throw new java.io.IOException("Imposible conectarse al servidor de sincronizaci贸n" + iOException.getMessage());
}
}
public void subirDatosTabla(String strTabla, int tipoDatos)throws java.io.IOException
{
HttpConnection connection = null;
String strPeticion;
String strCodigoCelular;
icsermovil.dataEntities.IcsermovilPedido[] icsermovilPedidos = null;
icsermovil.dataEntities.IcsermovilDetallePedido[] icsermovilDetallePedido;
icsermovil.dataEntities.IcsermovilCliente[] icsermovilClientes = null;
strCodigoCelular = icsermovil.bussinessLogic.IcsermovilBussinessLogicVendedores.obtenerVendedores()[0].getCodigoCelular();
strPeticion = "?codigocelular=" + strCodigoCelular ;
strPeticion += "&operacion=" + tipoDatos;
strPeticion += "&tabla=" + strTabla;
strPeticion += "&tipoDatos="+tipoDatos;
strPeticion = this.direccionServidor + strPeticion;
try
{
/*connection = (HttpConnection) Connector.open(strPeticion);
//connection.setRequestProperty("Connection","close");
this.stringItem.setText("Realizando petici贸n de datos");
connection.setRequestMethod(HttpConnection.GET);
//Establecemos algunos campos de cabecera
//connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
//connection.setRequestProperty("Content-Type","text/plain");
//connection.setRequestProperty("Content-Type", "application/octet-stream");
//connection.setRequestProperty("Content-Type", "text/html; charset=UTF-8");
//connection.setRequestProperty("Content-Type", "");
//connection.setRequestProperty("Accept", "application/octet-stream");
//connection.setRequestProperty("Accept", "application/x-www-form-urlencoded");
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
connection.setRequestProperty("Content-Language","es-CO");
*/
this.gaugSincronizacion.setValue(0);
this.gaugSincronizacion.setMaxValue(7);
this.stringItem.setText("Creando trama de datos...");
this.gaugSincronizacion.setValue(1);
byte[] bufferEmvio;
OutputStream outputStream;
StringBuffer stringBufferDatosEnvio = new StringBuffer();
if (strTabla.compareTo("cliente") == 0 )
{
icsermovilClientes = icsermovil.dataAccess.IcsermovilDataAccessClientes.obtenerClientesASincronizar();
for (int i =0 ; icsermovilClientes != null && i < icsermovilClientes .length; i++)
{
stringBufferDatosEnvio.append(icsermovilClientes[i].getCodigo());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilClientes[i].getNombre());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilClientes [i].getDireccion());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilClientes [i].getTelefonoFijo());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilClientes [i].getTelefonoCelular());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilClientes [i].getCedula());
stringBufferDatosEnvio.append("\n");
}
}
if (strTabla.compareTo("pedido") == 0 )
{
icsermovilPedidos = icsermovil.dataAccess.IcsermovilDataAccessPedido.obtenerPedidosSincronizar();
for (int i =0 ; icsermovilPedidos!= null && i < icsermovilPedidos.length; i++)
{
stringBufferDatosEnvio.append(icsermovilPedidos[i].getNumeroPedido());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilPedidos[i].getCodigoCliente());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilPedidos[i].getFecha().getTime());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilPedidos[i].getCodigoVendedor());
stringBufferDatosEnvio.append("\n");
}
}
if (strTabla.compareTo("detallepedido") == 0 )
{
icsermovilDetallePedido = icsermovil.dataAccess.IcsermovilDataAccessDetallePedido.obtenerDetallePedido();
for (int i =0 ; icsermovilDetallePedido!= null && i < icsermovilDetallePedido.length; i++)
{
stringBufferDatosEnvio.append(icsermovilDetallePedido[i].getCodigoProducto());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilDetallePedido[i].getCantidad());
stringBufferDatosEnvio.append("\\");
stringBufferDatosEnvio.append(icsermovilDetallePedido[i].getCodigoPedido());
stringBufferDatosEnvio.append("\n");
}
}
this.gaugSincronizacion.setValue(2);
bufferEmvio = stringBufferDatosEnvio.toString().getBytes();
if(bufferEmvio.length > 0 )
{
this.gaugSincronizacion.setValue(3);
this.stringItem.setText("Intentando contactar al servidor de sincronizaci贸n\nespere un momento por favor");
connection = (HttpConnection) Connector.open(strPeticion);
this.gaugSincronizacion.setValue(4);
this.stringItem.setText("Enviando datos");
connection.setRequestMethod(HttpConnection.GET);
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
connection.setRequestProperty("Content-Language","es-CO");
outputStream = connection.openOutputStream();
this.gaugSincronizacion.setValue(5);
outputStream.write(bufferEmvio);
outputStream.flush();
outputStream.close();
outputStream = null;
this.gaugSincronizacion.setValue(6);
}
if (connection != null)
connection.close();
connection = null;
icsermovil.dataEntities.IcsermovilSincronizacion icsermovilSincronizacion;
for(int i =0; icsermovilClientes!= null && i < icsermovilClientes.length; i++)
{
icsermovilSincronizacion = new icsermovil.dataEntities.IcsermovilSincronizacion("cliente", "B", true, icsermovilClientes[i].getIdRegistro() + "");
icsermovil.dataAccess.IcsermovilDataAccessSincronizacion.borrarRegistroSincronizacion(icsermovilSincronizacion);
}
for(int i =0; icsermovilPedidos!= null && i < icsermovilPedidos.length; i++)
{
icsermovilSincronizacion = new icsermovil.dataEntities.IcsermovilSincronizacion("pedido", "B", true, icsermovilPedidos[i].getRegistro() + "");
icsermovil.dataAccess.IcsermovilDataAccessSincronizacion.borrarRegistroSincronizacion(icsermovilSincronizacion);
}
/*long longitudDatos = connection.getLength();
StringBuffer stringBuffer = null;
if (longitudDatos > 0 )
{
bufferLectura = new byte[(int)longitudDatos] ;
inputStream.read(bufferLectura);
System.out.println(new String(bufferLectura ));
}
else
{
this.stringItem.setText("Descargando informaci贸n...");
byte byteLeido;
stringBuffer = new StringBuffer();
while ( (byteLeido = (byte)inputStream.read()) != -1)
{
stringBuffer.append((char)byteLeido);
}
}*/
/*String strDataServer = stringBuffer.toString();
stringBuffer = null;
**/
this.stringItem.setText("Datos enviados/Desconectados del servidor");
this.gaugSincronizacion.setValue(7);
/*salidaDatos = connection.openOutputStream();
byte datos[] = strPeticion.getBytes();
salidaDatos.write(strCodigoCelular.getBytes());
salidaDatos.write(strPeticion.getBytes());
salidaDatos.flush();
**/
/* int respuestaServer = connection.getResponseCode();
System.out.println("Del server: " + respuestaServer );
connection.close();
if (respuestaServer == javax.microedition.io.HttpConnection.HTTP_OK && strDataServer.compareTo("no data") != 0)
{
//se divide cada uno de los registros que ha llegado y se almacena en un array
icsermovil.utils.StringTokenizer stringTokenizer;
int iNumeroRegistros;
stringTokenizer = new icsermovil.utils.StringTokenizer(strDataServer , "\n");
String[] registros = null;
iNumeroRegistros = stringTokenizer.getCountStrings();
registros = new String[iNumeroRegistros];
for (int i =0 ; i < iNumeroRegistros; i++)
{
registros[i] = stringTokenizer.getString(i);
}
this.persistirInformacion(strTabla, registros);
stringTokenizer = null;
//this.confirmarInformacion(strTabla, registros);
}*/
}
catch(java.io.IOException iOException)
{
throw new java.io.IOException("Imposible conectarse al servidor de sincronizaci贸n" + iOException.getMessage());
}
}
public void persistirInformacion(String strTabla, String[] registros)
{
try
{
icsermovil.dataAccess.IcsermovilDataAccessSincronizacion.insert_SincronizacionIcsermovilRegistro(strTabla, registros);
}
catch(Exception exception )
{
}
}
public void confirmarDatosTabla(String strTabla)throws java.io.IOException
{
HttpConnection connection;
String strPeticion;
String strCodigoCelular;
strCodigoCelular = icsermovil.bussinessLogic.IcsermovilBussinessLogicVendedores.obtenerVendedores()[0].getCodigoCelular();
strPeticion = "?codigocelular=" + strCodigoCelular ;
strPeticion += "&operacion=" + 3 ;
strPeticion += "&tabla=" + strTabla;
strPeticion = this.direccionServidor + strPeticion;
try
{
this.stringItem.setText("Intentando contactar al servidor de sincronizaci贸n\nespere un momento por favor");
connection = (HttpConnection) Connector.open(strPeticion);
//connection.setRequestProperty("Connection","close");
this.stringItem.setText("Realizando CONFIRMACION DE DATOS de datos");
connection.setRequestMethod(HttpConnection.GET);
//Establecemos algunos campos de cabecera
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
connection.setRequestProperty("Content-Language","es-CO");
byte[] bufferLectura;
InputStream inputStream;
inputStream = connection.openInputStream();
long longitudDatos = connection.getLength();
StringBuffer stringBuffer = null;
if (longitudDatos > 0 )
{
bufferLectura = new byte[(int)longitudDatos] ;
inputStream.read(bufferLectura);
System.out.println(new String(bufferLectura ));
}
else
{
this.stringItem.setText("Descargando informaci贸n...");
byte byteLeido;
stringBuffer = new StringBuffer();
while ( (byteLeido = (byte)inputStream.read()) != -1)
{
stringBuffer.append((char)byteLeido);
}
}
inputStream.close();
inputStream = null;
String strDataServer = stringBuffer.toString();
stringBuffer = null;
this.stringItem.setText("Datos descargados");
int respuestaServer = connection.getResponseCode();
System.out.println("Del server: " + respuestaServer );
connection.close();
if (respuestaServer == javax.microedition.io.HttpConnection.HTTP_OK && strDataServer.compareTo("confirmacionok") != 0)
{
this.stringItem.setText("Confirmacion de " + strTabla + " enviada y confirmada");
//aqui estan los datos del server
//strDataServer
}
}
catch(java.io.IOException iOException)
{
throw new java.io.IOException("Imposible conectarse al servidor de sincronizaci贸n" + iOException.getMessage());
}
}
public void setRecordListener(javax.microedition.rms.RecordListener recordListener)
{
this.recordListener = recordListener;
}
public String getDatosPedido(int iTipoDatos)
{
/* String returnValue = null;
StringBuffer stringBuffer = new StringBuffer() ;
icsermovil.dataEntities.IcsermovilPedido[] icsermovilPedido;
icsermovil.dataEntities.IcsermovilSincronizacion[] icsermovilSincronizacion;
icsermovilSincronizacion = icsermovil.dataAccess.IcsermovilDataAccessSincronizacion.obtenerRegistros("pedido", iTipoDatos);
icsermovilPedido = icsermovil.dataAccess.IcsermovilDataAccessPedido.obtenerPedido();
for (int i =0; icsermovilSincronizacion!= null && i < icsermovilSincronizacion.length ; i++ )
for (int j =0; icsermovilPedido!= null && j < icsermovilPedido.length ; j++ )
{
if (icsermovilSincronizacion[i].getCodigoRegistro() == icsermovilPedido[j].getRegistro() )
{
stringBuffer.append(icsermovilPedido[j].getNumeroPedido());
stringBuffer.append("\\");
stringBuffer.append(icsermovilPedido[j].getFecha());
stringBuffer.append("\\");
stringBuffer.append(icsermovilPedido[j].getCodigoCliente());
stringBuffer.append("\\");
returnValue = stringBuffer.toString();
break;
}
}*/
return null;
}
}
NOTA EL CELULAR ES UN NOKIA 3220
Gracias. [email protected]
