错误:java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor的解决方法
在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
Hibernate使用如下lib:
asm.jar
asm-attrs.jar
其中asm-2.2.2.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。
解决办法是:
1.去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar
2.加入Spring中的以下4个lib
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar
PS:集成配置
1、将spring的相关jar包,拷贝到web应用的WEB-INF/lib目录下
2、修改web.xml,让应用服务器自动加载spring的BeanFactory对象
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3、在web组件里,可以使用WebApplicationContextUtils工具类来
获得BeanFactory对象的实例,拥有了BeanFactory对象,就拥有
了spring的容器管理的能力。
解释:
这种配置的结果是,spring通过ContextLoaderListener将WebApplicationContext对象
(BeanFactory的子类)放入ServletContext中,并取名为一个静态变量的值:
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
* 通过WebApplicationContextUtils.getApplicationContext()方法就可以获得WebApplicationContext
对象的值
* 或者通过request.getSession().getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
分享到:
相关推荐
总结来说,"Spring Boot web 访问"涵盖了创建一个基础的Spring Boot Web应用,配置访问静态资源,使用Spring Boot DevTools进行快速开发,以及处理中文乱码问题。这些都是Spring Boot入门开发者需要掌握的基本技能,...
4. **Web 应用集成**:在 Web 应用中,通常会将 Quartz 的 Scheduler 初始化为一个 ServletContextListener,这样在 Web 应用启动时就会自动启动 Scheduler。同时,为了确保在应用关闭时能够停止所有调度,也需要在 ...
这篇博客文章“采用共享jar包部署struts2+spring集成项目会遇到的问题”可能涉及了如何解决这些问题的方法。 首先,让我们探讨一下Struts2和Spring集成的基本概念。Struts2是一个基于MVC模式的开源Web应用框架,它...
Spring Web Flow 是一个基于Spring框架的开源库,它专注于构建复杂的Web应用程序中的导航逻辑和状态管理。这个库旨在解决传统MVC框架在处理多步骤交互流程时的局限性,例如用户填写表单、购物车流程、注册或登录过程...
在Java Web开发中,`org.springframework.web.context.ContextLoaderListener` 是Spring框架的一部分,它负责初始化一个Web应用程序的Spring上下文。这个监听器是基于Servlet容器(如Tomcat、Jetty等)的,当Web应用...
Spring Webflow 是Spring框架的一个扩展,它专注于处理Web应用程序中的流程管理。Spring Webflow 2.3.0是其一个重要版本,它提供了强大的状态管理和转移动作,使得开发者能够优雅地设计复杂的用户交互流程。在本文中...
Spring Web Flow(SWF)是一个强大的MVC框架,用于构建具有复杂导航逻辑的Web应用程序,而Hessian则是一种轻量级的二进制RPC协议,能够有效地减少网络传输的数据量,提高服务调用的效率。这两者的结合可以为大型...
总的来说,这个"Spring.Web.Mvc3.zip bug修改版"是一个解决特定问题的更新,对于那些遇到视图与多控制器配合问题的开发者来说,它提供了一个可能的解决方案。使用这个修复版,开发者可以继续利用Spring.Web.Mvc3的...
9. **故障排查与优化**:学习如何诊断和解决Spring Web Services在开发和运行过程中遇到的问题,以及如何优化服务性能。 10. **与其他Spring组件的集成**:Spring Web Services可以很好地与Spring Framework的其他...
Spring 框架以其模块化和灵活性著称,但这也可能导致在配置和集成各个子项目时遇到挑战。Spring Boot 通过自动化配置和约定优于配置的原则,解决了这些问题。 首先,Spring Boot 允许开发者创建能够独立运行的 ...
这些技术的集成使用能够构建出高效、灵活且易于维护的企业级Web应用。 首先,Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java开发领域具有极高的地位。它提供了丰富的代码编辑、调试、重构等功能,...
然而,在配置Spring和XFire的过程中,可能会遇到一些问题。比如,在同一个项目中加入不同版本的Spring核心JAR包时,就可能导致Spring无法正常启动。本文将以一个具体的错误为例,深入探讨其原因,并提出有效的解决...
这可能包括如何使用Maven或Gradle初始化项目,配置应用主类,以及如何利用Spring Boot的内嵌Servlet容器(如Tomcat)启动Web应用。 对于计算机科学的学生来说,这个压缩包可以作为毕业设计论文的参考资源,他们可以...
在进行Flex与Spring集成的过程中,经常会遇到配置上的问题。例如,在配置文件`services-config.xml`中设置URI时,可能会遇到以下情况: **问题描述:** 在`services-config.xml`中设置URI为: ```xml ...
下面将详细讲解Hessian与Spring集成的关键知识点。 首先,理解Hessian是什么至关重要。Hessian是一个二进制的Web服务协议,由Caucho公司开发。它提供了轻量级、高效的RPC(Remote Procedure Call)框架,使得Java...
在IT行业中,集成Spring、Spring Web MVC和CAS客户端是一项常见的任务,主要用于构建安全的Web应用程序。下面将详细解释这些技术及其整合过程。 首先,Spring是一个开源的Java框架,它简化了开发过程,提供了依赖...
在实际应用中,可能会遇到一些问题,如网络连接错误、序列化异常、版本兼容性问题等。解决这些问题通常需要检查服务端和客户端的配置,确保URL正确,服务正常运行,以及Hessian库版本匹配。此外,对于序列化异常,...
在IT行业中,SSH整合指的是Spring、Struts和Hibernate这三个开源框架的集成,它们共同构建了一个强大的企业级Web应用开发解决方案。然而,在实际操作过程中,开发者经常会遇到各种问题,其中之一就是...
Spring、SpringMVC和Hibernate是Java开发中三大核心框架...然而,集成过程中也可能遇到版本兼容性问题,因此选择正确的jar包版本至关重要。在实际项目中,还需要关注性能优化,例如使用二级缓存、合理设计实体关系等。
在本实例中,我们将深入探讨如何在Spring框架中利用注解来实现缓存配置,特别是在Web应用程序中的实际应用。Spring Cache是一个强大的功能,它允许我们高效地管理应用程序中的数据,减少不必要的数据库查询,提高...