icono_twiter
Alberto Barranco Ramón

Consultor tecnológico de desarrollo de proyectos informáticos.

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación

Somos expertos en Java/JEE

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2010-09-11

Tutorial visitado 68.962 veces Descargar en PDF
Ejemplo de uso con JSF Primefaces e Hibernate.

Ejemplo de uso con JSF 2.0, Primefaces e Hibernate


Índice de contenidos.


0. Repositorio de código

Puedes descargarte todos los ficheros que se han utilizado para este tutorial aquí.

Las librerías no se han añadido por su considerable peso, así que cuando te las bajes lo único que tienes que hacer es añadirlas al proyecto. Es aconsejable crearse una carpeta dentro del proyecto de nombre lib y desde la carpeta libraries en Netbeans añades el JAR, que previamente has ubicado en esa carpeta lib.


1. Enunciado del ejemplo

En este ejemplo vamos a suponer que somos unos cuantos amigos, a los que nos gustan los videojuegos y queremos mantener una lista actualizada de los juegos que nos compramos. Los datos que nos interesan son: una fotografía, el nombre, una descripción y el precio. En un principio queremos mostrar todos los juegos que tenemos y poder añadir nuevos juegos a medida que nos los vamos comprando y que de forma dinámica se añadan a la lista.


2. Tecnología que vamos a utilizar

Para este ejemplo, aunque sencillo, vamos a usar el patrón de diseño: modelo-vista-controlador.

  • Modelo: Para mantener los datos de los videojuegos, vamos a utilizar como gestor de bases de datos MySQL 5.1. Vamos a acceder a estos mediante Hibernate 3.2.5.
  • Vista: Para pintar los videojuegos en pantalla y permitir que se agreguen otros nuevos vamos a utilizar JSF 2.0 y Primefaces 2.1.
  • Controlador: En controlador tendremos nuestra lógica de negocio. El IDE que vamos a utilizar es Netbeans en su versión 6.8. Además como servidor utilizaremos GlassFish 3.


3. Empecemos con el Modelo

Lo decía Jack “el destripador” (vayamos por partes) y todos los profesores de algorítmica (divide y vencerás). Para afrontar un problema informático hay que dividirlo en partes más sencillas.


3.1 Instalación y configuración de Hibernate

Lo primero de todo es crear una base de datos para almacenar los datos de los videojuegos. Si no tenemos MySQL instalado podemos bajarlo de la página web oficial: http://www.mysql.com/downloads/. En la instalación es importante que nos quedemos con el puerto. En este ejemplo se ha dejado el puerto por defecto (3306). A continuación:

  • 1. Nos creamos una Base de datos de nombre videojuegos.
  • 2. Creamos una tabla de nombre juegos con los siguientes atributos: id, nombre, sinapsis, ruta (para guardar la ruta de la foto o carátula del juego) y precio.

Ahora vamos a configurar Hibernate para que pueda acceder a la base de datos que nos acabamos de crear. En Netbeans contamos con una interfaz visual bastante amigable aparte del XML.

Para una conexión directa con la base de datos serían necesarios los siguientes parámetros:

  • Driver para conexión con mysql.
  • La url compuesta por:
    • 1. Dirección: 127.0.0.1 ó podríamos poner también localhost.
    • 2. El puerto. Como no lo cambiamos sigue siendo el puerto por defecto 3306.
    • 3. El nombre de la base de datos.
  • El usuario: root.
  • La contraseña: admin.

Si nos fijamos en el archivo hibernate.cfg.xml, las propiedades quedarían de la siguiente forma.

En el XML tendría su correspondencia:

Nota: es muy recomendable que la contraseña no sea admin, sino algo más seguro.

Si nos fijamos en la línea 5 de nuestro XML tenemos el dialecto que es el correspondiente a MySQL. En la parte gráfica estaría dentro de Optional Properties en la subsección Configuration Properties.

Vamos a añadir una propiedad más a la configuración de Hibernate. Queremos que Hibernate linkee la session al hilo correspondiente de manera automática, por lo que añadimos lo siguiente:

En la interfaz gráfica esta propiedad puede verse dentro de Optional Properties en la subsección Miscellaneus Properties.

En este momento podemos conectar Hibernate con nuestra base de datos en MySQL. Ahora necesitamos una clase que tenga los mismos atributos que nuestra tabla juegos, para poder guardar los datos que escribimos o leemos de la base de datos. A estas clases se las conoce como POJO.


3.2 Creación del POJO

POJO o Plain Old Java Object, son clases que no dependen del framework, es decir, no heredan interfaces ni implementan clases del framework, que en este caso es Hibernate. Diríamos entonces que Hibernate es un framework no intrusivo. A la vez, Hibernate exige que las clases sean Bean, es decir, clases simples. Estas clases no tienen constructores con parámetros y se caracterizan por tener sus atributos marcados como privados, y una serie de métodos conocidos como getters y setters para leer o escribir dichos atributos. Vamos a llamar a nuestra nueva clase VideojuegoPojo que será de la siguiente forma.

Los setters deberían quedarnos como los siguientes.


3.3 Mapeo entre la base de datos y nuestra clase POJO

Ya tenemos configurada la conexión a la Base de Datos y tenemos nuestra clase Pojo para guardar información. Ahora solo nos queda hacer corresponder los atributos de la clase con los distintos campos de la tabla juegos. A esto se le llama mapping.

Para hacerlo, en nuestro package actual, pincharemos en New, y en Hibernate Mapping Wizard. Esto nos creará un archivo al que nosotros hemos llamado VideojuegoPojo.hbm.xml.

  • En la línea 4 estamos fijando el nombre de la clase (VideojuegoPojo) que queremos hacer corresponder con una tabla de la base de datos (juegos).
  • Si nos fijamos en las líneas 7-12, lo que estamos haciendo es generar la clave primaria de la tabla juegos, que se llama id, y es de tipo integer. Lo hacemos mediante el algoritmo Hilo que proporciona Hibernate. Este algoritmo genera un número único, que vale para claves primarias, a partir de una tabla auxiliar en la base de datos que se encarga de mantener el siguiente número a aplicar el algoritmo. Esta tabla en nuestro ejemplo es jid, que tendría un solo campo que es next, y que hemos inicializado en un principio a 1.

Nota: Podemos poner el campo id, que es primary key de la tabla juegos con AUTOINCREMENT. Si le damos esa propiedad cuando creamos la tabla juegos, no necesitaremos generar nosotros la clave.

Los demás atributos irían mapeados de la siguiente forma:

Por último tan solo nos queda hacer constancia en la configuración de hibernate de este mapeo. Lo podemos hacer incluyendo en el archivo hibernate.cfg.xml la siguiente línea.

En la parte gráfica se verían reflejados todos los mapeos en la pestaña de Mappings.


3.4 Creándonos nuestro DAO

DAO (Data Access Object) va a ser un componente mediante el cual accederemos a los datos. Creándonos el DAO, nuestra capa de negocio no necesitará conocer el destino final de la información que maneja. Aunque está considerado una buena práctica, si estamos en entornos donde el rendimiento es una prioridad no deberíamos utilizarlo.

Lo que queremos obtener para el ejemplo que estamos tratando es una lista de videojuegos con todos los juegos que tiene la base de datos, así como poder introducir uno nuevo. Estos métodos deberían ser parecidos a lo siguiente:

Si nos fijamos a partir de la línea 49 tenemos el modo estándar de hacer una transacción.

  • 1. Empezamos la transacción.
  • 2. Hacemos las operaciones en la base de datos.
  • 3. Hacemos el Commit.
  • 4. Si algo ha ido mal lo notificamos en el Logger y hacemos un Rollback para que la base de datos vuelva al mismo estado previo a las operaciones.

En la línea 48 vemos que está implicada la clase ConfHibernate. Esto no es más que el Session Factory. Está detallado a continuación.


NOTA: Tenemos solo una session, por eso esta clase no tiene constructor. Cuando queramos usar la session lo haremos mediante la llamada getCurrentSession(); Al finalizar deberemos cerrar la session, en este ejemplo en el destructor del DAO.

Ya solo nos quedaría la parte necesaria para introducir un juego nuevo en la base de datos. Completaríamos nuestro DAO con el siguiente método.


4. Creando la Vista y el Controlador

La vista va a estar dividida en dos partes. En una primera parte vamos a tener los videojuegos y debajo vamos a dar la opción de introducir uno nuevo. Para mostrar los videojuegos nos vamos a servir de Primefaces, ya que sus componentes nos van a resultar muy útiles. Para poder utilizarlos primero vamos a tener que configurar el archivo web.xml, para añadir los filtros necesarios para subir ficheros, en donde podremos indicar filtros para los tamaños de los ficheros, y el Servlet de Primefaces. Web.xml nos quedaría de la siguiente forma.


Ahora ya podemos usar Primefaces en nuestro index.xhtml. Para la primera parte vamos a usar un componete de Primefaces llamado dataTable. Este componente se rellena con una lista de objetos, que van a ser nuestros videojuegos, de la siguiente forma.

NOTA: Primefaces es un Api con más de 90 componentes para JSF que podeis descargaros de http://www.primefaces.org/downloads.html.

Podemos observar en la línea 16 como la tabla se va a pintar a partir de un atributo de la clase TableVideojuegoPojo, que se llama listaVideojuegos. La clase TableVideojuegoPojo sería pues nuestro controlador, encargado de pedir al DAO los datos, y si fuera necesario modificarlos o hacer cualquier tipo de tratamiento antes de mostrarlos en la vista. En la línea 22 si nos fijamos estamos construyendo la dirección de la foto a pintar teniendo en cuenta la carpeta que contiene DAO y la ruta de la foto. Esto se detalla más adelante. Nuestro controlador es muy simple en este caso.

Quizás lo más importante sea la línea 11 @ManagedBean, con lo que estamos indicando que la vista va a tener acceso a sus atributos, precisamente mediante los getters y setters.

Para la segunda parte simplemente vamos a dar la opción al usuario de rellenar los datos de un nuevo videojuego, subir una foto y darlo de alta en la base de datos. Después debería actualizarse la tabla para mostrarlo. Nos quedaría algo parecido a lo siguiente.

Como vemos, los datos que introduce el usuario los vamos a ir guardando en la clase nuevoJuegoBean, que también estaría actuando de controlador. Le estaríamos a su vez encargando la subida de la foto como se puede ver en la línea 49, así como grabar el juego (nuevoJuegoBean.grabarJuego) y actualizar la tabla (update=”table”), acciones ambas contempladas en la línea 53. Vamos ahora a ver cómo podemos grabar todos los atributos de un juego en una misma instancia de nuevoJuegoBean, gestionar la foto y grabarlo todo en la base de datos.

Un punto importante es la línea 15. Con @ViewScoped lo que estamos indicando es que todos los parámetros que introdujo el usuario en el form anterior se van a guardar en la misma instancia de NuevoJuegoBean, y se va a gestionar la foto y se va a subir con los atributos que se han introducido. Si no lo pusiéramos se nos crearían varias instancias de NuevoJuegoBean y cuando fuéramos a grabar el juego no podríamos ver el Nombre, la sinapsis, la descripción y la ruta de la foto. Igual que vemos en la foto algunos setters, estarían los getters.

En cuanto a grabarJuego, simplemente tendríamos que pasarle al DAO los datos indicados por el usuario. De esta forma estamos ganando abstracción. A este nivel no sabemos donde se van a guardar esos datos, el DAO se encarga de ello. En esta línea va también el método que hay a continuación, el accionFileUpload. Este método simplemente se encarga de quedarse con la ruta de la foto, que es lo que se guarda en la base de datos, y le encarga al DAO la administración de la misma. Así desde este nivel no conocemos la carpeta o directorio donde se va a guardar la misma, ganando en abstracción. Vamos ahora a completar nuestro DAO que sí tendrá esas direcciones tanto virtuales como físicas donde se guardan las imágenes y a su método gestionarFotoSubida.

La carpeta virtual sería /Imagenes/ y la carpeta física para este ejemplo sería C:\\Users\\Alberto\\Documents\\NetBeansProjects\\Gamer\\build\\web\\Imagenes\\ y es donde guardaremos físicamente la foto que manda el usuario de la siguiente forma.

Con esto tendríamos completo el DAO.


5. Conclusiones

Después de haber probado la librería he podido observar las siguientes ventajas:

  • Primefaces cuenta con un buen número de componentes (más de 90) que resultan estéticamente muy agradables.
  • Primefaces es compatible con JSF 1.2 en su versión 1, y compatible con JSF 2.0 en su versión 2.
  • Soporta Ajax sin que el desarrollador tenga que ver o hacer casi nada. Ya hemos visto que con indicar que el componente dataTable sea dinámico, y hacer un update de ese componente desde cualquier otro, tendríamos solucionado la actualización.
  • Se trata de una librería en crecimiento con una comunidad muy activa. Cuentan con un foro de soporte bastante acitvo en donde resuelven dudas y reciben feedback de los usuarios para mejorar la librería y corregir bugs.

Primefaces me ha parecido una opción a tener muy en cuenta a la hora de trabajar con JSF.

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Fecha publicación: 2014-09-07-03:14:43

Autor: ftorres

Muy bueno el tutorial. ! Te felicito. Me sirvio bastante para el desarrollo de mi aplicación.

Fecha publicación: 2014-03-24-19:02:15

Autor: HMJ

xmlns:p="http://primefaces.prime.com.tr/ui"> perdon es este ya cree la carpeta lib sentro de mi proyecto y aun asi me marca que no puede encontrar el archivo

Fecha publicación: 2014-03-24-18:54:11

Autor: HMJ

xmlns:p="http://primefaces.prime.com.tr/ui"> perdon es este ya cree la carpeta lib sentro de mi proyecto y aun asi me marca que no puede encontrar el archivo

Fecha publicación: 2014-03-24-18:52:48

Autor: HMJ

hola alberto recien estoy checando tu tutorial y me marca este error al cargar la libreria especificamente cuales usaste para trabajar este proyecto? xmlns:p="http://primefaces.prime.org/ui">

Fecha publicación: 2013-10-03-23:34:10

Autor: ferdave

Hola que tal estuve siguiendo tu tutorial cambiando algunos parametros para utilizar apache tomcat 7 sin embargo la consola output de apache en netbeans no me muesra nada, como si no estuviera escuchando ningun evento en la vista con actionListener="#{nuevoJuegoBean.grabarJuego}" alguna sugerencia?

Fecha publicación: 2012-09-04-12:58:47

Autor: Carol22

Finalmente encontré está imagen: http://img404.imageshack.us/img404/8241/09112011015021pm.png que explica como limpiar el log de Tomcat, pero al iniciar Tomcat... me daba error, por lo que no podía....
He desinstalado y vuelto a instalar todo el Netbeans, con Tomcat incluido y me funciona todo correctamente!!!

Con esto creo que por fin puedo dejar de molestarte ;)

Muchísimas gracias por toda la ayuda y los consejos!!!!!!
Te mereces el cielo!!

Fecha publicación: 2012-09-04-12:36:35

Autor: Alberto

Buenas Carol,

me parece una buena opción el trio JSF-Spring-Hibernate. Aquí encontrarás muchos tutoriales por si te surjen dudas sobre cualquiera de esas tecnologías. Maven es un gestor de dependencias. Tú le indicas que librerías quieres usar, y el solito se los baja y además te empaqueta la aplicación de una forma limpia y ordenada. A mi personalmente me gusta más Eclipse que Netbeans, pero ambos te valen para desarrollar. Lo demás me parece correcto. Mucha suerte con la aplicación.

Fecha publicación: 2012-09-04-11:47:17

Autor: Carol22

Hola Alberto!!
- Finalmente conseguí que me funcionara el proyecto original, al crear los pojo y los archivos de mapeo con "Hibernate Mapping Files and POJOs from a Database", di por sentado que estaban bien, pero... había una 'ñ' por ahí... Como lo probaba con Tomcat (y con Tomcat no me funciona...) no me indicaba el error...
- Uso Tomcat dentro de NetBeans, he estado buscando algo para limpiar el log, pero... de momento no he encontrado nada...

Gracias por todo!! Muy amable!!


P.D: Tema aparte... (comprendo que no contestes... soy una pesada...). He empezado a hacer una aplicación, bastante grande (al menos para mi) con 36 tablas, para gestionar una empresa. La tengo que hacer desde 0, y como no sé de nada... quisiera hacerlo con las herramientas mejores, que me vayan a ser más útiles en el futuro. ¿Qué te parece JSF-Spring-Hibernate? Valoré la opción de EJB 3 en lugar de Spring, pero aparentemente me pareció más complicado y no veo muchas ventajas (http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EJB3vsSpring) Ya puestos... ¿Debería usar Maven también (que todavía no tengo muy claro lo que es...)? A parte de eso uso Netbeans, MySQL, servidor OVH con Centos y Tomcat ¿Debería cambiar algo de esto?

Fecha publicación: 2012-09-03-14:34:03

Autor: Alberto

Hola Carol, no me había dado cuenta cuando leí las trazas de tu servidor de que era un Tomcat porque siempre trabajo con Tomcat y no había caído en que este proyecto está hecho para Glassfish. Estás desplegando la aplicación en Tomcat desde el propio Netbeans o desde la instalación del tomcat en tu ordenador ?
- Si es desde la instalación de tu ordenador, necesitas generar un WAR con este proyecto y copiarlo en la carpeta HOME_DE_TU_TOMCAT/webapps y quitar las demás aplicaciones que tengas en esa carpeta, para que no mezcle los logs.
- Estoy desconectado de Netbeans y ya no estoy seguro de que pinchando en build sobre el proyecto web te genere un WAR, ya que desde hace unos años trabajo con Maven, que me empaqueta los proyectos Web en un .war y los despliego en Tomcat sin problemas.
- Básicamente lo que tienes que intentar conseguir es generar un WAR para poder desplegar el proyecto web y que te funcione en Tomcat.

Fecha publicación: 2012-09-03-13:26:45

Autor: Carol22

Hola Alberto!! Tengo que hacer un club de fans o algo...

Creándolo desde cero... NO he conseguido que funcione, pero cogiendo el tuyo de base y modificandolo SI!!!

Pero sólo cuando utilizo GlassFish, en Tomcat me sigue dando un error (Deployment error: Starting of Tomcat failed.), el log sigue mezclándome proyectos, y eso que vacié por completo el Workspace...

"Exception in thread "Thread-1" java.lang.OutOfMemoryError: PermGen space" Me sigue apareciendo y eso que probé a añadir:
export JAVA_OPTS="-XX:MaxPermSize=512m"
En el startup.sh de tomcat, justo detrás de la línea: #!bin/sh

( Como recomiendan en esta web: http://artur.ejsmont.org/blog/content/fixing-javalangoutofmemoryerror-permgen-out-of-memory-in-grails-sts-and-tomcat )

El problema es... que el servidor donde supone tiene que estar la aplicación... no tiene GlassFish, por lo que... tengo que conseguir que funcione en Tomcat :(

Gracias!!

Fecha publicación: 2012-08-31-12:55:09

Autor: Alberto

Carol, creo que estás mezclando proyectos, porque en las trazas salen temas de configuración de Spring, que se salen del ámbito del tutorial. Mi recomendación es la siguiente: Borra los workspaces y vuelve a empezar. Te descargas de nuevo el proyecto, y ya si quieres vas modificando sobre la marcha, y a cada modificación vuelves a desplegar y ves que funciona. También te aconsejo que antes de modificar estudies cada componente y sepas para que sirve así si lo sustituyes por otro tienes que asegurarte que cumple la misma función. Hay muchos tutoriales en el web de como integrar Hibernate + Spring + JSF pero es muy dificil que sin tener experiencia salgan estas cosas a la primera, no te desanimes. Estoy viendo también en las trazas que te está dando un PermGen Space, y para solucionarlo puedes añadir esta propiedad a las propiedades de la JVM cuando inicias el servidor: -XX:MaxPermSize=128M

Fecha publicación: 2012-08-31-11:57:45

Autor: Carol22

Y en el otro documento de Tomcat (que no pone log) y que se abre el output pone:

Using CATALINA_BASE: "C:Userscarol.netbeans7.1.1apache-tomcat-7.0.22.0_base"
Using CATALINA_HOME: "C:Program FilesApache Software FoundationApache Tomcat 7.0.22"
Using CATALINA_TMPDIR: "C:Userscarol.netbeans7.1.1apache-tomcat-7.0.22.0_basetemp"
Using JRE_HOME: "C:Program FilesJavajdk1.7.0_04"
Using CLASSPATH: "C:Program FilesApache Software FoundationApache Tomcat 7.0.22binbootstrap.jar;C:Program FilesApache Software FoundationApache Tomcat 7.0.22bintomcat-juli.jar"
ago 31, 2012 11:52:05 AM org.apache.catalina.core.AprLifecycleListener init
Información: La biblioteca nativa de Apache Tomcat basada en ARP que permite un rendimiento óptimo en entornos de desarrollo no ha sido hallada en java.library.path: C:Program FilesJavajdk1.7.0_04bin;C:WindowsSunJavabin;C:Windowssystem32;C:Windows;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:Program FilesMySQLMySQL Server 5.5bin;.
ago 31, 2012 11:52:06 AM org.apache.coyote.AbstractProtocol init
Información: Initializing ProtocolHandler ["http-bio-8084"]
ago 31, 2012 11:52:06 AM org.apache.coyote.AbstractProtocol init
Información: Initializing ProtocolHandler ["ajp-bio-8009"]
ago 31, 2012 11:52:06 AM org.apache.catalina.startup.Catalina load
Información: Initialization processed in 996 ms
ago 31, 2012 11:52:06 AM org.apache.catalina.core.StandardService startInternal
Información: Arrancando servicio Catalina
ago 31, 2012 11:52:06 AM org.apache.catalina.core.StandardEngine startInternal
Información: Starting Servlet Engine: Apache Tomcat/7.0.22
ago 31, 2012 11:52:06 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración AppWeb.xml
ago 31, 2012 11:52:07 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración AppWeb1.1.xml
ago 31, 2012 11:52:07 AM org.apache.tomcat.util.digester.Digester fatalError
Grave: Parse Fatal Error at line 113 column 6: El destino de la instrucción de procesamiento que coincide con "[xX][mM][lL]" no está permitido.
org.xml.sax.SAXParseException; systemId: jndi:/localhost/AppWeb1.1/WEB-INF/web.xml; lineNumber: 113; columnNumber: 6; El destino de la instrucción de procesamiento que coincide con "[xX][mM][lL]" no está permitido.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1375)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanPIData(XMLScanner.java:662)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanPIData(XMLDocumentFragmentScannerImpl.java:979)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanPI(XMLScanner.java:630)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:913)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537)
at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1759)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1266)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:896)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:322)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:633)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:558)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1329)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:334)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.startup.Catalina.start(Catalina.java:621)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)

ago 31, 2012 11:52:07 AM org.apache.catalina.startup.ContextConfig parseWebXml
Grave: Error de evaluación (parse) en el archivo web.xml de la aplicación a jndi:/localhost/AppWeb1.1/WEB-INF/web.xml
org.xml.sax.SAXParseException; systemId: jndi:/localhost/AppWeb1.1/WEB-INF/web.xml; lineNumber: 113; columnNumber: 6; El destino de la instrucción de procesamiento que coincide con "[xX][mM][lL]" no está permitido.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1375)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanPIData(XMLScanner.java:662)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanPIData(XMLDocumentFragmentScannerImpl.java:979)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanPI(XMLScanner.java:630)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:913)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537)
at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1759)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1266)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:896)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:322)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:633)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:558)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1329)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:334)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.startup.Catalina.start(Catalina.java:621)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)

ago 31, 2012 11:52:07 AM org.apache.catalina.startup.ContextConfig parseWebXml
Grave: Se ha producido en la línea 113 columna 6
ago 31, 2012 11:52:07 AM org.apache.catalina.startup.ContextConfig configureStart
Grave: Esta aplicación está marcada como no disponible debido a los errores precedentes
ago 31, 2012 11:52:07 AM org.apache.catalina.core.StandardContext startInternal
Grave: Error getConfigured
ago 31, 2012 11:52:07 AM org.apache.catalina.core.StandardContext startInternal
Grave: Falló en arranque del Contexto [/AppWeb1.1] debido a errores previos
ago 31, 2012 11:52:07 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración AppWeb1.2.xml
ago 31, 2012 11:52:19 AM org.springframework.web.context.ContextLoader initWebApplicationContext
Información: Root WebApplicationContext: initialization started
ago 31, 2012 11:52:19 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
Información: Refreshing Root WebApplicationContext: startup date [Fri Aug 31 11:52:19 CEST 2012]; root of context hierarchy
ago 31, 2012 11:52:19 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
Información: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
ago 31, 2012 11:52:20 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
Información: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1f68bf7: defining beans []; root of factory hierarchy
ago 31, 2012 11:52:20 AM org.springframework.web.context.ContextLoader initWebApplicationContext
Información: Root WebApplicationContext: initialization completed in 407 ms
ago 31, 2012 11:52:20 AM com.sun.faces.config.ConfigureListener contextInitialized
Información: Inicializando Mojarra 2.1.1 (FCS 20110408) para el contexto '/AppWeb1.2'
ago 31, 2012 11:52:20 AM com.sun.faces.spi.InjectionProviderFactory createInstance
Información: JSF1048: hay presentes anotaciones PostConstruct/PreDestroy. Los métodos de beans administrados marcados con estas anotaciones procesarán dichas anotaciones.
ago 31, 2012 11:52:21 AM org.primefaces.webapp.PostConstructApplicationEventListener processEvent
Información: Running on PrimeFaces 3.4.RC1
ago 31, 2012 11:52:21 AM org.springframework.web.servlet.FrameworkServlet initServletBean
Información: FrameworkServlet 'dispatcher': initialization started
ago 31, 2012 11:52:21 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
Información: Refreshing WebApplicationContext for namespace 'dispatcher-servlet': startup date [Fri Aug 31 11:52:21 CEST 2012]; parent: Root WebApplicationContext
ago 31, 2012 11:52:21 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
Información: Loading XML bean definitions from ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
ago 31, 2012 11:52:21 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
Información: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1e89a4d: defining beans [org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping#0,urlMapping,viewResolver,indexController]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@1f68bf7
ago 31, 2012 11:52:21 AM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
Información: Mapped URL path [/index.htm] onto handler 'indexController'
ago 31, 2012 11:52:21 AM org.springframework.web.servlet.FrameworkServlet initServletBean
Información: FrameworkServlet 'dispatcher': initialization completed in 364 ms
ago 31, 2012 11:52:21 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración AppWeb1.3.xml
ago 31, 2012 11:52:26 AM com.sun.faces.config.ConfigureListener contextInitialized
Información: Inicializando Mojarra 2.1.1 (FCS 20110408) para el contexto '/AppWeb1.3'
ago 31, 2012 11:52:27 AM com.sun.faces.spi.InjectionProviderFactory createInstance
Información: JSF1048: hay presentes anotaciones PostConstruct/PreDestroy. Los métodos de beans administrados marcados con estas anotaciones procesarán dichas anotaciones.
ago 31, 2012 11:52:27 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración AppWeb1.5.xml APPWEB1.5 ES MI APLICACIÓN ACTUAL, LOS OTROS ESTÁN CERRADOS...
ago 31, 2012 11:52:33 AM com.sun.faces.config.ConfigureListener contextInitialized
Información: Inicializando Mojarra 2.1.1 (FCS 20110408) para el contexto '/AppWeb1.5'
ago 31, 2012 11:52:33 AM com.sun.faces.spi.InjectionProviderFactory createInstance
Información: JSF1048: hay presentes anotaciones PostConstruct/PreDestroy. Los métodos de beans administrados marcados con estas anotaciones procesarán dichas anotaciones.
ago 31, 2012 11:52:34 AM org.primefaces.webapp.PostConstructApplicationEventListener processEvent
Información: Running on PrimeFaces 3.4.RC1
ago 31, 2012 11:52:34 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración EjemploDojo.xml
ago 31, 2012 11:52:34 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración Ejemplo_PrimeFaces.xml
ago 31, 2012 11:52:38 AM com.sun.faces.config.ConfigureListener contextInitialized
Información: Inicializando Mojarra 2.1.1 (FCS 20110408) para el contexto '/Ejemplo_PrimeFaces'
ago 31, 2012 11:52:38 AM com.sun.faces.spi.InjectionProviderFactory createInstance
Información: JSF1048: hay presentes anotaciones PostConstruct/PreDestroy. Los métodos de beans administrados marcados con estas anotaciones procesarán dichas anotaciones.
ago 31, 2012 11:52:39 AM org.primefaces.webapp.PostConstructApplicationEventListener processEvent
Información: Running on PrimeFaces 3.4.RC1
ago 31, 2012 11:52:39 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración Encriptador.xml
ago 31, 2012 11:52:39 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración Gamer.xml
ago 31, 2012 11:52:40 AM com.sun.faces.config.ConfigureListener contextInitialized
Información: Inicializando Mojarra 2.1.1 (FCS 20110408) para el contexto '/Gamer'
ago 31, 2012 11:52:40 AM com.sun.faces.spi.InjectionProviderFactory createInstance
Información: JSF1048: hay presentes anotaciones PostConstruct/PreDestroy. Los métodos de beans administrados marcados con estas anotaciones procesarán dichas anotaciones.
ago 31, 2012 11:52:42 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración jcatalog.xml
ago 31, 2012 11:52:42 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
Información: validateJarFile(C:UserscarolDesktopNetBeansProjectsCatalogobuildwebWEB-INFlibservlet.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
ago 31, 2012 11:52:42 AM org.apache.catalina.startup.TaglibUriRule body
Información: TLD skipped. URI: http://www.springframework.org/tags is already defined
ago 31, 2012 11:52:42 AM org.apache.catalina.core.StandardContext addApplicationListener
Información: El escuchador "com.sun.faces.config.ConfigureListener" ya está configurado para este contexto. La definición duplicada ha sido ignorada.
ago 31, 2012 11:52:42 AM com.sun.faces.config.ConfigureListener contextInitialized
Información: Inicializando Mojarra 2.1.1 (FCS 20110408) para el contexto '/jcatalog'
ago 31, 2012 11:52:43 AM com.sun.faces.spi.InjectionProviderFactory createInstance
Información: JSF1048: hay presentes anotaciones PostConstruct/PreDestroy. Los métodos de beans administrados marcados con estas anotaciones procesarán dichas anotaciones.
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: C:Program FilesApache Software FoundationApache Tomcat 7.0.22logscatalog.log (Acceso denegado)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
at java.io.FileOutputStream.<init>(FileOutputStream.java:136)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:272)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:151)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:247)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:123)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:87)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:645)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:603)
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:500)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:406)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:432)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:460)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:113)
at org.apache.log4j.Logger.getLogger(Logger.java:85)
at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:102)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)
at catalog.view.util.SecurityFilter.<init>(SecurityFilter.java:36)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:127)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5262)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5257)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
11:52:44,468 INFO ContextLoader:194 - Root WebApplicationContext: initialization started
11:52:44,581 INFO XmlWebApplicationContext:456 - Refreshing Root WebApplicationContext: startup date [Fri Aug 31 11:52:44 CEST 2012]; root of context hierarchy
11:52:44,716 INFO XmlBeanDefinitionReader:315 - Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
11:52:45,005 INFO PropertyPlaceholderConfigurer:177 - Loading properties file from ServletContext resource [/WEB-INF/jdbc.properties]
11:52:45,008 INFO DefaultListableBeanFactory:422 - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1758895: defining beans [propertyConfigurer,dataSource]; root of factory hierarchy
11:52:45,011 ERROR ContextLoader:227 - Context initialization failed
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/jdbc.properties]
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:78)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:663)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:638)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204)
at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:80)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1228)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1147)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/jdbc.properties]
at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:117)
at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:181)
at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:161)
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:69)
... 18 more
ago 31, 2012 11:52:45 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración LoginApplet.xml
ago 31, 2012 11:52:45 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración manager.xml
ago 31, 2012 11:52:45 AM org.apache.catalina.startup.HostConfig deployDescriptor
Información: Desplieque del descriptor de configuración ROOT.xml
ago 31, 2012 11:52:45 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
Información: validateJarFile(C:UserscarolDesktopNetBeansProjectsJavaServerFacestargetJavaServerFacesWEB-INFlibservlet-api-2.5.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
ago 31, 2012 11:52:45 AM org.springframework.web.context.ContextLoader initWebApplicationContext
Información: Root WebApplicationContext: initialization started
ago 31, 2012 11:52:45 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
Información: Refreshing org.springframework.web.context.support.XmlWebApplicationContext@c3fae8: display name [Root WebApplicationContext]; startup date [Fri Aug 31 11:52:45 CEST 2012]; root of context hierarchy
ago 31, 2012 11:52:45 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
Información: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
ago 31, 2012 11:52:46 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
Información: Loading XML bean definitions from ServletContext resource [/WEB-INF/classes/config/spring/beans/DataSource.xml]
ago 31, 2012 11:52:46 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
Información: Loading XML bean definitions from ServletContext resource [/WEB-INF/classes/config/spring/beans/HibernateSessionFactory.xml]
ago 31, 2012 11:52:46 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
Información: Loading XML bean definitions from ServletContext resource [/WEB-INF/classes/com/mkyong/customer/spring/CustomerBean.xml]
ago 31, 2012 11:52:46 AM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
Información: Bean factory for application context [org.springframework.web.context.support.XmlWebApplicationContext@c3fae8]: org.springframework.beans.factory.support.DefaultListableBeanFactory@7d7d16
ago 31, 2012 11:52:46 AM org.springframework.core.io.support.PropertiesLoaderSupport loadProperties
Información: Loading properties file from ServletContext resource [/WEB-INF/classes/config/database/db.properties]
ago 31, 2012 11:52:46 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
Información: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@7d7d16: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,dataSource,sessionFactory,customerBo,customerDao]; root of factory hierarchy
ago 31, 2012 11:52:46 AM org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
Información: Loaded JDBC driver: com.mysql.jdbc.Driver
ago 31, 2012 11:52:48 AM org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons
Información: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@7d7d16: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,dataSource,sessionFactory,customerBo,customerDao]; root of factory hierarchy
ago 31, 2012 11:52:48 AM org.springframework.web.context.ContextLoader initWebApplicationContext
Grave: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/config/spring/beans/HibernateSessionFactory.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.OutOfMemoryError: PermGen space
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.OutOfMemoryError: PermGen space
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:115)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
... 24 more
Caused by: java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.class$(LocalSessionFactoryBean.java:174)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.<init>(LocalSessionFactoryBean.java:174)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)

ago 31, 2012 11:52:49 AM org.apache.catalina.core.ContainerBase addChildInternal
Grave: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:633)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:558)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1329)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:334)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.startup.Catalina.start(Catalina.java:621)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
at org.apache.tomcat.util.threads.DedicatedThreadExecutor.execute(DedicatedThreadExecutor.java:62)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5220)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
... 29 more
Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
at java.util.concurrent.FutureTask.get(FutureTask.java:111)
at org.apache.tomcat.util.threads.DedicatedThreadExecutor.execute(DedicatedThreadExecutor.java:56)
... 31 more
Caused by: java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at com.sun.faces.config.WebConfiguration.<init>(WebConfiguration.java:87)
at com.sun.faces.config.WebConfiguration.getInstance(WebConfiguration.java:178)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:159)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

ago 31, 2012 11:52:49 AM org.apache.catalina.startup.HostConfig deployDescriptor
Grave: Error durante el despliegue del descriptor de configuración ROOT.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:816)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:633)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:558)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1329)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:334)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.startup.Catalina.start(Catalina.java:621)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)

java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.apache.catalina.core.ContainerBase.threadStart(ContainerBase.java:1336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1044)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.startup.Catalina.start(Catalina.java:621)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
Exception in thread "Thread-1" java.lang.OutOfMemoryError: PermGen space
at java.util.WeakHashMap.values(WeakHashMap.java:892)
at org.apache.juli.ClassLoaderLogManager.shutdown(ClassLoaderLogManager.java:324)
at org.apache.juli.ClassLoaderLogManager$Cleaner.run(ClassLoaderLogManager.java:54)

Fecha publicación: 2012-08-31-11:47:23

Autor: Carol22

Muchas gracias!! (otra vez...)
He estado mirando el log y buscando por google, pero... debo ser muy tonta porque no encuentro nada que funcione...

ago 31, 2012 11:42:50 AM org.apache.catalina.core.ApplicationContext log
Información: Initializing Spring root WebApplicationContext
ago 31, 2012 11:42:52 AM org.apache.catalina.core.ApplicationContext log
Información: Initializing Spring FrameworkServlet 'dispatcher'
ago 31, 2012 11:43:15 AM org.apache.catalina.core.ApplicationContext log
Información: Initializing Spring root WebApplicationContext
ago 31, 2012 11:43:16 AM org.apache.catalina.core.ApplicationContext log
Grave: StandardWrapper.Throwable
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/jdbc.properties]
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:78)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:663)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:638)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204)
at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:80)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1228)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1147)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/jdbc.properties]
at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:117)
at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:181)
at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:161)
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:69)
... 18 more

ago 31, 2012 11:43:16 AM org.apache.catalina.core.StandardContext loadOnStartup
Grave: El Servlet /jcatalog lanzó excepción de load() JCATALOG ERA UN PROYECTO DE PRUEBA QUE YA HE CERRADO, NO SÉ PORQUE SALE...
java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/jdbc.properties]
at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:117)
at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:181)
at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:161)
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:69)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:663)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:638)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204)
at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:80)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1228)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1147)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

ago 31, 2012 11:43:16 AM org.apache.catalina.core.ApplicationContext log
Información: Initializing Spring root WebApplicationContext
ago 31, 2012 11:43:19 AM org.apache.catalina.core.StandardContext listenerStart
Grave: Excepción enviando evento inicializado de contexto a instancia de escuchador de clase org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/config/spring/beans/HibernateSessionFactory.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.OutOfMemoryError: PermGen space
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.OutOfMemoryError: PermGen space
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:115)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
... 24 more
Caused by: java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.class$(LocalSessionFactoryBean.java:174)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.<init>(LocalSessionFactoryBean.java:174)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)

Fecha publicación: 2012-08-31-11:03:20

Autor: Alberto

Buenas Carol, te aconsejaría mirar los logs del servidor como dice la traza : (See the server log for details), por si ves alguna pista más, y copiar la traza en google para ver como lo solucionó la gente con el mismo problema. Así sin ver nada más no puedo dar mas ayuda.

Fecha publicación: 2012-08-31-10:49:49

Autor: Carol22

Hola!!

Estuve haciendo varias pruebas con breakpoints y ahora estando todo igual me da un error (que ya me dio al principio y solucione creando el proyecto de nuevo...)

init:
deps-module-jar:
deps-ear-jar:
deps-jar:
library-inclusion-in-archive:
library-inclusion-in-manifest:
compile:
compile-jsps:
In-place deployment at C:UserscarolDesktopNetBeansProjectsAppWeb1.2buildweb
deploy?config=file%3A%2FC%3A%2FUsers%2Fcarol%2FAppData%2FLocal%2FTemp%2Fcontext7857656721524220962.xml&path=/AppWeb1.2
Error invoking method check
C:UsersyaveDesktopNetBeansProjectsAppWeb1.2
bprojectbuild-impl.xml:736: The module has not been deployed.
See the server log for details.
BUILD FAILED (total time: 10 seconds)

Si abro el archivo build-impl.xml:
<target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest,-pre-run-deploy,-pre-nbmodule-run-deploy,-run-deploy-nb,-init-deploy-ant,-deploy-ant,-run-deploy-am,-post-nbmodule-run-deploy,-post-run-deploy,-do-update-breakpoints" name="run-deploy"/>
<target if="netbeans.home" name="-run-deploy-nb">
LINEA 736 --> <nbdeploy clientUrlPart="${client.urlPart}" debugmode="false" forceRedeploy="${forceRedeploy}"/>
</target>

Voy muy perdida...

Fecha publicación: 2012-08-30-14:08:33

Autor: Carol22

Muchas gracias por tu rápida respueta!!
La configuración de hibernate (hibernate.cfg.xml) creo que está bien porque está igual que en otros ejemplos que si que me funcionan (sólo cambia el nombre de la BD que está correcto).
Probaré a seguir tu consejo de crear un main para lanzar una consulta a través del DAO.

Gracias de nuevo!!

Fecha publicación: 2012-08-30-13:14:22

Autor: Alberto

Yo lo primero intentaría aislar el problema. Si como parece está en la conexión con la base de datos, por ahora nos olvidamos de la parte visual. Me haría una clase main normal para intentar lanzar a través del DAO una consulta a la base de datos y recuperar información, no importa que sea con Criteria, puedes probar con SQL normal y luego ya lo vas cambiando. El archivo de configuración de hibernate ( hibernate.cfg.xml ) lo deberías tener configurado para tu base de datos, comprueba la URL, que el nombre de tu bbdd sea el que tú le has puesto, que el puerto esté bien, el usuario y el password. Si te da alguna traza de error búscala en google, porque cualquier traza que te esté dando, le ha dado antes a mil personas más. Con la información de la que dispongo no puedo decirte mucho más. Un saludo !!!

Fecha publicación: 2012-08-30-12:57:35

Autor: Carol22

Hola Alberto, un tutorial muy bueno!! He descargado el código y me funciona perfectamente.

Pero... al tratar de aplicarlo a mi proyecto... no me muestra ningún dato de los que tengo en la base de datos...

He usado NetBeans 7.1.1, MySQL y Tomcat 7.
He seguido todos tus pasos (eliminando lo de subir ficheros para hacerlo más sencillo) y en el web.xml sólo he añadido:

<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>

He añadido las librería "MySQL JDBC Driver -mysql-connector-java-5.1.13-bin.jar"

He probado a dar al botón secundario sobre hibernat.cfg.xml pulsar sobre "Run HQL Query" escribir "from Monedas" (la tabla que utilizo) y funciona correctamente.

Los archivos de mapeo y los POJO los he creado automáticamente con "Hibernate Mapping Files and POJOs from a Database" por lo que doy por hecho que están bien.

En el DAO he probado con:
Criteria criteria = session.createCriteria(Monedas.class);
listaMonedas = criteria.list();

y con:
Query q = session.createQuery ("from Monedas");
listaMonedas = (List<Monedas>) q.list();

Ninguna de los dos funciona.

MonedaTable lo he creado igual que TableVideojuegoPojo, tampoco creo que este mal...

Y en el index.xhtml:
<h:form>
<h:dataTable value="#{MonedaTable.listaMonedas}" var="item" border="0" cellpadding="2" cellspacing="0" rowClasses="jsfcrud_odd_row,jsfcrud_even_row" rules="all" style="border:solid 1px">
<h:column>
<f:facet name="header">
<h:outputText value="Nombre"/>
</f:facet>
<h:outputText value="#{item.nombre}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Valoracion"/>
</f:facet>
<h:outputText value="#{item.valoracion}"/>
</h:column>
</h:dataTable>
</h:form>

Alguna idea de a qué puede ser debido?? Es que estoy empezando... y.... con este fallo me estoy volviendo loca.

Un saludo y gracias ;)

Fecha publicación: 2012-07-19-09:03:28

Autor: Alberto

Hola juanp. No debería darte ese error. Prueba a poner "implements Serializable" en la clase NuevoJuegoBean. Si aún así no funciona te recomiendo bajarte el código y lo comparas con el tuyo, a ver si hay alguna diferencia que esté provocando el error. Un saludo.

Fecha publicación: 2012-07-18-19:02:23

Autor: juanp

bueno el tutorial.....
pero tengo un problema cunado lo ejecuto el error es el siguiente
ADVERTENCIA: Definiendo valor de atributo no serializable en ViewMap: (clave: nuevoJuegoBean, clase de valor: NuevoJuegoBean)

si alguien me puede ayudar se lo agradecería

gracias...........

Fecha publicación: 2012-02-16-21:00:21

Autor: cjim123

Bueno.. no tengo ningun control q tenga el valor Requiered habilitado.. gracias de todos modos..

Fecha publicación: 2012-02-16-16:25:35

Autor: Alberto

Buenas cjim te puedes descargar el código de :

http://www.adictosaltrabajo.com/tutoriales/jsfHibernatePrimefacesEjemploDeUso/Ejemplo%20de%20Primefaces,%20JSF%202.0%20e%20Hibernate.zip

- Una de las razones por las que no se te esté llamando al método puede ser que tuvieras un error de validación en la vista, como por ejemplo, que hayas puesto required="true" a algún campo y que no lo estuvieras rellenando. En este caso como la validación es de vista no se llamaría a nuestro método del controlador.

Fecha publicación: 2012-02-16-16:13:31

Autor: cjim123

Hola.. bueno me parecío muy interesante el tutorial, facil de entender y ubicarse, el problema que tengo es en el Método que llama el fileUploadListener="#{garmentForm.actionFileUpload" ya que este recibe como parametro un Evento verdad?? bueno lo dejo vacío como esta en el tutorial.. pero haciendo los testeos nunca ingresa a dicho método.. y mi valor RUTA queda en valor NULL y pues me da error al querer insertar en el BD.. espero me puedan ayudar.. y de donde puedo descargar el codigo??

Fecha publicación: 2012-01-04-12:55:00

Autor: Alberto

Buenas Fernando, fíjate que estés importando el FileUploadEvent correcto, que ahora mismo no se exactamente cual es, pero si te bajas los recursos al principio del tutorial puedes ver el import arriba del todo de la clase NuevoJuegoBean. Si el fallo sigue persistiendo no se que otra causa podría estar siendo.

Fecha publicación: 2011-12-28-01:38:51

Autor: Fernando

Hola Alberto tengo un problema con la parte de cargar imagen en la parte de la vista utilizas un metodo "#{nuevoJuegoBean.accionFileUpload}" .... este metodo accionFileUpload no es reconocido (el error es "unknown property"), uso netbeans 7.0 .... los demas metodos del mismo bean si son reconocidos..???

Fecha publicación: 2011-11-16-10:15:18

Autor: Alberto

Hola monteclam, puedes descargarte el código en el enlace del apartado 0. Repositorio de código

Fecha publicación: 2011-11-16-01:09:36

Autor: monteclam

Gracias me parece muy buen material,
alguien me puede decir como hago para bajar el codigo?

Fecha publicación: 2011-09-09-04:34:08

Autor: gomiogal

hola alberto, gracias por vuestro tiempo y material.
queria comentar que me parecio luego de la lectura un tutorial muy util y facil de seguir.
me han surgido dos dudas respecto a esta tecnologia.
quizas comprendas que soy totalmente novato en jsf y quizas parezcan un tanto bobas mis preguntas, pero ahí voy.
-Me llamo mucho la antencion no ver ninguan query dentro del codigo ¿como es que sabe el programa que debe hacer un INSERT en la base de datos?
-Si quisiera editar los campos correspondientes a los videojuegos ¿de que forma debiera yo hacerlo?
Espero con urgencia vuestra respuesta.
Nuevamente gracias por tu tiempo, saludos desde chile

Fecha publicación: 2011-02-11-15:29:37

Autor: Alberto

Cuando digo ruta de la carpeta me refiero a ruta_de_la_carpeta/nombredemifoto.jpg , es decir, hay que guardar el nombre de la foto con la extensión, sino no seríamos capaz luego de mostrarla.

Fecha publicación: 2011-02-11-15:23:04

Autor: Alberto

Hola belphegorum, en la base de datos no guardamos la imagen sino la ruta de la carpeta en donde hemos subido la imagen. La imagen se sube desde el cliente al servidor con el componente FileUpload. La imagen se guarda en el servidor en una carpeta. Es esta ruta la que guardamos en la base de datos, como un varchar(255), por ejemplo. Un saludete.

Fecha publicación: 2011-02-08-21:08:26

Autor: belphegorum

Donde va la imagen del videojuego guardada en la bbdd? no comprendo este paso, soy muy nuevo en primefaces, si quisieramos mostrar en pantalla un listado de los videojuegos en una tabla metemos un campo binario en la bbdd para guardar la foto y aparte la ruta?

Fecha publicación: 2010-09-13-10:57:33

Autor: Alberto

Ya está el código subido para cualquiera que quiera descargarlo. Efectivamente el usuario de la base de datos debería ser uno creado para el ejemplo, con los permisos justos. Se deja como tarea pendiente para los adicos interesados en el ejemplo la creación de dicho usuario ^^.

Fecha publicación: 2010-09-12-13:52:51

Autor: carlosgp

Gacias Alberto, para rematarlo, podrías dejar el código fuente para que las personas interesadas lo prueben en sus ordenadores...

Otra cosa, aunque se que seguro ya lo sabes, el usuario de acceso a una base de datos nunca debería ser root, sino un usuario específico al cual establecer los permisos justos y necesarios para realizar su trabajo y no más.

Un saludo

Fecha publicación: 2010-09-11-21:04:10

Autor: franferri

Útil cuanto menos, muy bueno.