当前位置: 代码迷 >> J2EE >> (散100分)庆祝SSH有关问题解决,并附上解决办法
  详细解决方案

(散100分)庆祝SSH有关问题解决,并附上解决办法

热度:244   发布时间:2016-04-22 02:26:18.0
(散100分)庆祝SSH问题解决,并附上解决方法。
哈哈

昨天晚上自己琢磨了一个晚上

和初恋女友聊了2小时天,听见小丫头对我依依不舍,所以心情格外好(很自豪啊~尽管咱长的实在不咋的)

调试程序的时候也没有出现往日的烦躁不安

好了,我们说正事儿

SSH在MyEclipse下配置

出现的错误 :页面显示 Servlet Action is not avaliable

后台没有报异常信息

然后,我想,不应该在后台没有异常信息啊~,我以为是我的Tomcat的问题,所以我把工程发布到了MyEclipse自带的Tomcat上了

重新启动,

我靠

一大票异常


依次找寻原因

发现最底层的异常是一个名叫  

org.springframework.beans.factory.BeanCreationException


看后面打印的可能的原因是

 Error creating bean with name 'sessionFactory'

 defined in ServletContext resource [/WEB-INF/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;)


再细看一下 java.lang.NoSuchMethodError 方法名叫 visit

没有这个方法,操,这个可不是老子写的,这是Spring提供给老子的

看类名叫什么??org.objectweb.asm.ClassVisitor

好,就是你了

把Referenced Libraries打开

满眼全是jar包

一个一个找

第四个名字叫asm-2.2.3.jar,这里面有一个org.objectweb.asm包,包下有一个ClassVisitor类

再看看,第八个叫asm.jar,打开一看,日他母亲,里面也有一个叫org.objectweb.asm包,而且这个包里也有一个ClassVisitor类


会不会是这两个类的名字重了造成了这个错误呢?

试试删一个吧

就删第一个

运行,不行,还是这个错误

想想,工程WebRoot的WEB-INF下还有一个lib呢,是不是那里面的没有被删啊,我加入Spring的时候可是指定把包导入到那个目录了

对,把那个也删了

重新发布,启动,哈哈

没报任何异常

进入测试页面,输入信息

页面没有错误,后台也没有错误,看看数据库

哈哈,记录添加成功

至此,问题解决了。以后再有类似的情况的朋友可以留意一下,把asm-2.2.3.jar删了试试

但是前提是你的配置全部是正确的

还有就是我没有删过asm.jar

有没有高手试验一下删了这个会是什么结果?


哈哈哈哈哈哈哈


问题解决了,困扰我将近一个礼拜了,终于度过了入门级的难关。

在此

感谢我的前任女友,和你聊天让我有了好心情调试错误

感谢我的现任女友,你天天督促我写代码,学习,功不可没

感谢CSDN众位网友的大力支持,和对我不厌其烦、循循善诱的教导

没有大家的支持,我是不会有今天的进步的

我会继续努力的,争取过了年找个称心的工作

说真的从辞职到今天我的压力一直比较大,毕竟是自己自作主张要转回j2ee的

现在好了,都说万事开头难,现在把第一阶段的难关过了

入了门很多事情就都好说了

谢谢大家

一般2点是我最困的时候,但是今天比较激动啊

一点都不困

看来明天要晚点起了

呵呵

------解决方案--------------------
帮你顶
------解决方案--------------------
帮顶
------解决方案--------------------
帮顶
------解决方案--------------------
先恭喜一下

asm包冲突是在ide添加spring hibernate中经常遇到的问题

不过LZ观察问题够仔细的,真是下了翻功夫了呵呵,把栈里的错误都看了

可能前面别人能运行你运行不了就是因为别人都手动添加的吧哈哈

asm可以说在java源文件在生成class之前根据用户要求不按虚拟机默认生成方式二动态生成另外的class

个人理解就是动态代理是加强了java源文件,但编成class还是按老方法

而asm是直接去动态改变字节码文件

给篇文章去看看吧,wiki里也有,英文好的话呵呵
http://www.ibm.com/developerworks/cn/java/j-lo-asm30/index.html
------解决方案--------------------
ssh整合常见问题,恭喜解决
------解决方案--------------------
jf
------解决方案--------------------
恭喜
------解决方案--------------------
恭喜,JF
------解决方案--------------------
JF
------解决方案--------------------
发表于:2008-12-20 09:05:499楼 得分:0 
什么意思,看了半天还没猜到你真正的想法。 

唯一的感觉就是——请说话文明点,这是一个程序员做人最基本的准则!!! 

这个人有毛病!
------解决方案--------------------
发表于:2008-12-20 09:05:499楼 得分:0 
什么意思,看了半天还没猜到你真正的想法。 
  相关解决方案