jueves, 30 de octubre de 2008

consumir un web service desde j2se

El tema de web service pertenece mas a j2ee , pero igual pueden ser
util para una aplicacion de escritorio.

Un Web Services (WS) es una aplicación que puede ser descripta
, publicada, localizada, e invocada a través de una red, generalmente
Internet.

Los WS son a los efectos del consumidor componentes que se
encuentran dentro de una caja negra, que pueden ser utilizados
sin preocuparse de como fueron implementados, y ser accedidos
utilizando XML (SOAP) , generalmente sobre HTTP.

La arquitectura básica del modelo de WS describe un consumidor,
un proveedor y ocasionalmente un corredor (broker) y relacionados
con estos agentes está las operaciones de publish (publicar),
f ind (encontrar) y bind (enlazar).

Los requerimientos a la hora de desarrollar o consumir un WS son:

- una forma estándar de representar los datos: XML
- un formato común y extensible de mensaje: SOAP
- un lenguaje común y extensible para describir los servicios:
WSDL (basado en XML).
- una forma de descubrir los servicios en Internet: UDDI
(basado en XML).


este tema es muy interesante y util , imagine que tiene una
aplicacion en asp.net y quiere consumir un procedimiento de
esa aplicacion desde java , entonces con nuestro querido web
service lo podemos realizar.

Ejemplo:

Vamos a consumir un metodo de aplicacion web application de
java ( Como siempre con nuestro querido netbeans 6)


1.- primero creamos nuestro proyecto web application , selecionamos el JavaServer Face
para este ejemplo.


2.- creamos el metodo


3.- tenemos que seleccionar souce y escribir dentro del metodo el procedimiento
(en este caso es la suma)

solamente lo que escribi fue : int s= i+j ;
y el return de 0 lo cambie a s

4.- en nuestra aplicacion normal de java creamos un nuevo Web Service Client5.- en project abrimos el brower y seleccionamos el web service que creamos


6.- al aceptar el web service , en nuestro proyecto se nos creara una paquete
llamado web service references.

ahora vamos a crear un from con unos jTextfield y un jButton el cual va a
llamar al web service.


7. ahora desplegamos nuestro web service de nuestra aplicacion y arastramos
el metodo al jButton1ActionPerformed ( evento del boton ) .



dentro de nuestro metodo modificamos lo siguiente

int i = Integer.parseInt(jTextField1.getText());
int j = Integer.parseInt(jTextField2.getText());

jTextField3.setText(""+result);

como observacion final tenemos que tener el servidor GlassFish , para poder
hacer correr nuestro web service .

lunes, 27 de octubre de 2008

conexion base de dato con netbeans

primero vamos a ir a services y desplegamos Databases:



Despues tenemos que agregar el jar (el driver ) de la base de dato que vamos a conectar a netbeans.

paso numero 3: ahora vamos a configurar la conexion

Añadir imagen

paso nº 4 : configuracion de la conexion (Seleccion del tipo de driver)


hay que tener ojo , porque tenemos que dejar en advanced una configuracion publica
y por ultimo a disfrutar nuestra conexion a base de dato en netbeans


como observacion :

como sun compro mysql la conexion por primera vista es super facil porque trae el driver de la base de dato incorporado.

viernes, 3 de octubre de 2008

exportar e importar a excel desde java

Para trabajar con excel vamos a hacerlo con el
formato csv , este formato es super simple de utilizar

Para bajar el jar que vamos añadir a nuestro proyecto
lo vamos a buscar aqui:

http://www.csvreader.com/java_csv.php

asi se guarda y es el formato con el cual tenemos que guardar
nuestro archivo


El siguiente ejemplo vamos a guardar un archivo
csv en un Arraylist el cual guarda objetos de la clase
libro( con sus get y set de atrivutos privados)

//////// clase libro /////////////////

public class libro_ingresado {

private String nombre;
private String autor;
private String edicion;
private String anio;
private String codigo;
private String area;

/** Creates a new instance of libro_ingresado */
public libro_ingresado() {
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getAutor() {
return autor;
}

public void setAutor(String autor) {
this.autor = autor;
}

public String getEdicion() {
return edicion;
}

public void setEdicion(String edicion) {
this.edicion = edicion;
}

public String getAnio() {
return anio;
}

public void setAnio(String anio) {
this.anio = anio;
}

public String getCodigo() {
return codigo;
}

public void setCodigo(String codigo) {
this.codigo = codigo;
}

public String getArea() {
return area;
}

public void setArea(String area) {
this.area = area;
}

}

/////// clase de manejo de csv //////////


import com.csvreader.CsvReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JOptionPane;


public class leer_archivo {


public ArrayList leer_archivo_exel(String archivo){

ArrayList lista_libros = new ArrayList();

CsvReader reader = null;

try {

reader = new CsvReader(archivo,';');

} catch (FileNotFoundException ex) {
ex.printStackTrace();
JOptionPane.showInputDialog("en leer archivo");
}

try {

reader.readHeaders();

} catch (IOException ex) {
ex.printStackTrace();
}

try {

libro_ingresado libr;

while (reader.readRecord())
{

libr=new libro_ingresado();
libr.setNombre(reader.get("nombre"));
libr.setAutor(reader.get("autor"));
libr.setEdicion(reader.get("edicion"));
libr.setAnio(reader.get("anio"));
libr.setCodigo(reader.get("codigo"));
libr.setArea(reader.get("area"));
lista_libros.add(libr); // añadimos el objeto al arrayList

}

} catch (IOException ex) {
ex.printStackTrace();
System.err.println(" en while readrecord ");
}

reader.close();

return lista_libros; // retorna una objeto de ArrayList

}


}


////////////////////////////////////////////////////////

el siquiente codigo es abrir un JFileChooser donde buscamos
nuestro archivo csv , luego lo seleccionamos y es procesado.
el archivo es pasado a un jtable




////////////////// codigo evento boton ///////////////


DefaultTableModel dtm;
ArrayList libro_recivido=new ArrayList();

JFileChooser fileChooser = new JFileChooser(".");
int status = fileChooser.showOpenDialog(null); //fileChooser

if (status == JFileChooser.APPROVE_OPTION) {

File selectedFile =fileChooser.getSelectedFile();

leer_archivo l=new leer_archivo();
String direccion=selectedFile.getParent()+"/"+selectedFile.getName();

libro_recivido=l.leer_archivo_exel(direccion);
Iterator it=libro_recivido.iterator();

try{

Object datos[] = new Object [6];
dtm = (DefaultTableModel) jTable1.getModel();
for (int i = jTable1.getRowCount() - 1; i>=0; i--)
{
dtm.removeRow(i);
}


while(it.hasNext()){

libro_ingresado lib_ing;
lib_ing=(libro_ingresado) it.next();
datos[0]=lib_ing.getNombre();
datos[1]=lib_ing.getAutor();
datos[2]=lib_ing.getEdicion();
datos[3]=lib_ing.getAnio();
datos[4]=lib_ing.getCodigo();
datos[5]=lib_ing.getArea();

dtm.addRow(datos);
}

} catch(Exception e){
//manejo de error
}

} else if (status == JFileChooser.CANCEL_OPTION) {

System.out.println("cancele");

}

//////////////////////////////////////////////////

como fin un link de interes

http://schmidt.devlib.org/java/libraries-excel.html