Programación en Java pretende ser una web de referencia en castellano sobre programación en Java. Aquí encontrarás trucos de programación, resolución de dudas comunes, artículos, reseñas de libros y mucho más

A continuación se muestran los títulos de las 5 últimas entradas. Pero en esta misma página puedes encontrar más...

También puedes navegar por los menús de categorías y los archivos por fecha

Entradas recientes

En esta entrada os mostraremos cómo enviar sms desde una aplicación Java. Seguro que esta funcionalidad os la ha pedido algún cliente que quería integrar directamente en vuestra aplicación la posibilidad de enviar un sms en alguna situación como comunicarse con sus propios clientes, enviar una alerta en determinadas ocasiones, etc…

Lo primero es encontrar un proveedor que permita el envío de sms mediante una conexión a su servidor. Un proveedor para enviar sms sirve de intermediario entre nuestra aplicación Java y los operadores de telefonía móvil. La misión del programa Java será por tanto conectarse de algún modo al proveedor elegido (HTTP, SMTP…) y pasarle los datos del sms en algún formato (con los propios parámetros de HTTP, con un xml…).

Después de buscar entre varios proveedores, nos hemos quedado con la pasarela de envío de sms de Altiria. El envío de sms se realiza con este proveedor mediante una petición POST a su servidor con los datos del sms que se quiere enviar como parámetros de la propia petición, siendo los más importantes el contenido del sms y los destinatarios. Se puede encontrar el documento de especificaciones de la conexión también en su web.

Queremos resaltar que el para que el ejemplo que ponemos a continuación funcione y envíe un sms, es necesario ponerse en contacto con Altiria y contratar un bono de envío de sms que permita la conexión a su pasarela de envío. El ejemplo sirve para ilustrar lo fácil que sería el envío del sms una vez contratado el bono.

Ya tenemos el proveedor y el mecanismo de envío (HTTP). Ya sólo queda implementar esta conexión HTTP en nuestro programa Java. Para ello necesitamos un cliente HTTP para realizar la conexión. Hemos elegido la librería HTTP de Jakarta, (HttpClient) que debe estar presente en el classpath de nuestra aplicación. El siguiente código realiza la conexión enviando los parámetros del sms.

//Se inicia el objeto HTTP
HttpClient client = new HttpClient();
client.setStrictMode(true);
//Se fija el tiempo máximo de espera de la respuesta del servidor
client.setTimeout(60000);
//Se fija el tiempo máximo de espera para conectar con el servidor
client.setConnectionTimeout(5000);
PostMethod post = null;
//Se fija la URL sobre la que enviar la petición POST
 
//Como ejemplo se supone www.pasarela_push_altiria.com/post/sms
post = new PostMethod("http://www.pasarela_push_altiria.com/post/sms");
 
//Se fija la codificación de caracteres en la cabecera de la petición
post.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
 
//Se crea la lista de parámetros a enviar en la petición POST
NameValuePair[] parametersList = new NameValuePair[3];
parametersList[0] = new NameValuePair("dest", "34600111222");
parametersList[1] = new NameValuePair("dest", "34600111333");
parametersList[2] = new NameValuePair("msg", "Mensaje de prueba");
 
//Se rellena el cuerpo de la petición POST con los parámetros
post.setRequestBody(parametersList);
int httpstatus = 0;
String response = null;
 
try {
//Se envía la petición
httpstatus = client.executeMethod(post);
//Se consigue la respuesta
response = post.getResponseBodyAsString();
}
catch (Exception e) {
//Habrá que prever la captura de excepciones
return;
}
finally {
//En cualquier caso se cierra la conexión
post.releaseConnection();
}
 
//Habrá que prever posibles errores en la respuesta del servidor
if (httpStatus!=200){
return;
}
else {
//Se procesa la respuesta capturada en la cadena ‘‘response’’
}

Este código se traduce en el envío de un sms con el texto «Mensaje de Prueba» a los móviles 34600111222 y 34600111333.

Publicado en Artículos | Etiquetado como , | 2 Comentario »

Java objeto de ataque de virus

4 de noviembre de 2010

Leemos en Java Hispano que Java está siendo objeto de ataques para enviar spam, realizar ataques de denegación de servicio o robar información personal tuya.

La información proviene del estudio que realiza Microsoft sobre los virus detectados resultado de la ejecución de su MRT (Microsoft Removal Tool, un antivirus no residente que se actualiza todos los meses con Windows Update y se ejecuta la primera vez que reinicias el equipo después de realizar la actualización)

Ataques sobre Java

Ataques sobre Java

Entre los países más afectados, como podéis ver, se encuentra España.

La recomendación más obvia, es que mantengáis actualizado vuestro Java

Podéis leer el artículo entero aquí

Leemos en The Server Side (TSS) una discusión muy interesante acerca de las nuevas perspectivas de futuro que se abren a Java después de su reciente adquisición por Oracle. Mucho se especula acerca del futuro que le tiene Oracle reservado a Java y cómo va a evolucionar el Java Community Process (JCP) a la hora de plantear el futuro de la programación en java, ya que se duda si Oracle será capaz de contentar a la comunidad con lo que hasta ahora han sido decisiones más o menos abiertas acerca de qué modelos o funcionalidades incluir en las futuras versiones de Java. La opinión más generalizada es que Oracle hará valer su propiedad sobre Java para potenciar su visión del modelo de negocio de su empresa sobre las necesidades de la comunidad.

Ante esta perspectiva hay varios caminos, crear un nuevo lenguaje sobre la base de Java que sustituir a a Java, dejar morir a Java y pasarse a otros lenguajes de programación, o dejar que lentamente se estanque el desarrollo de Java para pasar a ser un lenguaje obsoleto.

Nosotros opinamos que es demasiado pronto para evaluar las intenciones de Oracle, pero las cartas ya están sobre la mesa, y ya hay determinadas personas, entre ellos muchos ex-desarrolladores de Java que ya están haciendo los primeros movimientos para plantear alternativas.

Fin de Java

Publicada la versión 3 de Maven

11 de octubre de 2010

Leemos en javahispano que ya está disponible la versión 3 de Maven, la nueva versión de la herramienta de administración y construcción de proyectos para la plataforma Java que se ha hecho tan popular.

Maven 3 es una reescritura y reestructuración muy amplia del proyecto, y os animamos a todos a probarla y comentar qué os parece

Podéis ver todos los detalles del lanzamiento desde la propia página de Maven

Hoy os mostramos cómo formatear una fecha de forma simple para poder mostrar simplemente el texto mediante programación en java, eliminando la complejidad de los objetos GregorianCalendar o Date, mediante la clase SimpleDateFormat

    SimpleDateFormat sdf = new SimpleDateFormat("dd - MM - yyyy");
    Calendar cal = Calendar.getInstance(); // hoy
    System.out.println("Hoy es " + sdf.format(cal.getTime()));

La clase SimpleDateFormat es muy sencilla de utilizar en java. Simplemente al constructor hay que pasarle cómo se deben formatear las fechas. dd es el día, MM es el mes y yyyy es el año. Se puede ver una lista de los posibles valores que admite en la API de SimpleDateFormat.

Una vez inicializada la clase, el método format devuelve un StringBuffer con la fecha debidamente formateada.  Se le debe pasar un objeto de tipo Date, que se puede extraer del GregorianCalendar mediante el método getTime()…y ya está este sencilla rutina de programación en java.

Hoy os presentamos el proyecto Apache POI, una librería que hemos utilizado recientemente.

El proyecto POI consiste en varias APIs para manipular los varios formatos de documentos Microsoft OLE 2 utilizando para ello una solución java. El soporte para la lectura y escritura de ficheros excel con java está ya muy maduro y el trabajo continúa para mejorar el soporte de lectura y escritura de ficheros Word en java.

Más información en Apache POI.

Esperamos pronto poder ofreceros algunos ejemplos de uso de esta librería

Publicado en Librerías | Etiquetado como , , | Sin comentarios »

La comunidad de programadores TIOBE hace un ranking mensual de los lenguajes de programación mas populares. Pues bien, este mes, Java ha perdido por primera vez desde que comenzó el ranking su primer lugar en favor de C.

Está claro que el ranking, basado en búsquedas en google y yahoo, no es perfecto, pero proporcionaba resultados consistentes y una información relevante sobre el estado de los lenguajes de programación.

Si queréis echar un vistazo al ranking de lenguajes de programación, en inglés.

Publicado en Noticias | Etiquetado como | Sin comentarios »

Tutorial básico de Hibernate

3 de marzo de 2010

A través de javahispano, hemos llegado a este tutorial básico de Hibernate, traducido por David Marco.

Puede ser una buena referencia si estás comenzando a utilizar Hibernate

http://www.davidmarco.es/tutoriales/hibernate-reference/

Publicado en Librerías, Tutorial | Etiquetado como , , | Sin comentarios »

Finalmente, la Unión Europea ha dado luz verde a la adquisición de Sun por parte de Oracle. El único escollo que estaba bloqueando la adquisición era que la Unión Europea afirmaba que disminuiría la competencia en el mercado de las bases de datos con la adquisición de MySQL. Finalmente, Oracle ha conseguido convencer a la Unión Europea para permitirle adquirir todo Sun, base de datos incluida.

Para ello, Oracle se ha comprometido a invertir en MySQL un mínimo de un 2,4% del valor de MySQL cada año durante los tres próximos años (esto es, 24 millones de dólares al año; pero 24 millones a alguno le puede parecer una cantidad «grande», así que mejor ponerlo en perspectiva.

Descanse en paz

Las ventajas de utilizar GWT para desarrollar código javascript de calidad es que el programador no tiene por qué ser experto en javascript, conocer particularidades de cada navegador, empaquetamiento de javascript, ofuscación, dependencias entre librerías, etc.

Aquí os dejamos un tutorial para exportar librerías GWT a javascript

SpringSource publica Grails 1.2

29 de diciembre de 2009

La gente de Spring ha publicado una nueva versión de Grails 1.2. Esta versión usa Spring 3.0 en su core y tiene mejor integración con spring MVC y sus anotaciones. También podemos encontrar estas otras características nuevas.

  • DSL para resolución de dependencias a través de Ivy.
  • Soporte para Named Queries. Ahora GORM te permite usar named queries de una forma muy flexible y dinámica.
  • Mejor desempeño y menor consumo de memoria. Sobre todo en la capa de la vista con los GSP
  • Mapeos URL nombrados.
  • Refactorización de la infraestructura para Testing. Ahora es posible cambiar de la implementación por default para testing (JUnit) a una diferente, gracias a una nueva arquitectura pluggable.
  • Contenedor web pluggable. Ahora es posible cambiar de contenedor web, antes solo funcionaba con jetty, ahora le han agregado soporte para Tomcat y dejaron la arquitectura abierta para que otros vendors puedan conectar diferentes contenedores web.
Publicado en Noticias | Etiquetado como , | Sin comentarios »