Servlet som returnerer XML
Hej Eksperter,Jeg har et problem som jeg meget gerne vil finde en løsning på. Det handler om en servlet der skal give mig noget XML. Jeg får en intern serverfejl. Jeg ville mene at servletten skulle se således ud:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import util.*;
import java.util.*;
public class Varer extends HttpServlet
{
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out;
response.setContentType("text/xml");
StringBuffer buffer = new StringBuffer();
// Bruges hvis jeg vil have et argument med (xmlhttp.send(VÆRDI))
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
String result = reader.readLine();
out = response.getWriter();
buffer.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
buffer.append("<varer>");
Databaseforbindelsemysqlprepared d = new Databaseforbindelsemysqlprepared("com.mysql.jdbc.Driver", "jdbc:mysql://192.168.1.15/capa", "capa", "123456789diana");
Vector vi = new Vector();
// vi.addElement(user);
StringBuffer bu = new StringBuffer();
bu.append("select * from varer");
ResultSet rs = d.select(bu.toString(), vi);
try {
while (rs.next()) {
buffer.append("<nr>");
buffer.append("<navn>"+rs.getString("navn")+"</navn>");
buffer.append("<antal>"+rs.getString("antal")+"</antal>");
buffer.append("</nr>");
}
buffer.append("</varer>");
} catch (SQLException s) {
buffer.append("<h3>SQL fejl: " + s.toString() + " "
+ s.getErrorCode() + " " + s.getSQLState() + "</h3>");
}
out.println(buffer.toString());
out.close();
d.close();
}
}
Jeg bruger så et Javascript til at hente data således:
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
<html>
<head>
<title>Web-oasen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h2>WEB-OASEN.DK</h2>
<span id="indhold"></span>
<script type="text/javascript">
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.open("POST","http://web-oasen.dk/Varer",false)
xmlhttp.send("<time>3:48</time>")
var dom = xmlhttp.responseXML;
var html = new Array();
html[html.length] = "<table style=\"width:200px;\">\n";
var x=dom.getElementsByTagName("nr").length;
for(i=0;i<x;i++) {
var navn = dom.getElementsByTagName("navn").item(i).firstChild.nodeValue;
var antal = dom.getElementsByTagName("antal").item(i).firstChild.nodeValue;
html[html.length] = "<tr><td style=\"width:100px;\">" + navn + "</td><td style=\"width:100px;\">" + antal + "</td></tr>\n";
}
html[html.length] = "</table>\n";
var allhtml = html.join("\n");
document.getElementById("indhold").innerHTML = allhtml;
</script>
</body>
</html>
Hvorfor er det lige at det ikke virker?
