noSuchMethodException问题
上午遇到一个nosuchMethodException 折腾了一上午发现是jar包冲突引起的。首先发现单独运行没问题,和其他项目整合后就有问题,当时以为代码问题,其实早该想到是jar包冲突造成的。。。。后来在网上找到了一个可能引起该异常的原因,写的恩不错,摘抄过来了。
不久前在学习struts时出现这个错误,在网上搜索了半天,发现答案不一。将其总结如下,以方便大家参考。
1、你有没有试试看 其它的方法能不能用,要是都是这种情况的话,可能是你的Action类没有继承structs里面的DispatchAction 或者其它的类。还有你注意下方法的参数列表,类型顺序要正确才行,是按照以下顺序 的:ActionMapping mapping,ActionForm form ,HttpServletRequest request,HttpServletResponse response
2、发现有两种错误可能引起上述异常:
一.Action 类的方法被定义成 private 类型.
如下 Action 中被访问的方法被定义成 private 类型.程序在访问其方法时,会抛出以上异常.
3、其实java.lang.NoSuchMethodException这个异常的根本原因有两个:第一,缺少某些jar文件;第二,某些jar文件有重复。
4、使用struts2框架出现的问题
在页面使用jquery ajax 调用action中的vaildUname方法,报错,说我的方法不存在。但实际是存在的。
public String vaildUname(String loginName) throws Exception{}
问题就在这个参数上,struts2中是不能有参数的(具体我也不知道为什)
解决方法:
private String loginName;
public String vaildUname() throws Exception{}
loginName的getter和setter方法
这样在使用ajax调用的时候,就可以了
· struts2是通过反射机制来执行action的方法,struts2规范目前action方法是不需要参数的,有参数的方法和没参数的方法是两个不同的方法,所以会出现找不到的情况。
5、jar版本不对
应该是3.6jar包的问题,换回3.2的包又没事了
6、java.lang.NoSuchMethodException 这个异常是指你的action里面没有这个方法,说明已经找到了action 但是没有找到方法,所以有2个情况,
第1种情况是,你提交到的不是这个action ,查查配置文件,有没有一样的path
第2种情况,你的action里面没有这个方法
下面是转载的
public class NoSuchMethodExceptionextends Exception
无法找到某一特定方法时,抛出该异常。
------------------------------------------------------------------------------------------------------------------------
细心的朋友应该能够发现,因为复制粘贴惹的祸。导致同一命名空间下存在两个同名的action定义,这不是关键,关键问题是,两个同名action的实例引用是不一样的,struts2是顺序解析配置的action,如果我们请求/basedate里 查找请求的action是否存在,如果存在就调用这个action,如果不存在报异常告诉用户“在请求的命名空间中找不到指定的action”。这里我们 请求的action是存在的,错就错在,它是顺序解析,即便你第一个action定义无误,但是它并未调用。它会继续查找"saveOrUpdateBranch"方法,所以struts2就抛出无法找到特定的方法的异常。
粗心大意害死人哦 ...
noSuchMethodException问题的更多相关文章
- 使用属性android:onClick,出现异常NoSuchMethodException
在Activity中注册点击事件有两种方式,setOnClickListener或在xml中设置控件的android:onClick="gotoSecond"属性,在Activit ...
- NoSuchMethodException <init>()
1. Question Description: SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/n ...
- java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet的解决方案
tomcat7启动后出现:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet这个问题. 并且访问 ...
- java.lang.NoSuchMethodException
这个异常遇到过若干次,提示信息也比较清楚的指示出它的特点,当无法找到某一特定方法时,就会抛出该异常! 我所遇到的抛出此异常的情景主要有以下两种: 1:对应的JAVA类中没有对应的属性,也就是说在页面的 ...
- net.sf.json.JSONException: java.lang.NoSuchMethodException
在尝试将json对象转换为list时候出现了如下错误 Exception in thread "main" net.sf.json.JSONException: java.lang ...
- Tomcat- java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
在MyEclipse中启动Tomcat的时候报错: java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServ ...
- webservice: Could not initialize Service NoSuchMethodException getPortClassMap()
今天用apache-cxf-3.1.1的wsdl2java生成webservice文件,调用的时候出了问题 报错:Could not initialize Service NoSuchMethodEx ...
- 12.java.lang.NoSuchMethodException
java.lang.NoSuchMethodException 方法不存在异常 当程序试图通过反射来创建对象,访问(修改或读取)某个方法,但是该方法不存在就会引发异常
- java.lang.RuntimeException: java.lang.NoSuchMethodException:
[java] 15/12/19 14:09:46 INFO mapred.JobClient: Task Id : attempt_201512182036_0017_m_000000_0, Stat ...
随机推荐
- 解除Team Foundation Server 5个用户的限制
因为所有的用户必须加入到Team Foundation Licensed Users组内才能连接上TFS; 所以只要手工修改数据库,就可以破解5用户限制了.我们以TFSGuest4帐户做测试. 具体操 ...
- if you end up with a boring miserable life
- jsp添加背景音乐
在<head></head>间假如标签<embed src="文件地址" loop="11" autostar="tru ...
- nginx响应时间监控脚本
最近我们服务的使用方总是反应说我们接口超时,于是做了一个监控脚本,统计最近五分钟的响应情况,并对异常情况发送邮件报警. #!/bin/bash function define(){ ori_log_p ...
- Unity上一页下一页切换功能实现源码(仅供参考)
在做项目时我们有时需要实现切换上一页下一页图片,切换上一首下一首歌曲等等类似的功能.这里写了个简单的实现源码(仅供参考),要是有更好的方法欢迎提出来,共同进步~ 以切换上一页下一页图片为例: usin ...
- printf 整数类型都用 uint8_t
#include <iostream> #include <string> #include <tuple> #include <utility> ...
- 【解决】putty使用从AWS下载的private key登录失败
在AWS启动一个实例时如果创建并下载了一个KeyPair的私钥(*.pem),则可以此私钥作为Credentials通过putty远程登录到这个实例系统.但在实际操作中,用putty登录时会提示如下错 ...
- 【HOW】如何限制Reporting Services报表导出功能中格式选项
Reporting Services报表导出功能中缺省会提供多种导出格式选项,但很多情况下不需要全部的格式选项,因此需要对这些选项进行限制.下面我们以SQL Server 2008 R2为例来说明对这 ...
- 【HOW】如何手工编辑InfoPath文件
因为直接打开InfoPath的配置文件进行编辑会有些无从下手,所以下面以修改“节”的Margin为例来说明手工编辑InfoPath文件的过程. 1. 新建一个“节”,并在此节中创建一个数字类型字段“n ...
- Windows消息机制知识点总结
1.windows消息类型 以下四种,前三种是系统消息,范围在[0x0000, 0x03ff],第四种是用户自定义消息. 1.1 窗口消息 与窗口的内部运作有关,如创建窗口,绘制窗口,销毁窗口等.可以 ...