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.