java.lang.NoSuchMethodError:org.objectweb.asm.ClassWriter
問題
Hibernateの開発では、次のエラーメッセージをヒットするのが一般的です。
SEVERE: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/config/database/spring/HibernateSessionFactory.xml]: Invocation of init method failed; nested exception is Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer[org.hibernate.tuple.entity.PojoEntityTuplizer] ... ... Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ... Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V at net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47) ...
解決策
”
デフォルトのtuplizerをインスタンス化できません[org.hibernate.tuple.entity.PojoEntityTuplizer
“は一般的なエラーです
メッセージは、多くの理由で発生する可能性があります。したがって、エラーの原因となった最後の行を確認する必要があります。
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter
その主な原因は
古いasm.jarライブラリです。たとえば、 ‘asm-1.5.3.jar’です。asmライブラリ
を最新のバージョンにアップグレードするだけで、エラーメッセージが取り除かれます。例えば、 ‘asm-3.1.jar’。