Avatar billede taae Juniormester
20. november 2005 - 01:50 Der er 30 kommentarer og
1 løsning

Hvorfor får jeg fejl hele tiden

Nu har jeg siddet og kigget på koden i over en time, men med samme fejl: HTTP status  404

Det er min jsp kode:
<body>
    <%
    ResultSet RS = DbQuery.DbQueryData.visMaerke();
            if (RS == null) {
                out.println("DEN ER TOM!!!");
            }

            try {
                while (RS.next()) {
                    out.println(RS.getString("bilMaerke"));
                }
            } catch (Exception e) {
                System.out.println(e);
            }
           
            %>
    </body>

java klasse kode:

public static ResultSet visMaerke ()throws Exception
{
ConnectToDatabase Condb= new ConnectToDatabase ();
return Condb.ExecuteResultSet("SELECT * FROM bilMaerke ");
}


Opretter forb til db i constructor:

public class ConnectToDatabase
{
public static Connection con= null;
public static Statement stmt = null;
   
   
    //Opret forbindelse til MySQL database i konstruktør
    public ConnectToDatabase () throws Exception
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test","root","taae");
            //con.setAutoCommit(false);
                    }
        catch (SQLException e)
        {
            e.printStackTrace();
           
        }
       
        //Check om forb er gyldig....
        if (con == null)
        {
            System.err.println ("FEJL ! Kunne ikke oprette forbindelse");
        }
    }

Og metoden som henter data fra db:

/** Denne metode bruges hver gang man skal læse fra databasen. */     
    public ResultSet ExecuteResultSet(String SqlStatement)
    {
        ResultSet ReturnResultSet;
        try{
            stmt = con.createStatement();
            ReturnResultSet = stmt.executeQuery(SqlStatement);
            return ReturnResultSet;
        }catch (SQLException e){
            System.out.println(e.getMessage());
        }
        return null;
    }


jeg har tjekket og mine java filer og .jsp ligger i deres rigtige mapper. Jeg er blank for ideer om hvad der kan være galt. Når jeg i browseren skal køre prog, skriver jeg:

http://localhost:8080/DbQueryData/HentData.jsp

I sir til for yderligere info
Avatar billede taae Juniormester
20. november 2005 - 01:55 #1
Under jsp koden er RS.getString ("bilmaerke");
Avatar billede Slettet bruger
20. november 2005 - 05:45 #2
Hvis du får 404, som er HTTP koden for Not found kan din server ikke finde http://localhost:8080/DbQueryData/HentData.jsp

Er du sikker på det er 404 ?
Avatar billede arne_v Ekspert
20. november 2005 - 12:41 #3
ligger din JSP fil som (Tomcat root)/webapps/DbQueryData/HentData.jsp ?
Avatar billede touel Nybegynder
20. november 2005 - 13:34 #4
kryptos -> ja det er jeg sikker på

arne-> Jeg ligger alle mine jsp filer direkte under webroot
Avatar billede arne_v Ekspert
20. november 2005 - 13:43 #5
hvorfor er der så DbQueryData i URL ?
Avatar billede Slettet bruger
20. november 2005 - 16:10 #6
ja, men så kan din web server ikke finde din jsp-file på den position du angiver, kan du eksempelvis kalde en statisk HTML side eller billede i samme katalog?
Avatar billede touel Nybegynder
20. november 2005 - 21:21 #7
da jeg installerede myeclipseide, fulgte jeg med i en tutorial på deres hjm side.

I den angav de den javaklasse som jsp siden skal bruge. Derfor har jeg taget DbQueryData med
Avatar billede arne_v Ekspert
20. november 2005 - 21:32 #8
nu antager jeg at du bruger Tomcat

http://localhost/dinapp/dinside.jsp mappes til (Tomcat root)/webapps/dinapp/sinside.jsp
http://localhost/dinapp/subdir/dinside.jsp mappes til (Tomcat root)/webapps/dinapp/subdir/dinside.jsp

eller hvis du leger med ROOT web app:

http://localhost/dinside.jsp mappes til (Tomcat root)/webapps/ROOT/sinside.jsp
http://localhost/subdir/dinside.jsp mappes til (Tomcat root)/webapps/ROOT/subdir/dinside.jsp

og hvis filen ikke er der hvor URL'en mappes til så får du fejl
Avatar billede taae Juniormester
20. november 2005 - 22:32 #9
hmmm... den er gal igen med mysql driver.

For at være sikker på at mysql connector er der, så har jeg gået ind i følgende sti og lagt den :
C:\Documents and Settings\home\workspace\Bil\WebRoot\WEB-INF\lib
Avatar billede arne_v Ekspert
20. november 2005 - 22:51 #10
aldrig bruge mellemrum i dir navne - specielt ikke til java eller Tomcat

men hvad går der galt - kan du ikke finde driveren ?
Avatar billede taae Juniormester
20. november 2005 - 22:51 #11
Fejlmeddelse:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at ConnectDb.ConnectToDatabase.<init>(ConnectToDatabase.java:19)
    at DbQuery.DbQueryData.visMaerke(DbQueryData.java:35)
    at DbQuery.Main.main(Main.java:13)
Avatar billede arne_v Ekspert
20. november 2005 - 22:52 #12
main lyder som en app ikke en web app ????
Avatar billede taae Juniormester
20. november 2005 - 22:55 #13
nå ja.. sorry arne.. jeg gik lige i gang med at tjekke forb bare via en alm java appl, før jeg gik tilbage til min web appl.

jeg tror godt at jeg nu muligvis kan få web appl oppe at køre igen udfra de 4 mulighedder du har angivet foroven...
Avatar billede arne_v Ekspert
20. november 2005 - 22:58 #14
for en normal app så skal jdbc driver jar filen i din classpath og ikke i WEB-INF/lib
(som er bliver til Tomcat's classpath)
Avatar billede taae Juniormester
20. november 2005 - 23:03 #15
nåh

hmm..så tror jeg lige at jeg hurtig fjerner koden for den alm app, og vender tilbage til min web app
Avatar billede taae Juniormester
20. november 2005 - 23:05 #16
forresten... de 4 muligheder du har angivet foroven. Der skal ikke stå 8080 efter localhost, vel ?
Avatar billede arne_v Ekspert
20. november 2005 - 23:07 #17
det skal der - 8080 er default - man kan ændre den til 80 - men det fremgår jo
af dit spørgsmål at du bruger 8080
Avatar billede taae Juniormester
20. november 2005 - 23:18 #18
fejlmeddelse;

java.lang.NullPointerException
    at ConnectDb.ConnectToDatabase.ExecuteResultSet(ConnectToDatabase.java:53)
    at DbQuery.DbQueryData.visMaerke(DbQueryData.java:37)
    at org.apache.jsp.ProveIndsaetDataFraDb_jsp._jspService(org.apache.jsp.ProveIndsaetDataFraDb_jsp:78)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
Avatar billede arne_v Ekspert
20. november 2005 - 23:19 #19
og hvad er der i ConnectToDatabase.java linie 53 ?
Avatar billede taae Juniormester
20. november 2005 - 23:26 #20
Det er ExecuteResultSet, som er den sidste metode jeg har under spg helt i starten.

VisMaerke er også helt i starten
Avatar billede taae Juniormester
20. november 2005 - 23:34 #21
linie 53 er:

stmt = con.createStatement ();
Avatar billede arne_v Ekspert
20. november 2005 - 23:37 #22
så er con jo nok null ....
Avatar billede taae Juniormester
20. november 2005 - 23:45 #23
dvs helt oppe hvor jeg opretter forb til db vha følgende sætning også fejler :

Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test","root","taae");
Avatar billede arne_v Ekspert
20. november 2005 - 23:52 #24
bliver den kaldt ?

går den godt ?
Avatar billede taae Juniormester
20. november 2005 - 23:58 #25
nej arne... den blir ikke kaldt :(

Nogle steder har jeg tilføjet system.out.println's

ConnectoToDatabase
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1338)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1187)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at ConnectDb.ConnectToDatabase.<init>(ConnectToDatabase.java:19)
    at DbQuery.DbQueryData.visMaerke(DbQueryData.java:35)
    at org.apache.jsp.ProveIndsaetDataFraDb_jsp._jspService(org.apache.jsp.ProveIndsaetDataFraDb_jsp:78)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
!!!!!!!!!!!!!!!!1FORBINDELSE IKKE OPRETTET!!!!!!!!!!!!!!!!!!com.mysql.jdbc.Driver
FEJL ! Kunne ikke oprette forbindelse
vi er inde i visMaerke () metoden....
2005-11-20 23:56:09 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
    at ConnectDb.ConnectToDatabase.ExecuteResultSet(ConnectToDatabase.java:53)
    at DbQuery.DbQueryData.visMaerke(DbQueryData.java:37)
    at org.apache.jsp.ProveIndsaetDataFraDb_jsp._jspService(org.apache.jsp.ProveIndsaetDataFraDb_jsp:78)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
Avatar billede taae Juniormester
21. november 2005 - 00:07 #26
og fejlen er nu skiftet fra at være 404 til 500... jeg hænger sgu altid fast mellem disse 2
Avatar billede taae Juniormester
21. november 2005 - 00:08 #27
mon det kunne skyldes at con er null, fordi den ikke kan fine mysql driver ???
Avatar billede taae Juniormester
21. november 2005 - 00:17 #28
Er det meningen at når man har lagt sql connector under web-inf\lib

og man efterfølgende klikker på web.xml dokumentet at den så også viser info om adgang til mysql ???

for hvis det er tilfældet, så kan jeg ikke se noget i min
Avatar billede arne_v Ekspert
21. november 2005 - 00:44 #29
WEB-INF/lib er rigtig

----

ja

----

der bliver ikke skrevet noget i web.xml
Avatar billede taae Juniormester
21. november 2005 - 21:13 #30
lægger du et svar arne, så vi kan drøfte dette spg videre under java sektionen
Avatar billede arne_v Ekspert
21. november 2005 - 21:16 #31
ok
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