blog de willyxoft

Java 2 está muriendo...

El día ayer finalizó el soporte para Java Standard Edition ver. 1.4; por otra parte también a Java SE 5 (aka 1.5) solo le resta un año más de vida. Últimas versiones de la plataforma Java que alguna vez se denominó "Java 2" (J2SE).

En realidad Java SE 1.4 entra en su fase de final de servicio de su ciclo de vida (EOSL por sus siglas en inglés) después de 6 años y medio de soporte, por lo que si bien no está del todo muerto, si que agoniza, ya que dejan de atenderlo a menos que alguien pague por ello (ver Java SE for Business). La misma suerte correrá dentro de un año Java SE 5.

¿Y que pasará con J2EE? Pues al tener su base en J2SE es de esperar que también tenga sus días contados. Pero eso ya será definido por cada implementación, algunas ya lo han hecho...

Más información en:

Java SE Support Road Map

Liberado Java 6 Update 10

Ya se encuentra disponible para su descarga la tan esperada actualización 10 de Java SE 6.0: Java 6 Update 10.

Java 6 Update 10 es un importante release para toda aplicación de escritorio Java y, por supuesto, para el próximo release de Java FX a finales del presente año. Por supuesto, Java 6 Update 10 también puede ejecutar GlassFish y otros trabajos del lado servidor...

Liberado Jersey 1.0

Ha sido liberada la versión 1.0 de Jersey, que es la implementación de referencia de Sun de la especificación JAX-RS 1.0, la API para el soporte de Servicios RESTful (Servicios Web bajo la arquitectura REST) en la plataforma Java.

Los Servicios RESTful ya se podían implementar con JAX-WS, pero con JAX-RS resulta más sencillo y "adecuado", de modo que JAX-RS es a los Servicios RESTful lo que JAX-WS es a los "Servicios SOAP".

Liberados NetBeans 6.1 y Metro 1.1.1

nb61NetBeans.org libera la versión 6.1 Final de su NetBeans IDE, el cual incluye:

  • Soporte avanzado para JavaScript
  • Desempeño mejorado (40% más rápido al iniciar)
  • Soporte integrado para Spring Framework
  • Soporte para Servicios Web tipo “REST”
  • Nuevo soporte para MySQL en el Database Explorer
  • Mejoras al soporte para Ruby/JRuby

También se pueden descargar de forma separada módulos avanzados como el depurador para JavaScript, soporte para ClearCase, Axis e Hibernate, así como el EA del IDE con soporte para PHP.

Google App Engine

Como algunos han de saber Google ha puesto a disposición un entorno para aplicaciones web bajo la misma infraestrutura de sus aplicaciones llamado Google App Engine, el cual de momento sólo soporta python, pero existe la propuesta para que se soporte Java o Groovy en:

please add java or groovy support.

Favor de votar "marcando la estrella" (requiere autentificación) al lado del título del mensaje de la url anterior.

JDK 6 Update 4 con JAX-WS 2.1

Sun a liberado la actualización número 4 del JDK 6.0, el cual entre otras cosas incluye a JAX-WS 2.1 y JAXB 2.1, por lo que ya no será necesario utilizar el mecanismo de “endorsamiento” (Endorsed Standards Override Mechanism) de éstas APIs para utilizar Metro (WSIT).

Descarga de JDK/JRE 6.0 Update 4 en: Java SE Downloads.

Roadmap de Metro

Metro es un stack para servicios web propuesto por Sun, el cual contiene a JAX-WS (lo que incluye a JAXB, JAXP, StAX, SAAJ, etc.) y WSIT (WS-*). Se trata pues de una “ventanilla única” con todo lo necesario para construir servicios web, desde el más simple “hola mundo” hasta servicios web confiables, seguros y transaccionales que involucran a servicios WCF del . NET Framework.

Algunos puntos clave acerca de los futuros releases de Metro son:

Servicios Web con Java SE 6 (Parte 4)

Creando un Cliente muy simple para un Servicio Web muy simple

Ahora crearemos (en un directorio/proyecto distinto) el cliente para nuestro Servicio Web el cual debe estar publicado y en ejecución.

Primero necesitamos generar los artefactos cliente. Para ello utilizaremos la herramienta wsimport incluida en Java SE 6.0, a la cual le pasamos como argumento la ubicación del contrato del servicio, es decir el WSDL:

<pre>&gt;wsimport http://localhost:8080/hello?wsdl</pre>

Esto generará las clases que encapsulan las operaciones para la invocación de los métodos del Servicio Web. En nuestro caso se generarán seis clases dentro del paquete ‘hello’, entre ellas estan las clases hello.HelloService y hello.Hello que utilizaremos directamente en nuestro cliente.

Una vez generados los artefactos cliente solo resta crear el cliente en sí, una simple aplicación de consola:

Servicios Web con Java SE 6 (Parte 3)

Con lo realizado en el post anterior ya tenemos un sencillo Servicio Web casi listo para ser desplegado en algún contenedor Java EE; no obstante podemos probarlo sin necesidad de uno si creamos un endpoint dentro de una aplicación que actuará como host del servicio web, tal como se ilustra en el siguiente código:

Listado de SimpleHelloWS.java

<pre><strong>import javax.xml.ws.Endpoint;</strong>
import hello.Hello;

public class SimpleHelloWS {
  public static void main(String[] args) {
    String endpointAddress = &ldquo;http://localhost:8080/hello&rdquo;;
    <strong>Endpoint.publish(endpointAddress, new hello.Hello());</strong>
    System.out.println(&rdquo;El Servicio Web Hello se está ejecutando&hellip;&rdquo;);
    System.out.println(&rdquo;WSDL: &rdquo; + endpointAddress + &ldquo;?wsdl&rdquo;);
  }
}</pre>

Servicios Web con Java SE 6.0 (Parte 2)

Creando un Servicio Web muy simple

Para ilustrar la creación de Servicio Web XML con el JAX-WS 2.0 incluido en Java SE 6.0 emplearemos el clásico ejemplo de Hola Mundo (posteriormente abordaremos otros ejemplos) el cual luce así:

Listado de Hello.java

package hello;
<strong>import javax.jws.WebService;</strong>

<strong>@WebService</strong>
public class Hello {
    private String message = new String(”Hola “);
    public String sayHello(String name) {
        String msg = message + name + “.”;
        System.out.println(msg);
        return msg;
    }
}

Distribuir contenido