Estigmatizados

La informática profesional no es un juego de políticos

Netbeans Visual JSF Portlet en Tomcat 6 – Logging needed

TomcatSigo con problemas a la hora de iniciar la aplicación web que contiene el portlet JSF desarrollado conportal-pack-site-logo-medium Netbeans. En el catalina_xxx.log de Tomcat tan sólo aparecen unas escuetas líneas de error que poca luz aportan al problema.

08-sep-2009 17:27:31 org.apache.catalina.core.StandardContext start
GRAVE: Error listenerStart
08-sep-2009 17:27:31 org.apache.catalina.core.StandardContext start
GRAVE: Falló en arranque del Contexto [/AlfrescoPortlets] debido a errores previos

Accediendo a la consola de Tomcat Manager compruebo que la aplicación en el contexto Alfrescoportlets (mi aplicación con los portlets) no puede arrancar. Sé que debe estar relacionado con el JAR Hell o alguna dependencia que me falta, pero en el puñetero (con perdón) Tomcat 6 las cosas no están tan claras como en mi “amado” Tomcat 5.x. ¿Dónde demonios salen los ClassNotFoundException? ¿Por qué todo el mundo se empeña en complicar las cosas?

No me ha quedado otro remedio que definir una configuración un poco más coherente:
Sigue leyendo

Anuncios

septiembre 8, 2009 Posted by | Portales | , , | Deja un comentario

JSP para localizar el archivo JAR que contiene una clase Java

Estoy intentando desplegar un portlet JSF, desarrollado con Netbeans Portal Pack 3.0.x Como podéis observar por la conjugación del verbo intentar, no he tenido éxito todavía.

La primera prueba, con un portlet básico JSR-286, fue de maravilla. Dos clicks de ratón un deploy y ya tenía el portlet en Liferay. Los problemas vienen con el portlet visual JSF.

Comentaré en breve algunos de los problemas que he ido resolviendo a trancas y a barrancas. Ahora lo dejo en que tengo problemas de dependencias JAR en la aplicación web del portlet. Para ir resolviéndolas he creado una cutre JSP para intentar localizar las clases en el entorno de las aplicaciones web. Copiando la JSP en un contexto nos puede dar una idea aproximada de qué ClassLoader ha cargado la clase y de qué archivo Jar.

Un ejemplo de uso: http://localhost:8080/test.jsp?classname=com.liferay.portlet.PortletFilterFactory

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
   
<%
        if (request.getParameter("classname") == null) {
            out.println("Introduce el nombre de clase.");
        } else {
			String className = request.getParameter("classname");
			String normClassName = className.replace(".", "/").concat(".class");
			java.net.URL url = this.getClass().getClassLoader().getResource(normClassName);

			if (url != null)
				out.println("<b>"+url.getFile()+"</b>");
			else
				out.println("Lo siento <b>no encontrado</b>");
        }
    %>

septiembre 8, 2009 Posted by | Portales | , , , | Deja un comentario