I'm two months into learning Java, am creating a website and have hit a wall. I get this xml message:
The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
--------------------------------------------------------------------------------
The system cannot locate the object specified. Error processing resource 'My xml code is:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE ProductList [
<!ELEMENT ProductList (Product+)>
<!ELEMENT Product (Title, Author+, ISBN, Cost, InStock) >
<!ELEMENT Title (#PCDATA) >
<!ELEMENT Author (#PCDATA) >
<!ELEMENT ISBN (#PCDATA) >
<!ELEMENT Cost (#PCDATA)>
<!ELEMENT InStock (#PCDATA) >
<!ELEMENT OrderEntry (Product*)> ]>
<?xml-stylesheet type="text/xsl" href="ProductList.xsl" ?>
<ProductList>
<Product>
<Title></Title>
<Author></Author>
<ISBN></ISBN>
<Cost></Cost>
<InStock></InStock>
</Product>
</ProductList>
My servlet is:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.text.DecimalFormat;
public class ProductLookuptest extends HttpServlet {
private static void loadJDBCDriver () {
System.out.println ("Loading database driver..."
try {
DriverManager.registerDriver ( new sun.jdbc.odbc.JdbcOdbcDriver() );
System.out.println ("Database driver loaded..."
}
catch (SQLException e) {
System.err.println (e.getMessage () + e.toString() );
}
}
private static Connection getConnected () {
System.out.println ("getting connection..."
try {
String jdbc_url = "jdbcdbc:Book";
Connection conn = DriverManager.getConnection (jdbc_url);
System.out.println ("connection created ..."
return conn;
}
catch (SQLException e) {
System.err.println (e.getMessage () + e.toString() );
System.exit(1); //Driver failure
}
return null; // never happen
}
private static Statement makeStatement (Connection conn) {
try {
System.out.println ("Making a Statement..."
Statement stmt = conn.createStatement ();
System.out.println ("Statement created..."
return stmt;
}
catch (SQLException e) {
System.err.println (e.getMessage () );
System.exit(2); //Driver failure
}
return null; // never happen
}
private static ResultSet openResultSet (Statement stmt, String query) {
try {
System.out.println ("Creating resultSet..."
ResultSet rs = stmt.executeQuery (query);
System.out.println ("Resultset created..."
return rs;
}
catch (SQLException e) {
System.err.println (e.getMessage () + e.toString() );
System.exit(3); //ResultSet error
}
return null; // never happen
}
private static void processResultSet (ServletOutputStream out, ResultSet rs) {
try {
DecimalFormat dollar = new DecimalFormat("0.00"
System.out.println ("\n\n+++++ Processing ResultSet +++++\n"
while (rs.next() ) {
out.println ("<Product>"
out.println ("<Title>" + rs.getString(1) + "</Title>"
out.println ("<Author>" + rs.getString(2) + "</Author>"
out.println ("<ISBN>" + rs.getString(3) + "</ISBN>"
out.println ("<Cost>" + rs.getString(4) + "<Cost>"
if (rs.getInt (5) > 0)
out.println ("<InStock>Yes</InStock>"
else
out.println ("<InStock>No</InStock>"
out.println ("</Product>"
}
System.out.println ("\n\n+++++ ResultSet Processed +++++\n"
}
catch (IOException e) {
System.err.println (e.getMessage ());
System.exit(4); //Output error
}
catch (SQLException e) {
System.err.println (e.getMessage () );
System.exit(5); //Processing error
}
}
private static void closeThingsDown (ResultSet rs, Statement stmt, Connection conn) {
try {
System.out.println ("Closing Things Down..."
rs.close();
System.out.println ("ResultSet Closed..."
stmt.close ();
System.out.println ("Statement closed..."
conn.close();
System.out.println ("Connection closed..."
}
catch (SQLException e) {
System.err.println (e.getMessage () );
System.exit(5); //Closure failure
}
}
public void doGet (HttpServletRequest request, HttpServletResponse response)
{
try {
loadJDBCDriver ();
Connection conn = getConnected ();
Statement stmt = makeStatement (conn);
response.setContentType ("text/xml"
ServletOutputStream out = response.getOutputStream();
out.println ("<?xml version=\"1.0\" standalone=\"yes\"?>" // xml header
out.println ("<?xml-stylesheet type=\"text/xsl\" href=\"/Book/ProductList.xsl\"?>" // xsl ss
out.println ("<ProductList>" // root element
// Prepare query based on uploaded user search criteria
String title = request.getParameter ("title"
String author = request.getParameter ("author"
String isbn = request.getParameter ("ISBN"
String query = "SELECT Title, Author, ISBN, QuantityOnHand FROM Products ";
ResultSet rs = openResultSet (stmt, query);
processResultSet (out, rs); // print results as xml
closeThingsDown (rs, stmt, conn); // close db stuff
out.println ("</ProductList>" // close root
}
catch (IOException e) {
System.err.println (e.getMessage () );
}
}
public void doPost (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet (request, response);
}
}
I don't understand what my problem is. Has anyone had this before? I could definately use your help.
The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
--------------------------------------------------------------------------------
The system cannot locate the object specified. Error processing resource 'My xml code is:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE ProductList [
<!ELEMENT ProductList (Product+)>
<!ELEMENT Product (Title, Author+, ISBN, Cost, InStock) >
<!ELEMENT Title (#PCDATA) >
<!ELEMENT Author (#PCDATA) >
<!ELEMENT ISBN (#PCDATA) >
<!ELEMENT Cost (#PCDATA)>
<!ELEMENT InStock (#PCDATA) >
<!ELEMENT OrderEntry (Product*)> ]>
<?xml-stylesheet type="text/xsl" href="ProductList.xsl" ?>
<ProductList>
<Product>
<Title></Title>
<Author></Author>
<ISBN></ISBN>
<Cost></Cost>
<InStock></InStock>
</Product>
</ProductList>
My servlet is:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.text.DecimalFormat;
public class ProductLookuptest extends HttpServlet {
private static void loadJDBCDriver () {
System.out.println ("Loading database driver..."
try {
DriverManager.registerDriver ( new sun.jdbc.odbc.JdbcOdbcDriver() );
System.out.println ("Database driver loaded..."
}
catch (SQLException e) {
System.err.println (e.getMessage () + e.toString() );
}
}
private static Connection getConnected () {
System.out.println ("getting connection..."
try {
String jdbc_url = "jdbcdbc:Book";
Connection conn = DriverManager.getConnection (jdbc_url);
System.out.println ("connection created ..."
return conn;
}
catch (SQLException e) {
System.err.println (e.getMessage () + e.toString() );
System.exit(1); //Driver failure
}
return null; // never happen
}
private static Statement makeStatement (Connection conn) {
try {
System.out.println ("Making a Statement..."
Statement stmt = conn.createStatement ();
System.out.println ("Statement created..."
return stmt;
}
catch (SQLException e) {
System.err.println (e.getMessage () );
System.exit(2); //Driver failure
}
return null; // never happen
}
private static ResultSet openResultSet (Statement stmt, String query) {
try {
System.out.println ("Creating resultSet..."
ResultSet rs = stmt.executeQuery (query);
System.out.println ("Resultset created..."
return rs;
}
catch (SQLException e) {
System.err.println (e.getMessage () + e.toString() );
System.exit(3); //ResultSet error
}
return null; // never happen
}
private static void processResultSet (ServletOutputStream out, ResultSet rs) {
try {
DecimalFormat dollar = new DecimalFormat("0.00"
System.out.println ("\n\n+++++ Processing ResultSet +++++\n"
while (rs.next() ) {
out.println ("<Product>"
out.println ("<Title>" + rs.getString(1) + "</Title>"
out.println ("<Author>" + rs.getString(2) + "</Author>"
out.println ("<ISBN>" + rs.getString(3) + "</ISBN>"
out.println ("<Cost>" + rs.getString(4) + "<Cost>"
if (rs.getInt (5) > 0)
out.println ("<InStock>Yes</InStock>"
else
out.println ("<InStock>No</InStock>"
out.println ("</Product>"
}
System.out.println ("\n\n+++++ ResultSet Processed +++++\n"
}
catch (IOException e) {
System.err.println (e.getMessage ());
System.exit(4); //Output error
}
catch (SQLException e) {
System.err.println (e.getMessage () );
System.exit(5); //Processing error
}
}
private static void closeThingsDown (ResultSet rs, Statement stmt, Connection conn) {
try {
System.out.println ("Closing Things Down..."
rs.close();
System.out.println ("ResultSet Closed..."
stmt.close ();
System.out.println ("Statement closed..."
conn.close();
System.out.println ("Connection closed..."
}
catch (SQLException e) {
System.err.println (e.getMessage () );
System.exit(5); //Closure failure
}
}
public void doGet (HttpServletRequest request, HttpServletResponse response)
{
try {
loadJDBCDriver ();
Connection conn = getConnected ();
Statement stmt = makeStatement (conn);
response.setContentType ("text/xml"
ServletOutputStream out = response.getOutputStream();
out.println ("<?xml version=\"1.0\" standalone=\"yes\"?>" // xml header
out.println ("<?xml-stylesheet type=\"text/xsl\" href=\"/Book/ProductList.xsl\"?>" // xsl ss
out.println ("<ProductList>" // root element
// Prepare query based on uploaded user search criteria
String title = request.getParameter ("title"
String author = request.getParameter ("author"
String isbn = request.getParameter ("ISBN"
String query = "SELECT Title, Author, ISBN, QuantityOnHand FROM Products ";
ResultSet rs = openResultSet (stmt, query);
processResultSet (out, rs); // print results as xml
closeThingsDown (rs, stmt, conn); // close db stuff
out.println ("</ProductList>" // close root
}
catch (IOException e) {
System.err.println (e.getMessage () );
}
}
public void doPost (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet (request, response);
}
}
I don't understand what my problem is. Has anyone had this before? I could definately use your help.