25. februar 2003 - 13:42Der er
7 kommentarer og 2 løsninger
JSP, databasetilgang og controller klasser
Vi har en JSP side der benytter sig af en controller klasse i en ekstern pakke til at tilgå til en database. Koden den benytter er:
result = control.logon(email,password);
hvor control er vores kontrol-klasse (surprise) og logon-metoden kigger i en database og undersøger om brugeren eksisterer og om password er korrekt. Her kommer bare et lille problem, det virker nemlig ikke. Fejlen fra siden:
java.lang.NullPointerException at bilServer.DB_Con.exeQuery(DB_Con.java:75) at bilServer.Main_control.logon(Main_control.java:139) at bilServer.JSP_Control.logon(JSP_Control.java:16) at org.apache.jsp.TjekLogin$jsp._jspService(TjekLogin$jsp.java:92)
Dvs at metoden kan få fat i alle klasser helt ned til den klasse der rent faktisk laver database opslaget, men et eller andet sted går det galt, og den får en tom String tilbage. Den string den får tilbage skulle sige enten om det er gået godt eller dårligt, og i tilfælde af fejl, hvad der er gået galt. Det sker bare ikke. Efter et par overvejelser er vi kommet til et par mulige grunde til hvorfor fejlen ligger der. Den første kom da vi kiggede nærmere på output - der stod nemlig:
Kunne ikke initialisere JDBC connection. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Den meddelelse kommer fra den sidste klasse i fejlmeddelelsen, db_con, hvor den siger den ikke kan få forbindelse til databasen. Det sjove er bare, at vi også benytter os af en javaklient der GODT kan få forbindelse til databasen via db_con, og som ligger i en HELT anden pakke end den alle controller klasserne ligger i.
Spørgsmålet er så, ligger problemet i opsætningen af webserveren? Skal den have at vide noget specielt for at virke selvom den bare skal benytte sig af nogle andre klasser? DB_con ligger i WEB-INF sammen med controllerklasserne, og JSP-siden kan jo fint finde dem, bare ikke finde databasen.
Yes - perfekt. Den skulle bare over i WEB-INF/lib. Det kommer til at blive et helvede når det hele skal lægges over på SUN ONE web-server tror jeg. I får lige et par point hver. Nu er vi i grunden blevet nysgerrige - er I ansat til at svare siden I altid er så hurtige?
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.