程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> ssh的集成方法和致命異常

ssh的集成方法和致命異常

編輯:關於JAVA

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved