今天投完簡歷,又開始弄我的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>
致命異常:
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,果然成功。