/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
java.lang.NoSuchMethodError, resin
Fra : Jacob Vind


Dato : 15-02-05 15:00

Hejsa.

Jeg oplever et mærkeligt problem, jeg forsøger fra en jsp side,
SendBrev.jsp at kalde en metode i en bagvedliggende klasse StandardBrev
hvoraf jeg har oprettet et objekt.

Det giver denne fejl ved visning af siden:

------------------------------------------------------------------------------
500 Servlet Exception

java.lang.NoSuchMethodError:
klasser.StandardBrev.opretBrev(Lkunder/Kunde;Ljava/lang/String;I)Z
at _jsp._SendBrev__jsp._jspService(/SendBrev.jsp:26)
at com.caucho.jsp.JavaPage.service(JavaPage.java:61)
at com.caucho.jsp.Page.pageservice(Page.java:557)
at
com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:141)
at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:163)
at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:207)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:249)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:327)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:450)
at com.caucho.util.ThreadPool.run(ThreadPool.java:394)
at java.lang.Thread.run(Thread.java:534)
------------------------------------------------------------------------------


Koden på jsp siden hvor metoden kaldes ser således ud:

------------------------------------------------------------------------------
//Variable, nogle af dem hentes fra en javabean, sd:
Kunde abuseKunde = sd.getAbuseKunde();
Historik historik = sd.getHistorik();
StandardBrev stdBrev = sd.getStdBrev();
String brevEmne = request.getParameter("emne");
stdBrev.setBrevEmne(brevEmne);
String brevTekst = request.getParameter("brevtekst");
stdBrev.setBrevTekst(brevTekst);

//Her kaldes funktionen:

String filNavn1 = abuseKunde.getKundeNr() + ".pdf";
boolean brevGenereret = false;
brevGenereret = stdBrev.opretBrev(abuseKunde,filNavn1,sd.getKundeType());
------------------------------------------------------------------------------


Og headeren på metoden i standardbrev-klassen (den er kompilet og findes i
Resins Webinf-katalog):

public boolean opretBrev(Kunde abuseKunde, String filNavn, int kundeType)



Jeg forstår det simpelthen ikke. Er der nogen der kan se lyset?
Jeg kan sagtens kalde andre metoder i StandardBreve-objektet, blot ikke
denne metode som jeg lige har oprettet... Og jeg har sikret mig at Resin
har rekompileret den med den rigtige funktioen, hvis jeg f.eks. forsøger
at kalde den med forkerte parametre eller forkert navn fås fejlene:

"500 Servlet Exception

/SendBrev.jsp:24: opretBrev(kunder.Kunde,java.lang.String,int) in
klasser.StandardBrev
cannot be applied to (kunder.Kunde,int)
   brevGenereret = stdBrev.opretBrev(abuseKunde,sd.getKundeType());"

"500 Servlet Exception

/SendBrev.jsp:24: cannot resolve symbol
symbol : method opretBrevet (kunder.Kunde,java.lang.String,int)
location: class klasser.StandardBrev
   brevGenereret = stdBrev.opretBrevet(abuseKunde,filNavn1,sd.getKundeType());"


På forhånd tak!


/Jacob.

 
 
Thorbjoern Ravn Ande~ (15-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 15-02-05 15:05

Jacob Vind <news@kabalen.dk> writes:

> Jeg oplever et mærkeligt problem, jeg forsøger fra en jsp side,
> SendBrev.jsp at kalde en metode i en bagvedliggende klasse
> StandardBrev hvoraf jeg har oprettet et objekt.
>
> Det giver denne fejl ved visning af siden:
>
> ------------------------------------------------------------------------------
> 500 Servlet Exception
>
> java.lang.NoSuchMethodError:
> klasser.StandardBrev.opretBrev(Lkunder/Kunde;Ljava/lang/String;I)Z

Der er uoverensstemmelse mellem hvordan verdenen ser ud for compileren
du har oversat koden med, og JSP-compileren. Gamle versioner af
classfiler der ligger og flyder?

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn/

Jacob Vind (15-02-2005)
Kommentar
Fra : Jacob Vind


Dato : 15-02-05 15:33

Thorbjoern Ravn Andersen wrote:

> Der er uoverensstemmelse mellem hvordan verdenen ser ud for compileren
> du har oversat koden med, og JSP-compileren. Gamle versioner af
> classfiler der ligger og flyder?

Doh!
Du havde sørme ret, jeg havde fået kopieret mine egne zipfiler med klasser
ned i $JAVA-HOME/jre/lib/ext/ i forbindelse med opgradering af Java
forleden...

/Jacob.

Thorbjoern Ravn Ande~ (15-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 15-02-05 17:00

Jacob Vind <news@kabalen.dk> writes:

> Du havde sørme ret, jeg havde fået kopieret mine egne zipfiler med
> klasser ned i $JAVA-HOME/jre/lib/ext/ i forbindelse med opgradering af
> Java forleden...

Det vil jeg fraråde. Til JSP-sider så put dine egne ting i
WEB-INF/lib istedet for at lave globale installationer. Ved
ant-projekter så lav et target der sætter classpath og kører din
applikation.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn/

Jacob Vind (17-02-2005)
Kommentar
Fra : Jacob Vind


Dato : 17-02-05 14:30

Thorbjoern Ravn Andersen wrote:

> Det vil jeg fraråde. Til JSP-sider så put dine egne ting i
> WEB-INF/lib istedet for at lave globale installationer. Ved
> ant-projekter så lav et target der sætter classpath og kører din
> applikation.

Det er heller ikke normal praksis, det var en fejl

Tak for hjælpen i øvrigt!

/Jacob.

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste