nagunpyo
asked on
What r the causes of java.lang.NoSuchMethodError?
I'm getting the following error message for last two hours and what drives me nuts is that it was working fine just a few minutes before that.
The method is in the java file and the class file is int the right directory.
Any advice plz?
HTTP Status 500 -
-------------------------- ---------- ---------- ---------- ---------- ---------- ----
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletExcep tion: com.near.region.RegionalMa nager.DblC heck(Ljava /lang/Stri ng;Ljava/l ang/String ;Ljava/lan g/String;L java/lang/ String;Lja va/lang/St ring;Ljava /lang/Stri ng;)I
at org.apache.jasper.runtime. PageContex tImpl.hand lePageExce ption(Page ContextImp l.java:498 )
at org.apache.jsp.overview_pr oc_jsp._js pService(o verview_pr oc_jsp.jav a:116)
at org.apache.jasper.runtime. HttpJspBas e.service( HttpJspBas e.java:92)
at javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 809)
at org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:1 62)
at org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:240)
at org.apache.jasper.servlet. JspServlet .service(J spServlet. java:187)
at javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 809)
at org.apache.catalina.core.A pplication FilterChai n.internal DoFilter(A pplication FilterChai n.java:200 )
at org.apache.catalina.core.A pplication FilterChai n.doFilter (Applicati onFilterCh ain.java:1 46)
at org.apache.catalina.core.S tandardWra pperValve. invoke(Sta ndardWrapp erValve.ja va:209)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.catalina.core.S tandardCon textValve. invoke(Sta ndardConte xtValve.ja va:144)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.catalina.core.S tandardCon text.invok e(Standard Context.ja va:2358)
at org.apache.catalina.core.S tandardHos tValve.inv oke(Standa rdHostValv e.java:133 )
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.valves .ErrorDisp atcherValv e.invoke(E rrorDispat cherValve. java:118)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 4)
at org.apache.catalina.valves .ErrorRepo rtValve.in voke(Error ReportValv e.java:116 )
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 4)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.catalina.core.S tandardEng ineValve.i nvoke(Stan dardEngine Valve.java :127)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.coyote.tomcat4. CoyoteAdap ter.servic e(CoyoteAd apter.java :152)
at org.apache.jk.server.JkCoy oteHandler .invoke(Jk CoyoteHand ler.java:3 00)
at org.apache.jk.common.Handl erRequest. invoke(Han dlerReques t.java:374 )
at org.apache.jk.common.Chann elSocket.i nvoke(Chan nelSocket. java:743)
at org.apache.jk.common.Chann elSocket.p rocessConn ection(Cha nnelSocket .java:675)
at org.apache.jk.common.Socke tConnectio n.runIt(Ch annelSocke t.java:866 )
at org.apache.tomcat.util.thr eads.Threa dPool$Cont rolRunnabl e.run(Thre adPool.jav a:683)
at java.lang.Thread.run(Threa d.java:536 )
root cause
java.lang.NoSuchMethodErro r: com.near.region.RegionalMa nager.DblC heck(Ljava /lang/Stri ng;Ljava/l ang/String ;Ljava/lan g/String;L java/lang/ String;Lja va/lang/St ring;Ljava /lang/Stri ng;)I
at org.apache.jsp.overview_pr oc_jsp._js pService(o verview_pr oc_jsp.jav a:98)
at org.apache.jasper.runtime. HttpJspBas e.service( HttpJspBas e.java:92)
at javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 809)
at org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:1 62)
at org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:240)
at org.apache.jasper.servlet. JspServlet .service(J spServlet. java:187)
at javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 809)
at org.apache.catalina.core.A pplication FilterChai n.internal DoFilter(A pplication FilterChai n.java:200 )
at org.apache.catalina.core.A pplication FilterChai n.doFilter (Applicati onFilterCh ain.java:1 46)
at org.apache.catalina.core.S tandardWra pperValve. invoke(Sta ndardWrapp erValve.ja va:209)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.catalina.core.S tandardCon textValve. invoke(Sta ndardConte xtValve.ja va:144)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.catalina.core.S tandardCon text.invok e(Standard Context.ja va:2358)
at org.apache.catalina.core.S tandardHos tValve.inv oke(Standa rdHostValv e.java:133 )
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.valves .ErrorDisp atcherValv e.invoke(E rrorDispat cherValve. java:118)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 4)
at org.apache.catalina.valves .ErrorRepo rtValve.in voke(Error ReportValv e.java:116 )
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 4)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.catalina.core.S tandardEng ineValve.i nvoke(Stan dardEngine Valve.java :127)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.coyote.tomcat4. CoyoteAdap ter.servic e(CoyoteAd apter.java :152)
at org.apache.jk.server.JkCoy oteHandler .invoke(Jk CoyoteHand ler.java:3 00)
at org.apache.jk.common.Handl erRequest. invoke(Han dlerReques t.java:374 )
at org.apache.jk.common.Chann elSocket.i nvoke(Chan nelSocket. java:743)
at org.apache.jk.common.Chann elSocket.p rocessConn ection(Cha nnelSocket .java:675)
at org.apache.jk.common.Socke tConnectio n.runIt(Ch annelSocke t.java:866 )
at org.apache.tomcat.util.thr eads.Threa dPool$Cont rolRunnabl e.run(Thre adPool.jav a:683)
at java.lang.Thread.run(Threa d.java:536 )
-------------------------- ---------- ---------- ---------- ---------- ---------- ----
Apache Tomcat/4.1.31
The method is in the java file and the class file is int the right directory.
Any advice plz?
HTTP Status 500 -
--------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletExcep
at org.apache.jasper.runtime.
at org.apache.jsp.overview_pr
at org.apache.jasper.runtime.
at javax.servlet.http.HttpSer
at org.apache.jasper.servlet.
at org.apache.jasper.servlet.
at org.apache.jasper.servlet.
at javax.servlet.http.HttpSer
at org.apache.catalina.core.A
at org.apache.catalina.core.A
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.valves
at org.apache.catalina.core.S
at org.apache.catalina.valves
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.coyote.tomcat4.
at org.apache.jk.server.JkCoy
at org.apache.jk.common.Handl
at org.apache.jk.common.Chann
at org.apache.jk.common.Chann
at org.apache.jk.common.Socke
at org.apache.tomcat.util.thr
at java.lang.Thread.run(Threa
root cause
java.lang.NoSuchMethodErro
at org.apache.jsp.overview_pr
at org.apache.jasper.runtime.
at javax.servlet.http.HttpSer
at org.apache.jasper.servlet.
at org.apache.jasper.servlet.
at org.apache.jasper.servlet.
at javax.servlet.http.HttpSer
at org.apache.catalina.core.A
at org.apache.catalina.core.A
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.valves
at org.apache.catalina.core.S
at org.apache.catalina.valves
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.coyote.tomcat4.
at org.apache.jk.server.JkCoy
at org.apache.jk.common.Handl
at org.apache.jk.common.Chann
at org.apache.jk.common.Chann
at org.apache.jk.common.Socke
at org.apache.tomcat.util.thr
at java.lang.Thread.run(Threa
--------------------------
Apache Tomcat/4.1.31
Do you have DblCheck method in RegionalManager?
after changing the class files you recompile and redploy as well.
Post your JSP
after changing the class files you recompile and redploy as well.
Post your JSP
Did you change the version of the compiler ?
ASKER
Yes, I do have the method in RegionalManager, I did recompile and restart Tomcat.
Here's my JSP file
<%@ page language="java" import="java.io.*" contentType="text/html;cha rset=UTF-8 " %>
<jsp:useBean id="cc" scope="page" class="com.near.region.Ove rviewCode" />
<jsp:useBean id="cm" scope="page" class="com.near.region.Reg ionalManag er" />
<jsp:useBean id="uf" scope="page" class="com.near.code.UtilF unc" />
<%
try{
String tName = uf.toKor(request.getParame ter("tName ")); //---- Table name
String country = uf.toKor(request.getParame ter("count ry"));
String gov = uf.toKor(request.getParame ter("gover nment"));
String typemain = uf.toKor(request.getParame ter("typeM ain"));
String typesub = uf.toKor(request.getParame ter("typeS ub"));
String lang = uf.toKor(request.getParame ter("LAN") );
int IDX = cm.DblCheck(tName, country, gov, typemain, typesub, lang);
if(IDX > 0)
{
response.sendRedirect("ove rview_modi fy.jsp?TOV IEW_IDX=" + IDX);
}else{
response.sendRedirect("ove rview_writ e.jsp?tNam e=" + tName + "&country=" + country + "&government=" + gov + "&typeMain=" + typemain + "&typeSub=" + typesub + "&LAN=" + lang);
}
}catch(Exception e){
out.println(e);
}
%>
Here's my JSP file
<%@ page language="java" import="java.io.*" contentType="text/html;cha
<jsp:useBean id="cc" scope="page" class="com.near.region.Ove
<jsp:useBean id="cm" scope="page" class="com.near.region.Reg
<jsp:useBean id="uf" scope="page" class="com.near.code.UtilF
<%
try{
String tName = uf.toKor(request.getParame
String country = uf.toKor(request.getParame
String gov = uf.toKor(request.getParame
String typemain = uf.toKor(request.getParame
String typesub = uf.toKor(request.getParame
String lang = uf.toKor(request.getParame
int IDX = cm.DblCheck(tName, country, gov, typemain, typesub, lang);
if(IDX > 0)
{
response.sendRedirect("ove
}else{
response.sendRedirect("ove
}
}catch(Exception e){
out.println(e);
}
%>
ASKER
I did not change the version of the compiler
ASKER
I tried renaming the method in question and the error message was different.
org.apache.jasper.JasperEx ception: Unable to compile class for JSP
An error occurred at line: 5 in the jsp file: /admin/region/overview_pro c.jsp
Generated servlet error:
[javac] Compiling 1 source file
/usr1/projects/tomcat4.1.3 1-near/wor k/Standalo ne/203.233 .205.19/ap p/admin/re gion/overv iew_proc_j sp.java:98 : cannot resolve symbol
symbol : method DoubleChechk (java.lang.String,java.lan g.String,j ava.lang.S tring,java .lang.Stri ng,java.la ng.String, java.lang. String)
location: class com.near.region.RegionalMa nager
int IDX = cm.DoubleChechk(tName, country, gov, typemain, typesub, lang);
^
1 error
at org.apache.jasper.compiler .DefaultEr rorHandler .javacErro r(DefaultE rrorHandle r.java:85)
at org.apache.jasper.compiler .ErrorDisp atcher.jav acError(Er rorDispatc her.java:2 48)
at org.apache.jasper.compiler .Compiler. generateCl ass(Compil er.java:31 5)
at org.apache.jasper.compiler .Compiler. compile(Co mpiler.jav a:328)
at org.apache.jasper.JspCompi lationCont ext.compil e(JspCompi lationCont ext.java:4 27)
at org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:1 42)
at org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:240)
at org.apache.jasper.servlet. JspServlet .service(J spServlet. java:187)
at javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 809)
at org.apache.catalina.core.A pplication FilterChai n.internal DoFilter(A pplication FilterChai n.java:200 )
at org.apache.catalina.core.A pplication FilterChai n.doFilter (Applicati onFilterCh ain.java:1 46)
at org.apache.catalina.core.S tandardWra pperValve. invoke(Sta ndardWrapp erValve.ja va:209)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.catalina.core.S tandardCon textValve. invoke(Sta ndardConte xtValve.ja va:144)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.catalina.core.S tandardCon text.invok e(Standard Context.ja va:2358)
at org.apache.catalina.core.S tandardHos tValve.inv oke(Standa rdHostValv e.java:133 )
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.valves .ErrorDisp atcherValv e.invoke(E rrorDispat cherValve. java:118)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 4)
at org.apache.catalina.valves .ErrorRepo rtValve.in voke(Error ReportValv e.java:116 )
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 4)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.catalina.core.S tandardEng ineValve.i nvoke(Stan dardEngine Valve.java :127)
at org.apache.catalina.core.S tandardPip eline$Stan dardPipeli neValveCon text.invok eNext(Stan dardPipeli ne.java:59 6)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. java:433)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 48)
at org.apache.coyote.tomcat4. CoyoteAdap ter.servic e(CoyoteAd apter.java :152)
at org.apache.jk.server.JkCoy oteHandler .invoke(Jk CoyoteHand ler.java:3 00)
at org.apache.jk.common.Handl erRequest. invoke(Han dlerReques t.java:374 )
at org.apache.jk.common.Chann elSocket.i nvoke(Chan nelSocket. java:743)
at org.apache.jk.common.Chann elSocket.p rocessConn ection(Cha nnelSocket .java:675)
at org.apache.jk.common.Socke tConnectio n.runIt(Ch annelSocke t.java:866 )
at org.apache.tomcat.util.thr eads.Threa dPool$Cont rolRunnabl e.run(Thre adPool.jav a:683)
at java.lang.Thread.run(Threa d.java:536 )
so, I guess Tomcat does know about the method.
org.apache.jasper.JasperEx
An error occurred at line: 5 in the jsp file: /admin/region/overview_pro
Generated servlet error:
[javac] Compiling 1 source file
/usr1/projects/tomcat4.1.3
symbol : method DoubleChechk (java.lang.String,java.lan
location: class com.near.region.RegionalMa
int IDX = cm.DoubleChechk(tName, country, gov, typemain, typesub, lang);
^
1 error
at org.apache.jasper.compiler
at org.apache.jasper.compiler
at org.apache.jasper.compiler
at org.apache.jasper.compiler
at org.apache.jasper.JspCompi
at org.apache.jasper.servlet.
at org.apache.jasper.servlet.
at org.apache.jasper.servlet.
at javax.servlet.http.HttpSer
at org.apache.catalina.core.A
at org.apache.catalina.core.A
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.valves
at org.apache.catalina.core.S
at org.apache.catalina.valves
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.S
at org.apache.catalina.core.C
at org.apache.coyote.tomcat4.
at org.apache.jk.server.JkCoy
at org.apache.jk.common.Handl
at org.apache.jk.common.Chann
at org.apache.jk.common.Chann
at org.apache.jk.common.Socke
at org.apache.tomcat.util.thr
at java.lang.Thread.run(Threa
so, I guess Tomcat does know about the method.
This time
i think you have a typo there
>int IDX = cm.DoubleChechk(tName, country, gov, typemain, typesub, lang);
PLease check the typos in this case other wise you should not get the no element found exception.The name you specified in JSP is different from the name in the java class "RegionalManager".
i think you have a typo there
>int IDX = cm.DoubleChechk(tName, country, gov, typemain, typesub, lang);
PLease check the typos in this case other wise you should not get the no element found exception.The name you specified in JSP is different from the name in the java class "RegionalManager".
ASKER
I did it on purpose to see if Tomcat actually knows about the method.
And since the error message was different when I tried to access a method that doesn't exist, I guess Tomcat did know about the method before and java.lang.NoSuchMethodErro r does not actually mean the method doesn't exist in the class.
And since the error message was different when I tried to access a method that doesn't exist, I guess Tomcat did know about the method before and java.lang.NoSuchMethodErro
ASKER
OK... it seems like I can't add any methods into the file anymore.
I added a simple 1-line testing method and tried call it from jsp, the same error message. @_@
I added a simple 1-line testing method and tried call it from jsp, the same error message. @_@
From javadocs
Thrown if an application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method.
Normally, this error is caught by the compiler; this error can only occur at run time if the definition of a class has incompatibly changed
check this
1>Do you have the package statement in yout java file RegionalManager
package com.near.region;
Thrown if an application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method.
Normally, this error is caught by the compiler; this error can only occur at run time if the definition of a class has incompatibly changed
check this
1>Do you have the package statement in yout java file RegionalManager
package com.near.region;
ASKER
yeah, i do have that statement...
ASKER
hmm... i deleted the old class file and recompiled it but it seems like i'm keep on getting back the old version.
i mean, when i recompile, i get a new class file but i think the contents of the new class file is actually the old file.
i mean, when i recompile, i get a new class file but i think the contents of the new class file is actually the old file.
ok change the version of JDK ..which version is that?
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Thanks fo rhte grade
Hope you resolved the issue.
Hope you resolved the issue.
ASKER