webForumDet fria alternativet

Fel vid kompliering - hur fixa?

8 svar · 500 visningar · startad av Fredde Mannen

Fredde MannenMedlem sedan nov. 20013 498 inlägg
#1
addinfo.java:5: package javax.servlet does not exist
import javax.servlet.*;
^
addinfo.java:6: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
addinfo.java:8: cannot resolve symbol
symbol  : class HttpServlet 
location: class addinfo
public class addinfo extends HttpServlet {
                             ^
addinfo.java:10: cannot resolve symbol
symbol  : class HttpServletRequest 
location: class addinfo
    public void doPost(HttpServletRequest request, HttpServletResponse res)
                       ^
addinfo.java:10: cannot resolve symbol
symbol  : class HttpServletResponse 
location: class addinfo
    public void doPost(HttpServletRequest request, HttpServletResponse res)
                                                   ^
addinfo.java:11: cannot resolve symbol
symbol  : class ServletException 
location: class addinfo
    throws IOException, ServletException
                        ^
addinfo.java:16: cannot resolve symbol
symbol  : variable response 
location: class addinfo
        catch (Exception E) { response.setContentType("text/html");
                              ^
addinfo.java:17: cannot resolve symbol
symbol  : variable response 
location: class addinfo
        PrintWriter out = response.getWriter();
                          ^
addinfo.java:35: cannot resolve symbol
symbol  : variable response 
location: class addinfo
                        response.sendRedirect("/labb_jsp/index.jsp");
                        ^
addinfo.java:39: cannot resolve symbol
symbol  : variable out 
location: class addinfo
         out.println("SQLException: " + E.getMessage());
         ^
10 errors

*mummel*

hur in i hela fridens namn skall jag få detta att funka? :q

import java.net.*;
import java.util.*;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class addinfo extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse res)
    throws IOException, ServletException
    {
		try{
			Class.forName("com.mysql.jdbc.Driver").newInstance();
		}
	catch (Exception E) { response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("<head>");
        out.println("<title>Unable to load driver.</title>");
        out.println("</head>");
        out.println("<body>");
		out.println("Unable to load driver.");
        out.println("</body>");
        out.println("</html>");
	
	// 	E.printStackTrace();
	}
	
	try{
		Connection C = DriverManager.getConnection("jdbc:mysql://localhost:3306/laborationer?user=xxx&password=xxx");
			Statement S = C.createStatement();
			S.executeUpdate("INSERT INTO labb1(sNamn, iTfn) VALUES('"+ request.getParameter("sNamn") +"','"+request.getParameter("iTfn")+"')");
			response.sendRedirect("/labb_jsp/index.jsp");
			C.close();
	}
     catch (Exception E) {
	 out.println("SQLException: " + E.getMessage());
     }
 }
}

Så ser koden ut, är säkert helt åt *pip* ... :e

nitro2k01Medlem sedan aug. 20037 630 inlägg
#2

Jag tror du får uppgradera din utvecklingsmiljö

Fredde MannenMedlem sedan nov. 20013 498 inlägg
#3

nitro2k01 skrev:

Jag tror du får uppgradera din utvecklingsmiljö

okei!

Vilka tänkbara program behövs för detta skulle du tro? :)

Aleph_OneMedlem sedan juni 2003370 inlägg
#4

Ser ut som att du har missat att ta med en eller flera jar filer i classpathen. Lättast är nog att ta med sökvägen till rätt lib från den app server du använder.

Fredde MannenMedlem sedan nov. 20013 498 inlägg
#5

Aleph_One skrev:

Ser ut som att du har missat att ta med en eller flera jar filer i classpathen. Lättast är nog att ta med sökvägen till rätt lib från den app server du använder.

oki :) får kolla upp detta och testa igen! :D

ViktorMedlem sedan aug. 20021 710 inlägg
#6

Om du har laddat ner J2EE från Sun så är det j2ee.jar (ligger i j2ee lib katalogen) som du ska ha i din classpath, om du bara har laddat ner t.ex. Tomcat så är det servlet-api.jar som du ska lägga i din classpath, ligger under katalogen "common\lib".

/Viktor

jmeMedlem sedan maj 20011 967 inlägg
#7

Är det en äldre version av Tomcat, dvs < 5 så heter jar-filerna j2ee.jar om jag minns rätt. Med version 5 och uppåt så heter filen servlet-api.jar.

ViktorMedlem sedan aug. 20021 710 inlägg
#8

Re: Fel vid kompliering - hur fixa?

Så ser koden ut, är säkert helt åt *pip* ... :e

En kommentar om koden är att om du inte hittar klassen som du ska använda för att tala med databasen,

try{
	Class.forName("com.mysql.jdbc.Driver").newInstance();
}

så kommer du ändå att försöka skapa en koppling till databasen,

Connection C = DriverManager.getConnection("jdbc:mysql://localhost:3306/laborationer?
user=xxx&password=xxx");

eftersom du inte hoppar ur programmet efter att du har skrivit ditt fel medelande. Ett sätt kan vara att bara lägga till en return; i slutet av den första catch satsen. Ett annat kan vara att bara köra en try sats och i slutet fånga SQLException och ClassNotFoundException (tror jag det ska vara), om du får ett SQLException så är det något fel med SQL, får du ett ClassNotFoundException så finns inte databas drivrutinen.
Såhär,

public void doPost(HttpServletRequest request, HttpServletResponse res)
throws IOException, ServletException
{
	try{
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		Connection C = DriverManager.getConnection("jdbc:mysql://localhost:3306/
                 laborationer?user=xxx&password=xxx");
		Statement S = C.createStatement();
		S.executeUpdate("INSERT INTO labb1(sNamn, iTfn) VALUES('"+ 
                      request.getParameter("sNamn")+"','"+request.getParameter("iTfn")+"')");
		response.sendRedirect("/labb_jsp/index.jsp");
		C.close();
	}
	catch (ClassNotFoundException cnfe)
	{
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<body>");
		out.println("<head>");
		out.println("<title>Unable to load driver.</title>");
		out.println("</head>");
		out.println("<body>");
		out.println("Unable to load driver.");
		out.println("</body>");
		out.println("</html>");
	}
	catch(SQLException sql)
	{
		out.println("SQLException: " + sql.getMessage());
	}
}

/Viktor

Fredde MannenMedlem sedan nov. 20013 498 inlägg
#9

Tack så mycket Viktor. :)

Skall kolla igenom det där med servlet-api när jag kommer hem och kan testa. :) Man är ju lite ny ny för detta.. :D Tackar o bockar. :D

127 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
125 ms — hämta tråd, inlägg och bilagor (db)