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 ...
随机推荐
- 定制个性化码表技术 ibus
在不同用户的工作环境中,都会根据各自使用的字符集的不同,而需要定制优化各自的输入法码表,例如,在GB18030中的大量汉字,或许因为输入法码表的老旧,而难于利用自己熟悉的“五笔”方法快速录入,同样,需 ...
- 加密配置文件(App.Config和Web.config)中connectionStrings通用方法
1. 背景:根据项目的要求,需要对配置文件配置的数据库连接字符串进行加密,也就是对ConnectinString节点的内容进行加密存储,同时考虑到代码使用连接字符串不需要进行更改,C#会自动对加密的内 ...
- LeetCode "473. Matchsticks to Square"
A trickier DFS, with a little bit complex recursion param tweak, and what's more important is prunin ...
- Displaying Bitmaps Efficiently 显示图片相关
http://developer.android.com/training/displaying-bitmaps/index.html .手机内存资源有限 .Bitmap占用的内存大 .App有时需要 ...
- POJ 2528 Mayor's posters(线段树+离散化)
Mayor's posters 转载自:http://blog.csdn.net/winddreams/article/details/38443761 [题目链接]Mayor's posters [ ...
- iPad开发
获得view: self.categoryItem.customView 设置控制起 : 在POP ver中的尺寸 self.preferredContentSize = 坚挺三部曲 1. 通过设置 ...
- tomcat架构分析 (Session管理)
Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到.在开发app时,我们只是获取一个session,然后向session中存取数据,然后再销毁session.那么如何产生se ...
- 合并两个java bean对象非空属性(泛型)
import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; cl ...
- 如何解決 Homebrew Update 失敗?
相信許多用 MAC 系統的程式設計師.工程師們都有用 Homebrew 這個超好用的 Open Source 套件管理程式吧? 如果沒有的話,你可以透過以下的指令安裝: ruby -e "$ ...
- Django RedirectView
RedirectView作用是重定向一个指定,给定的Url.这个给定的Url可能包含有字典风格的字符串,因为关键字(词)会被改变,所以从这个Url中捕获的参数可能也会被修改,例如,Url中的“%”应该 ...