Avatar billede goldenboy Nybegynder
27. december 2001 - 01:58 Der er 6 kommentarer og
1 løsning

Totalt weird fejl: NoSuchMethodError

Så er jeg her igen:
Server Tomcat 4.0.1

Jeg har lavet en container klasse som med metoden getAll() løber alle nyheder i containere igennem, og kombinerer dem til en string, som den så returner.

samtidigt har jeg metoden getRecent(int i), som returner de \'i\' nyeset nyheder og kombinerer dem til en string og returnerer den string.

men problemet er, at jeg kun kan kalde getRecent(i).
når jeg prøver at kalde getAll(), får jeg en noSuchMethodError fra tomcat...

jeg vedlægger lige koden og så vil jeg meget gerne komme med yderligere oplysninger hvis det skulle være...men jeg kan simpelthen ikke finde fejlen :-(

<form method=\"front.jsp\">
    <textarea name=\"tekst\" rows=\"10\" cols=\"30\">
    </textarea> <br>
    <input type=\"submit\" value=\"Opret Nyheden\">
    <input type=\"reset\" value=\"Slet alt\">
</form>

<%
    if ( request.getParameterValues(\"tekst\")!=null )
    container.add(12,34,11,8,2001, request.getParameterValues(\"tekst\")[0] );
%>

<%=container.getAll()%>

bemærk, at det hele foregår på siden front.jsp.
Avatar billede lbhansen Nybegynder
27. december 2001 - 02:03 #1
Hvis du har metoden getAll() implementeret er den så public?

Den indikerer jo netop NuSuchMethod.

Avatar billede goldenboy Nybegynder
27. december 2001 - 02:45 #2
ja, jeg paster lige koden her:

/**
* Insert the method\'s description here.
* Creation date: (25-12-2001 23:11:43)
*/
public String getAll() {
    String newspage = \"\";
    java.util.Iterator i = news.iterator();
    News tempNews;
    while ( i.hasNext() )
    {
        tempNews = (News)i.next();
        newspage += tempNews.time() + \'\\n\';
        newspage += tempNews.getNews() + \'\\n\';
    }       
    return newspage;
}

men alle metoder og variabler er public (btw, til beans, så skal både get, set og variablen være public ik?)

og jeg er 99% sikker på at jeg bruger den nyeste class fil....har eksportet den flere gange...den er lavet i Visual Age..

Avatar billede goldenboy Nybegynder
27. december 2001 - 02:57 #3
Nu har jeg arbejdet lidt mere med det, og har fundet noget underligt.

Hvis jeg forsøger at kalde en metode som jeg ved ikke findes, får jeg en anden fejl, en hvis jeg kalder metoden getAll() som findes.

jeg paster lige fejlmeddelelsen. Håber det kan hjælpe. - Måske er det en bug i Tomcat?? -

type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

javax.servlet.ServletException
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:457)
    at org.apache.jsp.front$jsp._jspService(front$jsp.java:130)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1011)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)
    at java.lang.Thread.run(Unknown Source)


root cause

java.lang.NoSuchMethodError
    at org.apache.jsp.front$jsp._jspService(front$jsp.java:120)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1011)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)
    at java.lang.Thread.run(Unknown Source)

Avatar billede goldenboy Nybegynder
27. december 2001 - 12:01 #4
Problemet er fundet....det hjalp da jeg gik fra Tomcat til Resin...

Tomcat har mindst én bug :-(
Avatar billede logical Nybegynder
27. december 2001 - 12:35 #5
Det kommer da an på, om det er en bug. Havde du tomcat nede og vende efter du havde omskrevet dine klasser. Det er typisk et problem med cachede objekter i en classloader..
Avatar billede goldenboy Nybegynder
27. december 2001 - 12:39 #6
ja, jeg prøvede igen dagen efter...efter en reboot...still no luck :-(
Avatar billede logical Nybegynder
27. december 2001 - 12:41 #7
Selv om jeg godt ved at Disky er religiøs med hensyn til at Tomcat er dårlig (Og Resin er den bedste), så kan problemet dog løses alligevel. Men gider vi det nu :-)))

Inden man erklærer at Tomcat har en bug, skal man trods alt dykke lidt dybere ned i problemstillingen, og det er nu sjældent, at den ikke fungerer efter specifikationerne :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester