使用spring实现事务管理(@transactional)的遇到的两个异常:java.lang.noclassdeffounderror:org/objectweb.asm
2013-06-06 20:54
1076 查看
1.第一个错误:
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 76 in XML document from class path resource [beans.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but
no declaration can be found for element 'tx:annotation-driven'.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
。。。
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'tx:annotation-driven'.
错误原因:在配置beans.xml文件的时候,将下面的红体字中的两个aop用tx隔开了,结果就找不到 'tx:annotation-driven'。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
">
2.第二个错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userservice' defined in file [E:\workspace\Spring_09_Spring_hibernate\WebRoot\WEB-INF\classes\com\zk\spring\service\Userservice.class]: Initialization of bean failed;
nested exception is org.springframework.aop.framework.AopConfigException: Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
java.lang.noclassdeffounderror:org/objectweb.asm
错误的原因:spring2.5需要使用cglib-nodep-2.2.jar,而不能使用cglib2.2.jar,也可能是因为有多个cglib包引起的冲突。将cdlib.2.2.jar换成cglib-nodep-2.2.jar后恢复正常。主要是因为cglib.jar是为了用动态代理,但是这个类不是接口,所以就要引入这个包,这里的话主要是@transactional是使用了aop,所以就需要这个包。这里不需要asm.jar.(具体原因不清楚),并且要把cglib-2.2.2.jar给去掉,但是cglib-2.1.3.jar留着没问题。
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 76 in XML document from class path resource [beans.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but
no declaration can be found for element 'tx:annotation-driven'.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
。。。
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'tx:annotation-driven'.
错误原因:在配置beans.xml文件的时候,将下面的红体字中的两个aop用tx隔开了,结果就找不到 'tx:annotation-driven'。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
">
2.第二个错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userservice' defined in file [E:\workspace\Spring_09_Spring_hibernate\WebRoot\WEB-INF\classes\com\zk\spring\service\Userservice.class]: Initialization of bean failed;
nested exception is org.springframework.aop.framework.AopConfigException: Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
java.lang.noclassdeffounderror:org/objectweb.asm
错误的原因:spring2.5需要使用cglib-nodep-2.2.jar,而不能使用cglib2.2.jar,也可能是因为有多个cglib包引起的冲突。将cdlib.2.2.jar换成cglib-nodep-2.2.jar后恢复正常。主要是因为cglib.jar是为了用动态代理,但是这个类不是接口,所以就要引入这个包,这里的话主要是@transactional是使用了aop,所以就需要这个包。这里不需要asm.jar.(具体原因不清楚),并且要把cglib-2.2.2.jar给去掉,但是cglib-2.1.3.jar留着没问题。
相关文章推荐
- 在使用hibernate 和spring 构架的框架中如果出现Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm
- 使用CGlib出现java.lang.NoClassDefFoundError: org/objectweb/asm/Type异常
- 用Spring+Hibernate做项目时候遇到 java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
- 在maven项目中使用apache cxf中遇到异常 java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
- (spring+hibernate)java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/Str
- spring整合jbpm Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
- StrutsSpringHibernate - java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
- hibernate 与spring jar包冲突 java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
- ssh整合异常:java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
- [spring] org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljav 解决
- (spring+hibernate)java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/Str
- Hibernate异常:java.lang.NoClassDefFoundError: org/objectweb/asm/Type
- MyEclipse 整合 Spring 和 Hibernate时,报 java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
- StrutsSpringHibernate - java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
- ssh整合异常:java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
- spring3.0.5 和hibernate3.6整合问题之java.lang.ClassNotFoundException: org.objectweb.asm.Type
- 使用 CGLib 报错 Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Type
- ssh整合中,hibernate3.6.0异常java.lang.NoClassDefFoundError: org/objectweb/asm/Type
- (spring+hibernate)java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava
- java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor 异常