带hibernate登录的ASM(<;init>;(Z))

带hibernate登录的ASM(<;init>;(Z)),hibernate,session,exception,Hibernate,Session,Exception,我在项目中使用hibernate作为数据库。它工作得很好,但现在我得到了这个例外 org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V org.apache.jasper.servlet.JspServletWrapper.handleJspException(Jsp

我在项目中使用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)
这是我在.xml文件中的hibernate配置:

<?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>

jdbc:mysql://localhost/ebook
com.mysql.jdbc.Driver
根
net.sf.hibernate.dialogue.mysqldialogue
真的
线

导致此异常的原因是什么?如何停止它?

运行时环境中的asm.jar版本似乎与您的开发环境不匹配。比如说,


顺便说一句,我忍不住要发表评论——从JSP页面访问hibernate是一个非常糟糕的主意。您可能想看看如何使用一个像样的MVC框架,比如Spring MVC。

这里似乎有一些不兼容的JAR。你的项目中有哪些Hibernate和asm JAR?我同意。我确实认为,在视图中看到这一点是不好的做法。许多web开发人员不愿意遵循MVC模式。
<?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>