Se me hace muy extraño problema al utilizar la hibernación para conectarse a un MySQLDB y agregar datos.

Este es el error:

Controlador JDBC de clase no encontrado:
com.mysql.jdbc.Controlador de

Esta es la forma en que mi hibernate.cfg.xml parece

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/fpa-webapp</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password"></property>
        <property name="hbm2ddl.auto">update</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
    </session-factory>
</hibernate-configuration>

Yo no entiendo por qué veo un Error 500 cuando me vaya a la aplicación; se dice que el controlador no se encuentra.

DE ERROR HTTP 500

Problema de acceso /fpa-webapp/.
Razón:

Exception constructing service 'ValueEncoderSource': Error invoking

de servicio el generador de método
org.apache.tapestry5.servicios.TapestryModule.buildValueEncoderSource(Mapa
InvalidationEventHub) (en
TapestryModule.java:2287) (para servicio
‘ValueEncoderSource’): Error de invocar
el servicio de contribución método
org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource(MappedConfiguration,
boolean, HibernateSessionSource,
Período De Sesiones, TypeCoercer, PropertyAccess,
LoggerSource): la construcción de Excepción
el servicio de ‘HibernateSessionSource’:
Error en la invocación de servicio el generador de método
org.apache.tapestry5.hibernate.HibernateCoreModule.buildHibernateSessionSource(Logger,
Lista, RegistryShutdownHub) (en
HibernateCoreModule.java:123) (para
el servicio de ‘HibernateSessionSource’):
El Controlador JDBC de clase no encontrado:
com.mysql.jdbc.Controlador de

Estoy seguro de que el conductor está en la ruta de clase.

¿Qué podría ser?

  • «Estoy seguro de que el conductor está en la ruta de clase.» ¿Qué tan seguro es? 🙂
  • Es una web-app o independiente, y cómo ha de proporcionar el classpath?
  • Se trata de una aplicación web. Estoy seguro de que el controlador está allí porque me abrió la ruta de clases de archivos del proyecto, y vi .etiqueta xml no con el nombre del controlador.
  • Voy a creer que si este código se ejecuta correctamente desde un ServletContextInitializer aplicación: try { class.forName(«com.mysql.jdbc.Controlador»).newInstance(); System.a cabo.println(«ganar») ; } catch (Arrojadiza t) { System.a cabo.println(«usted mintió: «+t); }
  • Me puedes decir lo que quieres decir mediante la ejecución de un servletcontextInitializer? Porque con la configuración actual que tengo(véase más arriba) me sale un Error HTTP 500 y no puedo acceder a la aplicación. Te refieres a ejecutarlo desde otro lugar de la derecha?
InformationsquelleAutor sfrj | 2011-06-16

2 Comentarios

  1. 1

    Su controlador no está en la ruta de clases.

    Hay dos maneras para asegurarse de que esté en el classpath:

    1. Añadir a la global directorio lib. Para Tomcat este es TOMCAT_HOME/lib.
    2. Incluir en la guerra.

    Depende de sus requisitos de uso.

    Si vas a usar Tomcat para administrar la conexión de la piscina, usted tendrá que agregar a la TOMCAT_HOME/lib y en lugar de definir el origen de datos directamente en la configuración de hibernate, voy hacer referencia a él a través de jndi.

  2. 0

    La única explicación plausible es que la Driver la clase no está en el CLASSPATH.

    De verificación para asegurarse de que el mysql-connector-java (u otros) frasco está hecho en un lugar donde reciba cargado. Si estás 100% positiva que es, puede contribuir a proporcionar más información acerca de cómo usted sabe la clase está cargado, de modo que podemos identificar otras posibles causas.

Dejar respuesta

Please enter your comment!
Please enter your name here