`
sundful
  • 浏览: 1253303 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用maven构建ssh时出现asm包的问题

阅读更多

今天把之前做的一个项目原先在服务器Tomcatg7上部署,现在部署到glassfish2.1.1上,
发现同样的war包部署到Tomcat7上就没有异常,可以正常访问,部署到glassfish2.1.1上就报异常

(1) 第一行异常很长,如下:
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'businessBusinessImpl': Autowiring of fields failed;
nested exception is org.springframework.beans.factory.BeanCreationException:Could not autowire field:
private com.dao.BusinessDaoIf com.BusinessBusinessImpl.businessDao;
nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'businessDaoImpl' defined in class path resource [applicationContext-bean.xml]:
Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory';
nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]:
Invocation of init method failed;
nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V

(2) 最后一行异常很短,如下:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer

--------------

解决方法:

报 (2) 错误,随之 sessionFactory bean 也就创建失败

究其原因是 cglib-2.1.3.jar 与 cglib-nodep-2.1_3.jar 这两个包冲突,

删除 cglib-2.1.3.jar

保留 cglib-nodep-2.1_3.jar

要用 cglib-nodep-2.1_3.jar , 对应 spring 版本2.5

删除 cglib-2.1.3.jar 后,重新部署,一切正常了

很奇怪,为什么Tomcat7却没有报异常呢?

===================================================================================

如果报以下异常:

15:20:54,093 ERROR ContextLoader:203 - Context initialization failed  
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'SessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed;
nested exception is java.lang.NoSuchMethodError:
org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;
[Ljava/lang/String;Ljava/lang/String;)V

Caused by:   
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)

-------------------------------------

解决方法:

查看lib下是否同时引用了 asm-2.2.3.jar 与 asm.jar ,如果是,请删除asm-2.2.3.jar 即可

分享到:
评论

相关推荐

    SSH整合所需的jar包

    2. **依赖管理**:某些jar包可能包含了其他库的依赖,因此在引入jar包时要确保所有依赖都被正确引入。例如,Hibernate可能依赖于 cglib 和 asm 库,而Spring可能依赖于 commons-logging 等。 3. **配置文件**:每个...

    ssh所需要所有jar包

    开发者可以通过构建工具如Maven或Gradle来管理这些依赖,或者直接将这些JAR包放入WEB-INF/lib目录下,对于非Maven项目来说,"ssh_jar"压缩包提供了一个方便的方式来获取所有必需的库,避免了逐一查找和下载的麻烦。...

    ssh整合出现的一些问题的解决

    在使用Spring AOP编程时,由于Spring和Hibernate之间的版本不兼容,可能会出现类库冲突的情况,如使用了不同版本的ASM库等。 **解决方案**: - **统一ASM版本**:确保Spring和Hibernate使用的ASM版本一致。例如,...

    SSH包冲突问题解决_sqlserver

    在开发基于SSH(Struts、Spring、Hibernate)框架的应用程序时,经常会遇到由于不同框架之间或框架内部依赖库版本不一致导致的包冲突问题。这类问题往往表现为应用程序运行时出现异常,无法正常启动。本文将详细探讨...

    SSH整合需要的JAR包详细介绍

    SSH(Struts、Spring、Hibernate)是一个经典的Java Web开发框架,用于构建企业级应用程序。...在项目构建过程中,使用构建工具(如Maven或Gradle)可以帮助自动管理和解决依赖关系,简化开发过程。

    SSH框架整合时候包冲突

    本文将深入探讨在SSH框架整合时遇到的包冲突问题,尤其是涉及到的Java类库冲突,以及解决策略。 ### 一、包冲突的根本原因 包冲突通常发生在项目依赖管理不当的情况下,具体表现为多个不同版本的相同库被同时引入...

    ssh需要的jar包

    这些jar包在Java项目中通常是通过Maven或Gradle等构建工具管理的,确保所有依赖都被正确地引入并避免版本冲突。在没有构建工具的情况下,手动收集和添加这些jar包可能会变得复杂,因此建议使用现代的开发工具和构建...

    ssh集成必须的包集合

    在实际开发中,为了便于管理和版本控制,通常会使用构建工具如Maven或Gradle来管理这些依赖,通过配置POM.xml或build.gradle文件,自动下载并引入所需包。而这个"ssh集成必须的包集合"压缩文件,可能是将这些依赖...

    SSH框架整合中用到的jar包

    同时,合理使用Maven或Gradle等构建工具可以自动管理依赖,简化jar包的引入过程。 总结来说,SSH框架的整合涉及到多个层面的配置和jar包的配合,正确理解和使用这些jar包是成功搭建SSH应用的关键。通过不断的实践和...

    ssh最小jar包

    在实际项目中,开发者通常会使用构建工具(如Maven或Gradle)来管理这些依赖,它们能自动下载并解决版本冲突问题。不过,了解这些基本的依赖关系对理解SSH框架的运行原理以及进行项目初始化是非常有帮助的。在压缩包...

    MyEclipse+SSH错误:java.lang.NoClassDefFoundError orgobjectwebasmCodeVisitor解决

    5. **清理并重新构建**:有时,IDE的缓存可能会出现问题,清理项目并重新构建可能有助于解决问题。 6. **日志分析**:通过查看详细的错误日志,可以获取更准确的错误信息,比如是哪个类或方法触发了这个错误,有助...

    SSH框架整合需要的jar包

    在项目构建过程中,通常会将这些jar包放入`WEB-INF/lib`目录下,然后在IDE中配置相应的Maven或Gradle依赖,以便自动管理这些库。此外,还需要在web.xml中配置Struts2和Spring的初始化参数,以及在Spring的配置文件中...

    为ssh添加dwr支持

    最后,确保没有冲突的库,如删除多余的asm-2.2.3.jar和log4j版本较低的JAR包,避免可能的类加载问题。完成这些步骤后,你的SSH项目就成功集成了DWR,现在你可以利用DWR提供的Ajax功能来增强应用程序的用户体验。 ...

    java.lang.NoSuchMethodError异常处理要点.doc

    这个异常的出现通常意味着编译时和运行时的类版本不匹配,或者是在编译期间存在而运行时不存在的方法。以下是处理此类异常的一些关键点: 1. **检查方法名**:确保在代码中调用的方法名与实际定义的方法名完全一致...

    hibernate需要的jar包

    在实际开发中,通常会将这些jar包放入项目的类路径(classpath)或构建工具(如Maven、Gradle)的依赖管理中。正确的配置这些jar包能够确保Hibernate和其他相关框架的正常工作,避免运行时出现NoClassDefFoundError...

    ssh构架搭建步骤 (2).pdf

    在构建SSH(Spring、Struts、Hibernate)架构的应用程序时,我们需要按照一系列步骤进行操作,以确保各个组件的正确集成。以下是对这些步骤的详细解释: 1. **新建Web项目**: 创建一个新的Web项目,这里命名为`...

    Struts2.1+Spring2+Hibernate3.3整合

    在整合过程中,可能遇到的冲突问题,如ASM库的版本冲突,需要检查并移除重复或不兼容的jar包。对于这种情况,只需保留一个版本的ASM库即可,通常是更新或更稳定的版本。 使用SSH2整合的优点在于,它提供了强大的...

    Java常见错误及解决方案

    - **统一版本管理:** 使用 Maven 或 Gradle 等构建工具来统一管理项目依赖的版本,避免手动引入冲突的 jar 文件。 以上是针对 Java 开发过程中常见的几个错误及其解决方案。通过这些解决策略,开发者可以更高效地...

Global site tag (gtag.js) - Google Analytics