ssh的集成方法和致命异常
时间:2011-01-29 巴士飞扬
今天投完简历,又开始弄我的RSSBLOG了,以前用的是velocity+spring mvc+spring ioc+ibatis,基本功能已经跑起来了,撘建VSSI,集成平台比较容易,没出什么问题就搞定了.
后来发现使用VSSI来开发,特别是一个人来开发时,实在太累了,什么都要手写,一个都不能少,就单独说数据库持久层来说吧,一个人就得要好几天,又要写映射,又要写USERBEAN,还要写SQL等等,麻烦死了,所以,还是打算使用SSH来做.
今天在配置SSH时,却遇到了问题,如下:
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;)
找了很久,才找到问题,解决方法如下: 去掉asm-2.2.3.jar包就可以了.
网上找到的原文如下: from:http://blog.chinaunix.net/u1/36006/showart_390459.html
第一种:
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
第二种:
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
第三种:
用struts-config.xml的
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
ssh的集成方法和致命异常(2)
时间:2011-01-29 巴士飞扬
致命异常:
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;)
网友的解决方法:
从出错的字面看,肯定与org.objectweb.asm包有关,于是我就检查lib下面关于asm的包,分别有如下几个JAR包:
asm-2.2.3.jar
asm.jar
asm-attrs.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
然后怀疑是asm-2.2.3.jar与asm.jar可能有嫌疑,于是分别去掉他们,最后,去掉asm-2.2.3.jar成功启动.
呵呵,其实,这些微不足道的小错误需要一个细心的心来发现,我在google上找了半天也没有成型的结果 ,反而让我觉得这是一个很新的问题.其实,关键是自己要细心,不要太依赖网络带给你的答案.
通过多次的测试,在使用myeclise5.5.GA时,如果你选用spring1.2,hibernate3.2和JSF1.1时,一般会顺利的配置成功.如果项目不要求指定版本的框架时,请使用如上组合,能够快速的解决你很多意想不到的错误和版本冲突.
我的途径:
去掉asm-2.2.3.jar,果然成功。 |