Buscando artículos sobre "Java"
16-enero-2013
admin

Consultar un Servicio Web en Android utilizando la librería KSOAP

Se va a utilizar para el ejemplo el servicio web implementado en la entrada anterior (Recordar que se creó un servicio web con wsdl en php utilizando la librería nusoap).

1 – Descargar la librería Ksoap aquí.

2 – Copiarla en la carpeta libs de tu proyecto Android. Añadirla al “Build path” y seleccionarla en “Order and Export”.

3 – Ahora ya se puede utilizar. Y esto sería un ejemplo de utilización:

    private static final String SOAP_ACTION = "getNombre";
    private static final String METHOD_NAME = "getNombre";
    private static final String NAMESPACE = "http://disastercode.com.es/ws/nusoap";
    private static final String URL = "http://disastercode.com.es/ws/servicioWsdl.php?wsdl";
        
    private void pruebaWS(){
    	String res = "";
    	SoapObject soapclient = new SoapObject(NAMESPACE,METHOD_NAME);
    	soapclient.addProperty("dni","99999999N");
    	 
    	SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    	envelope.setOutputSoapObject(soapclient);
    	HttpTransportSE httpTransportSE = new HttpTransportSE(URL);
    	
    	try {
    		httpTransportSE.call(SOAP_ACTION, envelope);
    		res = envelope.getResponse().toString();
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    	//TODO en la variable res tienes el valor devuelto por el ws
    }

14-noviembre-2012
admin

Plugin para el eclipse que genera aplicación automaticamente

Sotilizator

En GitHub he creado un repositorio donde comparto un plugin para el eclipse que he implementado y que facilita el desarrollo aplicaciones J2EE https://github.com/roberto-pf/Sotilizator. El plugin consigue implementar toda la lógica de negocio de una aplicación que utiliza: Struts + Spring + hibernate + JQuery.

Qué es el Sotilizator?
Se trata de un plugin para el eclipse (probado en su versión Helios). La finalidad de este plugin es la creación de una aplicación web de forma automática y con unas determinadas características a partir de un esquema de una Base de Datos.
Estas características son:
1 – La aplicación resultante estará realizada empleando un MVC en J2EE con Struts 1.3, inyección de dependencias con Spring 3.0, hibernate 3.2.6 para el acceso a datos para la parte de la lógica de negocio. Mientras que para la parte de la vista se empleará jquery junto a las tag-libraries de struts. Además, de DWR para interactuar con el servidor desde el cliente.
2 – Se generará un fichero pom.xml para que a través de MAVEN se puedan obtener las dependencias.
3 – Se generará un fichero build.xml donde estarán las tareas Ant necesarias para el despliegue de la aplicación en Tomcat, JBoss y OAS.
4 – La aplicación resultante será capaz de construir las tareas CRUD de las tablas automáticamente. A partir del esquema de la BD obtendrá los campos y su tipo.
5 – Las capas que contendrá la aplicación son las siguientes:

        VO: Objetos que hace referencias a las tablas.
	DAO: Capa que realiza el acceso a la BD. 
	Manager: Capa sobre la que se aplican las transacciones.
	Delegate: Capa que se encarga de relacionar la parte de la vista 
                  con la lógica de negocio.
	Action: Aquí deberán ir las diferentes acciones que luego el 
                controlador mapea para interactuar con la vista.

Esquema de la lógica de negocio

Nota: Para más información consultar manuales del usuario y del programador: https://github.com/roberto-pf/Sotilizator/tree/master/Readme

2-mayo-2012
admin

Utilizar Print When Expresion de iReports

Supongamos que tenemos una plantilla de un informe realizada con ireport. Y que hay un label cuyo contenido no queremos que se muestre siempre (p.e. solamente cuando el valor de un parámetro, llamado campo, pasado al informe contiene la cadena “prueba”).


Lo único que hay que hacer es utilizar la propiedad Print When Expresion de la etiqueta label. Colocando en ella lo siguiente:

$P{campo}.equals("prueba")?Boolean.TRUE:Boolean.FALSE


1-mayo-2012
admin

Paginación de informes con iReport (Evaluation Time)

Supongamos que tenemos un informe realizado con ireport que nos genera un documento de 100 páginas. Y queremos que en el pie de página de cada hoja nos vaya marcando el número de página de la siguiente manera:

Página 1 de 100
Página 2 de 100
Página 3 de 100
….
Página 100 de 100


La solución seria utilizar una variable que nos proporciona el propio ireport: $V{PAGE_NUMBER}. Y jugar con el ámbito de ejecución (propiedad Evaluation Time).


Así se podría hacer:
– Label con el contenido “Página ”
– Text con el valor “$V{PAGE_NUMBER}” (poniendo el campo Evaluation Time en now)
– Label con el contenido ” de ”
– Text con el valor “$V{PAGE_NUMBER}” (poniendo el campo Evaluation Time en report)


21-abril-2012
admin

Ordenar un HashMap

Ejemplo de ordenación de un Map mediante keys. Tener en cuenta que las claves no deben ser repetidas, en otro caso este ejemplo no funcionará correctamente.

Map miMap= new HashMap();
miMap.put("2", "valor2");
miMap.put("1", "valor1");
miMap.put("4", "valor4");
miMap.put("3", "valor3");

Map mapOrdenado = new TreeMap(miMap);


15-marzo-2012
admin

Lenguaje de expresiones (EL) – Objetos implícitos

Se representan en las JSP mediante anotaciones del tipo: ${ … }.
De esta forma se indica que la información ingresada dentro de las llaves, no es leída literalmente, sino que se tiene que evaluar, y usar el resultado de esta evaluación.

Hay objetos que son automáticamente accesibles a cualquier etiqueta JSP. A través de ellos es posible acceder a cualquier variable de los ámbitos page, request, session, application, a parametros HTTP, cookies, valores de cabeceras, contexto de la página, y parámetros de inicialización del contexto.

– pageScope: Variables de ámbito página.
– requestScope: Variables de ámbito request.
– sessionScope: Variables de ámbito session.
– applicationScope: Variables de ámbito application.
– param: Parametros del request como cadenas.
– paramValues: Parametros del request como array de cadenas.
– header: Cabeceras del request HTTP como cadenas.
– headerValues: Cabeceras del request HTTP como array de cadenas.
– cookie: Valores de las cookies recibidas en el request.
– initParam: Parametros de inicialización de la aplicación Web.
– pageContext: El objeto PageContext de la página actual.

p.e.
${pageContext.request.requestURL} URL usada para acceder a la página.

En esta página se puede encontrar bastante más información de las propiedades de estos objetos implícitos.

7-marzo-2012
admin

Contar los días que hay entre dos fechas

A continuación se muestra una función que se podría utilizar para contar los días que hay entre dos fechas. El lenguaje utilizado es Java y se emplea el Calendar para facilitar la tarea.

    /**
     * @param desde - Date con la fecha inicial
     * @param hasta - Date con la fecha final
     * @return int - devuelve el total de días que hay entre las 
     *               dos fechas sin contar sábados ni domingos.
     */
private int devuelveDiasLaborables(Date desde, Date hasta){
     Calendar calendarDesde = Calendar.getInstance();
     calendarDesde.setTime(formatoFecha.parse(desde));		

     Calendar calendarHasta = Calendar.getInstance();
     calendarHasta.setTime(formatoFecha.parse(hasta));
     
     int contador = 0;	
     while (!calendarDesde.after( calendarHasta )) {
	
         if((calendarDesde.get(Calendar.DAY_OF_WEEK)!=Calendar.SATURDAY) &&
              (calendarDesde.get(Calendar.DAY_OF_WEEK)!=Calendar.SUNDAY)){
	      //si no es sábado ni domingo incrementamos la cuenta
	      contadorDias++;
         }					
         calendarDesde.add(Calendar.DAY_OF_MONTH, 1);//Siguiente día
     }
     return contador;
}
11-febrero-2012
admin

JRFontNotFoundException

Cuando al ejecutar un report nos encontramos con el siguiente error:
Mensaje: Font ‘Arial’ is not available to the JVM. See the Javadoc for more details.
Excepcion: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font ‘Arial’ is not available to the JVM. See the Javadoc for more details.

Si no queremos añadir un jar con la fuente (Arial en este caso). Una de las formas que se puede emplear para corregirlo consiste en, simplemente, añadirle la propiedad
net.sf.jasperreports.awt.ignore.missing.font = true
Con esto evitamos que lance la excepción ya que sustituirá la fuente Arial por otra que sí esté disponible.

Nota: Más información aquí.

8-febrero-2012
admin

TCPMON

TCPMON es un sniffer que permite visualizar los paquetes enviados por la red de una forma muy sencilla. Sobretodo, es muy útil cuando se quieren detectar problemas con Servicios Web.


En esta página hay un tutorial bastante completo sobre ello.


Sólo añadir que el tcpmon se encuentra incluido en axis. Por lo tanto, se puede lanzar simplemente ejecutando desde la consola:
java -cp axis.jar org.apache.axis.utils.tcpmon
(Nota: axis.jar está en AXIS_HOME/lib)

Páginas:«1234

Categorias

Linkedin