ASM (<init> (Z)) с входом в спящий режим - PullRequest
0 голосов
/ 25 ноября 2011

Я использую hibernate для своей базы данных в моем проекте.Это работало отлично, но теперь я получил это исключение.

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:531)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


      cause mère 

     javax.servlet.ServletException: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:901)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:830)
org.apache.jsp.JSP.session.login_jsp._jspService(login_jsp.java:321)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


    cause mère 

     java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47)
net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:215)
net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
net.sf.hibernate.impl.SessionFactoryImpl.<clinit>(SessionFactoryImpl.java:236)
net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:791)
Base.HibernateUtil.<clinit>(HibernateUtil.java:15)
org.apache.jsp.JSP.session.login_jsp._jspService(login_jsp.java:150)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

, и это код моего HibernateUtil:

package Base;

import net.sf.hibernate.*;


import net.sf.hibernate.cfg.*;


public class HibernateUtil {

private static final SessionFactory sessionFactory;

static {
  try {
   // Crée la SessionFactory
   sessionFactory =new Configuration().configure().buildSessionFactory();
 //new Configuration().configure().buildSessionFactory();
    } catch (HibernateException ex) {
   throw new RuntimeException("Problème de configuration : "
  + ex.getMessage(), ex);
  }
  }

  public static final ThreadLocal session = new ThreadLocal();

 public static Session currentSession()
    throws HibernateException {
  Session s = (Session) session.get();
    // Ouvre une nouvelle Session, si ce Thread n'en a aucune
    if (s == null) {
   s = sessionFactory.openSession();
   session.set(s);
    }
   return s;
  }

   public static void closeSession()
        throws HibernateException {
   Session s = (Session) session.get();
    session.set(null);
    if (s != null)
    s.close();
    }
   }

, и это моя конфигурация hibernate в файле .xml:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">

<hibernate-configuration>
<session-factory >

      <!-- local connection properties -->
      <property name="hibernate.connection.url">jdbc:mysql://localhost/ebook</property>
      <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
      <property name="hibernate.connection.username">root</property>
      <property name="hibernate.connection.password"></property>
      <!-- property name="hibernate.connection.pool_size"></property -->

      <!-- dialect for MySQL -->
             <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>



                   <!-- Echo all executed SQL to stdout -->
                   <property name="show_sql">true</property>

                   <property name="current_session_context_class">thread</property>

    <mapping resource="Base/Favorieensei.hbm" />
        <mapping resource="Base/Ajouter.hbm" />
    <mapping resource="Base/Favorie.hbm" />
    <mapping resource="Base/Enseignant.hbm" />
    <mapping resource="Base/Administrateur.hbm" />
    <mapping resource="Base/Ajouterensei.hbm" />
    <mapping resource="Base/Etudinat.hbm" />
    <mapping resource="Base/Livre1.hbm" />
</session-factory>
</hibernate-configuration>

Что вызывает это исключение и как его остановить?

1 Ответ

1 голос
/ 25 ноября 2011

Похоже, что ваша среда выполнения имеет версию asm.jar, которая не соответствует вашей среде разработки.См., Например, http://goo.gl/WMYSL

Кстати, я не могу не комментировать - доступ к hibernate со страницы JSP - крайне плохая идея.Возможно, вы захотите взглянуть на использование достойного MVC-фреймворка, например, Spring MVC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...