2013-10-06 4 views
0

Я учусь Java EE и спящий режим, и я столкнулся с следующей проблемой:ява зимуют 4 org.hibernate.HibernateException: Диалект класс не найден: org.hibernate.dialect.MYSQLDialect

Я создал динамический веб-проект в Eclipse, я преобразовал его в проект MAVEN, добавил зависимости mysql-connector-java и hibernate-core к pom.xml. Я добавил сервлет, а в методе doGet я попытался инициализировать sessionfactory для создания таблиц. Я использую tomcat.

Когда я делаю запрос на сервлет я получаю следующее исключение:

org.hibernate.HibernateException: Dialect class not found: org.hibernate.dialect.MYSQLDialect 
org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:77) 
org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:65) 
org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:146) 
org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:76) 
org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160) 
org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:132) 
org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1818) 
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1776) 
hu.adamsan.testhibernate.TestHibernate.doGet(TestHibernate.java:74) 

pom.xml:

dependencies> 
    <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.26</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.2.6.Final</version> 
     </dependency> 
</dependencies> 

Я попытался посмотреть в Maven зависимостей , org.hibernate.dialect.MySQLDialect.class находится там: getServletContext(). getRealPath (".") -> E: \ eclips_jee \ workspace.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ TestHibernateWeb \ , в каталоге WEB-INF \ lib есть hibernate-core-4.2.6.Final.jar , когда я открыл его с помощью 7zip, я смог найти внутри org/hibernate/dialect/MySQL5Dialect.class.

Что мне не хватает? Я действительно понятия не имею,.

doGet метод:

PrintWriter w = response.getWriter(); 
    w.println("Testing hibernate<br/>"); 
    w.println(getServletContext().getRealPath(".")+"<br/>"); 

    Configuration config; 
    ServiceRegistry registry; 
    SessionFactory factory;  
    config = new Configuration().addAnnotatedClass(Modell.class);  
    Properties props = getProperties();  
    props.setProperty(Environment.HBM2DDL_AUTO, "create");  
    config.setProperties(props);   
    registry = new ServiceRegistryBuilder().applySettings(props).buildServiceRegistry();   
    factory = config.buildSessionFactory(registry);  
    factory.close(); 

ответ

4

Ответ в вопросе. Вы нашли MySQLDialect и MySQL5Dialect в ваших файлах jar, но ваш файл конфигурации пытается использовать MYSQLDialect. Java чувствительна к регистру.

+0

Итак, в основном, я набрал большой «y» вместо небольшого «y». Я смущен. – Adamsan

Смежные вопросы