12 junio 2009

Eclipse no detiene los servidores correctamente

Para las versiones de Eclipse Ganymede (3.4.x), al mandar a detenerse un servidor (simple Stop sobre el servidor en la perspectiva Servers), luego de un tiempo se mostraba un error notificando que el servidor no responde y así daba la impresión de que no se lograba detener.

Posiblemente este error puede conllevar a que el IDE muestre una ventana con el siguiente mensaje:
Server [JBoss v5.0 at localhost] is not responding. Do you want to terminate this server? Click Ok to terminate the server or click Cancel to continue waiting.

Claro esta que para este caso se había definido un runtime de servidor JBoss v5.

El problema en este caso particular era que la ruta con la que configuraba los runtimes (o Server Runtime Enviroments) era relativa. Esto se hacía a fin de hacer más portable dichas configuraciones pero hubo que restringirse a utilizar rutas absolutas para solucionarlo y seguir el paso, o salir de este.., como se prefiera decir.

Por si a caso estas, con demás configuración de los runtime definidos, se pueden editar/agregar/remover en la sección Windows >> Preferences >> Server >> Runtime Environments


También vale aclarar que el mensaje, como se puede apreciar, no da pie del error en cuestión y puede aplicar a otro problema. Por ejemplo que el time out, que se le dió al server creado para ese runtime, no sea tiempo suficiente para que este se detenga, e igual salta el mensaje aunque logre detenerse tarde o temprando.
Esto lo modifican en la sección Timeouts de la definición del servidor, digamos en el Overview; y no se esta haciendo referencia a la configuración del runtime, estas son cosas diferentes.

11 junio 2009

Error al iniciar JBossAS v5

La situación es la siguiente:
Estaba trabajando con Eclipse Ganymede 2 (3.4.2). En este configure runtimes para las versiones 5.0.0, 5.0.1 y 5.1.0 de JBoss Application Server (o simplemente JBossAS).
Todo normal pero sucedía que al momento de iniciar los servidores, indistintanmente de la versión, saltaba la siguiente excepción entre otras:

"...
17:10:57,000 WARN [AnnotationCreator] No ClassLoader provided, using TCCL: org.jboss.managed.api.annotation.ManagementComponent
17:10:57,125 WARN [AnnotationCreator] No ClassLoader provided, using TCCL: org.jboss.managed.api.annotation.ManagementComponent
17:10:57,156 ERROR [AbstractKernelController] Error installing to Instantiated: name=TransactionManager state=Described
java.lang.ExceptionInInitializerError: java.net.MalformedURLException: unknown protocol: e
at com.arjuna.ats.arjuna.common.arjPropertyManager.(arjPropertyManager.java:70)
..."

Por algún motivo que no encontré, se da este problema si la ruta donde ubicamos el servidor jboss contiene espacios. Si bien, estos al momento de correr el jboss se transforman a su caracterización '%20', el problema de operar con espacios persiste.

La solución entonces es ubicar el servidor bajo una ruta que NO contenga espacios

Como comentario, no he logrado reproducir dicho problema para la versión 4.2.x del JBossAS y por eso el título de la publicación.

12 mayo 2009

Poblema al desplegar (deploy) con JasperReports+JSF+JBoss

Tenemos las siguiente situación:
  • Un poyecto Web con páginas JSF (JavaServer Faces) trabajando con implementaciones para las versiones 1.0 y 1.2 de faces.

  • JasperReports como tecnología para la generación/descarga/impresión de reportes con la cual desarrollaremos utilidades en el propio proyecto.

  • Servidor JBoss sobre el cual levantaremos el modulo web; este caso aplica para las versiones 4.2.x y 5.0.x liberadas hasta la fecha de esta publicación.

Al tratar de deployar el proyecto Web, en el cual se incluyen backerbeans y/o servlets que desarrollan utilizando JasperReports, el servidor cae en un error cíclico repitiendo combinaciones de las secuencias siguientes:
"...
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
..."

"...
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:638)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:444)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:382)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:310)
at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:468)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
12:08:43,500 ERROR [lifecycle] JSF1054: (Phase ID: RENDER_RESPONSE 6, View ID: /Jasper01.jsf) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@1d9dbfc]
..."

En consecuencia, nunca logra deployar (desplegar) el proyecto y así inicializar el servidor correctamente.

El problema surge, por algún motivo extraño por el momento, cuando se trabaja con páginas JSF con extensión .jsf. Así que lamento no poder justificar dicho problema.

Pero sí puedo presentarles una solución bien sencilla de realizar al menos. Esta pasa por trabajar/definir todas las páginas con extensión ".jsp" únicamente.


Nro de visita Cantidad de visitas recibidas