Primeros pasos con Java Web Start (2): La consola de Java

miércoles, 14 de julio de 2010

En un post anterior hacía una introducción a Java Web Start. Ahora quiero comentar acerca de una característica que proporciona Java, y esta es su consola. La consola de Java viene con la instalación del JRE. De acuerdo al sitio ayuda de Java,

La consola de Java ofrece información acerca de la versión del entorno de ejecución de Java (JRE), el directorio de inicio del usuario y los mensajes de error que aparezcan durante la ejecución de un applet o una aplicación.
Pues bien, lo que nos interesa en este momento de la consola es la posibilidad de mostrar los mensajes de error que se lanzan durante la ejecución de una aplicación; para este caso nos será de mucha ayuda al momento de probar y depurar nuestras aplicaciones Java Web Start ya que podremos ver con más detalle los errores que sucedan durante la ejecución de nuestras aplicaciones.
Por defecto la consola de Java no se muestra, por lo tanto habrá que habilitarla siguiendo los pasos que se describen en la misma página y que a continuación presento.
Habilitación de la Consola de Java para la plataforma Windows, para las versiones de Java 6.0, 1.5.0
  1. Haga clic en Inicio.
  2. Seleccione Configuración.
  3. Seleccione Panel de control.
  4. Haga doble clic en el icono de Java.
  5. Haga clic en la ficha Avanzado.
  6. Haga clic en el signo + situado junto a Consola de Java. (Img. 1)
  7. Seleccione Ver consola y haga clic en Aplicar.
Img. 1. La Ventana de configuración

Una vez hecho esto, si ejecutamos nuestra aplicación Java Web Start o cualquier otra podremos ver una ventana como la mostrada abajo en la que veremos los errores que lance la aplicación.


Para otras versiones de Java o la visualización de la consola en navegadores como Firefox y otros pueden ver la página de ayuda de Java donde se explica.

Illegal character in path at index 18: file: ~/.m2/repository/org/apache/ant/ant/1.7.0/ant-1.7.0.jar

domingo, 11 de julio de 2010

Hace unos días mientras generaba mis CRUD usando la herramienta appfuse:gen de Appfuse me mostró el siguiente error extraño:

[INFO] null
Illegal character in path at index 18: file:/~/.m2/repository/org/apache/ant/ant/1.7.0/ant-1.7.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.IllegalArgumentException
Después de buscar pocos minutos, enseguida encontré cuál era el problema. El problema es que Maven tiene ciertos conflictos al intentar parsear la ubicación del repositorio si tal ubicación contiene espacios en blanco. Y este es un error ya muy conocido que me había tocado ver antes, pero lo había olvidado (algo muy común).
Como en mi caso, que por estar usando un Windows XP en español, por defecto Maven genera el repositorio en "C:/Documents and Settings/<usuario>/.m2/repository/org/apache/ant/ant/1.7.0/ant-1.7.0.jar", por lo tanto generará este error en alguna ejecución. Los pasos para corregir el error fue:
  1. Mover el repositorio que Maven genera, que por defecto se encuentra en "C:/Documents and Settings/<usuario>/.m2/" a una que no contenga espacios como "C:\.m2"
  2. Editar el archivo de configuración de Maven que se encuentra en <MAVEN_HOME>\conf\settings.xml. Descomentar y actualizar la directiva que apunta al repositorio local en

    c:\.m2\repository
  3. y BUILD SUCCESSFUL

Espero les sirva para cualquier ejecución de Maven con el mismo problema.

SAXNotRecognizedException: Property 'http://apache.org/xml/features/nonvalidating/load-external-dtd' is not recognized

miércoles, 7 de julio de 2010

Actualmente estoy desarrollando una pequeña aplicación usando Appfuse 2.0.2. Appfuse cuenta con una herramienta de generación de código muy potente que usa Maven.

mvn appfuse:gen -Dentity=NombrePojo

Pues bien, al momento de intentar generar mis CRUD (Create, Retrieve, Update y Delete) me marcó el error:
org.xml.sax.SAXNotRecognizedException: Property 'http://apache.org/xml/features/nonvalidating/load-external-dtd'

Después de buscar un rato en la lista de correo de Appfuse encontré que es una funcionalidad no probada aún con Java 6 y recomiendan solucionarlo apuntando a otra URL, pero había que hacer algunos cambios muy drásticos, pero lo que quería era solamente solucionar ese error y no tenía inconvenientes en cambiar de versión de Java, así que
  1. instalé la versión 5 de Java,
  2. cambié el valor de la variable de entorno JAVA_HOME a la ubicación del JDK5 en vez de la 6,
  3. abrí una nueva ventana de comandos,
  4. ejecuté nuevamente la instrucción mvn appfuse:gen -Dentity=NombrePojo y
  5. vualá BUILD SUCCESSFUL.
Espero que les sirva si están usando Appfuse