Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 17:51 Der er 65 kommentarer og
1 løsning

problemer med Webshop i JSP/Servlet

Jeg får følgende fejl når jeg prøvet at tilføje en bog

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
    test.ShoppingServlet.doPost(ShoppingServlet.java:50)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.


Jeg har følgende klasser og jsp dokumenter. Fatter ikke hvad problemet kan være

ShoppingServlet

package test;

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



public class ShoppingServlet extends HttpServlet {
  public void init(ServletConfig conf) throws ServletException  {
    super.init(conf);
  }
 
 
public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    HttpSession session = request.getSession(false);
   
if (session == null) {
      response.sendRedirect("http://localhost:8080/minApp/error.html");
    }
   
   
Vector buylist = (Vector)session.getValue("shopping.shoppingcart");
    String action = request.getParameter("action");
   
if (!action.equals("CHECKOUT")) {
if (action.equals("DELETE")) {
       
    String del = request.getParameter("delindex");
      int d = (new Integer(del)).intValue();
      buylist.removeElementAt(d);
     
} else if (action.equals("ADD")) {
        //any previous buys of same cd?
        boolean match=false;
       
        Book aBook = getBook(request);
        if (buylist==null) {
          //add first cd to the cart
          buylist = new Vector(); //first order
          buylist.addElement(aBook);
        } else { // not first buy
          for (int i=0; i< buylist.size(); i++) {
            Book book = (Book) buylist.elementAt(i);
            if (book.getIsbn().equals(aBook.getIsbn())) {
              book.setAntal(book.getAntal()+aBook.getAntal());
              buylist.setElementAt(book,i);
              match = true;
            } //end of if name matches
          } // end of for
          if (!match)
            buylist.addElement(aBook);
        }
      }
      session.putValue("shopping.shoppingcart", buylist);
      String url="/jsp/shopping/showBookSpec.jsp";
      ServletContext sc = getServletContext();
      RequestDispatcher rd = sc.getRequestDispatcher(url);
      rd.forward(request, response);
     
    } else if (action.equals("CHECKOUT"))  {
      float total =0;
      for (int i=0; i< buylist.size();i++) {
        Book anOrder = (Book) buylist.elementAt(i);
        float pris= anOrder.getPris();
        int antal = anOrder.getAntal();
        total += (pris * antal);
      }
      total += 0.005;
      String amount = new Float(total).toString();
      int n = amount.indexOf('.');
      amount = amount.substring(0,n+3);
      request.setAttribute("amount",amount);
      String url="/jsp/shopping/Checkout.jsp";
      ServletContext sc = getServletContext();
      RequestDispatcher rd = sc.getRequestDispatcher(url);
      rd.forward(request,response);
    }
  }

private Book getBook(HttpServletRequest request) {

try {   

dbConnect dbc = new dbConnect();
Connection con = dbc.getConnection();
Statement stmt = con.createStatement();


    String myBook = request.getParameter("isbn");
    String antal = request.getParameter("antal");

ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, pris FROM boeger WHERE isbn = '" + myBook + "'");

    Book book = new Book();
    book.setForfatter(rs.getString(2));
    book.setTitel(rs.getString(3));
    book.setIsbn(rs.getString(1));
    book.setPris((new Float(rs.getFloat(4))).floatValue());
    book.setAntal((new Integer(antal)).intValue());
 
    return book;     

} catch (Exception e) {
     
    return null;
 
  }
 

 
    }

}


Beanen Book, medlem af samme package

package test;

public class Book {
   
String forfatter;
String titel;
String isbn;
float pris;
int antal;


public Book() {
   
    forfatter="";
    titel="";
    isbn="";
    pris=0;
    antal=0;
 
  }
 
  public void setForfatter(String forfatter) {
    this.forfatter = forfatter;
  }
  public String getForfatter() {
    return forfatter;
  }
  public void setTitel(String titel) {
    this.titel = titel;
  }
  public String getTitel() {
    return titel;
  }
  public void setIsbn(String isbn) {
    this.isbn = isbn;
  }
  public String getIsbn() {
    return isbn;
  }
  public void setPris(float pris) {
    this.pris = pris;
  }
  public float getPris() {
    return pris;
  }
  public void setAntal(int antal) {
    this.antal = antal;
  }
  public int getAntal() {
    return antal;
  }
}


XML dokumentet til selve Tomcat for at den kan finde de forskellige servlets

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

<servlet>
    <servlet-name>ShoppingServlet</servlet-name>
    <servlet-class>test.ShoppingServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>ShoppingServlet</servlet-name>
    <url-pattern>/ShoppingServlet</url-pattern>
</servlet-mapping>

</web-app>

Min showBookSpec.jsp der får en bog fra nogle andre servlets Denne virke, men kan godt være den poster forkert data til ShoppingServletten. Alle JSP sider ligger i tomcattes webapps bibliotek under minApp/jsp/shopping mens servletsne og beanerne ligger under minApp/WEB-INF/classes/test

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page session="true" %>
<html>
<head>
    <title>Genre Liste</title>
</head>

<body>

<jsp:useBean id="showBook" scope="request" class="java.util.ArrayList"/>
<jsp:useBean id="search" scope="request" class="java.lang.String"/>
<jsp:useBean id="searchnone" scope="request" class="java.lang.String"/>

<%
if(search.equals("done")) {
%>
<%
if(showBook.size()==0) {
%>
Bogen blev ikke fundet
<%
}
for(int i = 0; i < showBook.size(); i++) {
  test.bog bog = (test.bog)showBook.get(i);
%>
<br/>
<table cellspacing="2" cellpadding="2" border="0">
<tr>
    <td>Forfatter:</td>
    <td><%=bog.getForfatter()%></td>
</tr>
<tr>
    <td>Titel:</td>
    <td><%=bog.getTitel()%></td>
</tr>
<tr>
    <td>Genre:</td>
    <td><%=bog.getGenre()%></td>
</tr>
<tr>
    <td>Forlag:</td>
    <td><%=bog.getForlag()%></td>
</tr>
<tr>
    <td>Beskrivelse:</td>
    <td><%=bog.getBeskrivelse()%></td>
</tr>
<tr>
    <td>ISBN</td>
    <td><%=bog.getIsbn()%></td>
</tr>
</table>
<br/>
Valgt Bog
<br/>
<br/>
<form name="shoppingForm" action="ShoppingServlet" method="POST">
<select name=book>
  <option><%=bog.getIsbn()%></option>
</select>
<br/>
<br/>
Valgt Antal
<br/>
<input type="text" name="antal" SIZE="3" value=1>
<input type="hidden" name="action" value="ADD">
<input type="submit" name="Submit" value="Tilføj">
</form>
<%
}
}
%>

<%if(searchnone.equals("none")) {
%>
Den valgte søgekreterier er ikke mulig!
<%
}
%>

<jsp:include page="/jsp/shopping/Cart.jsp" flush="true" />

</body>
</html>

Der ud over har jeg cart.jsp


<%@ page session="true" import="java.util.*, test.Book" %>
<%
Vector buylist = (Vector) session.getValue("test.shoppingcart");
if (buylist != null && (buylist.size() > 0)) {
%>
<center>
<table border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">
<tr>
<td><b>Tittel</b></td>
<td><b>Forfatter</b></td>
<td><b>Isbn</b></td>
<td><b>Pris</b></td>
<td><b>Antal</b></td>

<td></td>
</tr>
<%
  for (int index=0; index < buylist.size();index++) {
  Book anOrder = (Book) buylist.elementAt(index);
%>
<tr>
  <td><b><%= anOrder.getForfatter %></b></td>
  <td><b><%= anOrder.getTitel() %></b></td>
  <td><b><%= anOrder.getIsbn() %></b></td>
  <td><b><%= anOrder.getPris() %></b></td>
  <td><b><%= anOrder.getAntal() %></b></td>
  <td>

  <form name="deleteForm" action="ShoppingServlet" method="POST">
  <input type="submit" value="Delete">
  <input type="hidden" name= "delindex" value='<%= index %>'>
  <input type="hidden" name="action" value="Slet">
  </form>
      </td>
    </tr>
    <% } %>
  </table>
  <p>
  <form name="checkoutForm" action="ShoppingServlet" method="POST">
    <input type="hidden" name="action" value="CHECKOUT">
    <input type="submit" name="Checkout" value="Til kassen">
  </form>
  </center>
<% } %>


Samt CheckOut.jsp


<%@ page session="true" import="java.util.*, shopping.Book" %>
<html>
<head>
<title></title>
</head>
<body bgcolor="#33CCFF">


<center>
<table border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">
<tr>
<td><b>Forfatter</b></td>
<td><b>Titel</b></td>
<td><b>Isbn</b></td>
<td><b>Pris</b></td>
<td><b>Antal</b></td>
<td></td>
</tr>
<%
  Vector buylist = (Vector) session.getValue("shopping.shoppingcart");
  String amount = (String) request.getAttribute("amount");
  for (int i=0; i < buylist.size();i++) {
  Book anOrder = (Book) buylist.elementAt(i);
%>
<tr>
<td><b><%= anOrder.getForfatter() %></b></td>
<td><b><%= anOrder.getTitel() %></b></td>
<td><b><%= anOrder.getIsbn() %></b></td>
<td><b><%= anOrder.getPris() %></b></td>
<td><b><%= anOrder.getAntal() %></b></td>
</tr>
<%
  }
  session.invalidate();
%>
<tr>
<td>    </td>
<td>    </td>
<td><b>TOTAL</b></td>
<td><b>$<%= amount %></b></td>
<td>    </td>
</tr>
</table>
<p>
<a href="/jsp/shopping/showBookSpec.jsp">Køb mere</a>
</center>
</body>
</html>


Hvis der ønskes mere kode for hvordan showBookSpec får en bog kan dette mailes
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:00 #1
Der er en fejl i servletten der skulle rettes. Dette var String myBook = request.getParameter("isbn"); ændres til String myBook = request.getParameter("book");

Hjalp dog ikke noget
Avatar billede arne_v Ekspert
24. november 2004 - 18:23 #2
Samme fejl ?

Og hvad er linie 50 ?
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:25 #3
2 sek

Det er linie 50 - 58 i ShoppingServlet

      if (book.getIsbn().equals(aBook.getIsbn())) {
              book.setAntal(book.getAntal()+aBook.getAntal());
              buylist.setElementAt(book,i);
              match = true;
            } //end of if name matches
          } // end of for
          if (!match)
            buylist.addElement(aBook);
        }
Avatar billede arne_v Ekspert
24. november 2004 - 18:26 #4
Det må betyde at enten book eller aBook er null
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:26 #5
ja sammme fejl
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:28 #6
ja men det burde den bare ikk være
Avatar billede arne_v Ekspert
24. november 2004 - 18:28 #7
Jeg tror at det er aBook som er null fordi getBook returnerer null fordi
SELECT statement ikke finder noget.
Avatar billede arne_v Ekspert
24. november 2004 - 18:29 #8
Prøv at erstat:

} catch (Exception e) {
   
    return null;

  }

med:

} catch (Exception e) {
    System.err.println(e); 
    return null;

  }

og se om der udskrives en fejl i Tomcat console
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:30 #9
ja tror jeg også men hvorfor gør den ikke det

HEr er koden

private Book getBook(HttpServletRequest request) {

try {   

dbConnect dbc = new dbConnect();
Connection con = dbc.getConnection();
Statement stmt = con.createStatement();


    String myBook = request.getParameter("book");
    String antal = request.getParameter("antal");

ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, pris FROM boeger WHERE isbn = '" + myBook + "'");

    Book book = new Book();
    book.setForfatter(rs.getString(2));
    book.setTitel(rs.getString(3));
    book.setIsbn(rs.getString(1));
    book.setPris((new Float(rs.getFloat(4))).floatValue());
    book.setAntal((new Integer(antal)).intValue());
 
    return book;     

} catch (Exception e) {
     
    return null;
 
  }
 

 
    }

}
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:30 #10
HVordan kan jeg teste om den finnder noget
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:33 #11
den parameter jeg sender fra den optionen select jeg har i showBookSpec er jo isbn nummeret som sendes, men jeg kan vel godt få fat i det med String myBook = request.getParameter("book");
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:34 #12
Hvis jeg indsætter følgende i PhpMyaADmin og testes select statementet SELECT isbn, forfatter, titel, pris FROM boeger WHERE isbn = 45456 Virker det fint
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:37 #13
Jeg er tilbage om ca 1 time, men hvis du gider at kigge lidt på det eller måske finde nogle fejl har rette noget i JSP dokumenterne men det var intet af betydning. Håber du kan hjælpe for at ligge sidste hånd på værket
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:38 #14
Sender lige den opdaterede kode til din danBbs mail
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:54 #15
2004-11-24 18:53:36 org.apache.jasper.compiler.Compiler generateClass
SEVERE: Javac exception
Compile failed; see the compiler error output for details.
        at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:944)
        at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764)
        at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:510)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at org.apache.jsp.jsp.shopping.showBookSpec_jsp._jspService(showBookSpec_jsp.java:169)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
        at test.showBook.doGet(showBook.java:72)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:595)
2004-11-24 18:53:36 org.apache.jasper.compiler.Compiler generateClass
SEVERE: Env: Compile: javaFileName=/C:/www/Tomcat5/work/Catalina/localhost/minApp//org/apache/jsp/jsp/shopping\Cart_jsp.java
    classpath=/C:/www/Tomcat5/webapps/minApp/WEB-INF/classes/;/C:/www/Tomcat5/webapps/minApp/WEB-INF/lib/mysql-connector-java-3.0.15-ga-bin.jar;C:\www\Tomcat5\work\Catalina\localhost\minApp;/C:/www/Tomcat5/webapps/minApp/WEB-INF/classes/;/C:/www/Tomcat5/webapps/minApp/WEB-INF/lib/mysql-connector-java-3.0.15-ga-bin.jar;C:/www/Tomcat5/shared/classes/;C:/www/Tomcat5/shared/lib/mysql-connector-java-3.
0.15-ga-bin.jar;C:/www/Tomcat5/common/classes/;C:/www/Tomcat5/common/lib/ant-launcher.jar;C:/www/Tomcat5/common/lib/ant.jar;C:/www/Tomcat5/common/lib/commons-collections-3.1.jar;C:/www/Tomcat5/common/lib/commons-dbcp-1.2.1.jar;C:/www/Tomcat5/common/lib/commons-el.jar;C:/www/Tomcat5/common/lib/commons-pool-1.2.jar;C:/www/Tomcat5/common/lib/jasper-compiler.jar;C:/www/Tomcat5/common/lib/jasper-runtim
e.jar;C:/www/Tomcat5/common/lib/jsp-api.jar;C:/www/Tomcat5/common/lib/naming-common.jar;C:/www/Tomcat5/common/lib/naming-factory.jar;C:/www/Tomcat5/common/lib/naming-java.jar;C:/www/Tomcat5/common/lib/naming-resources.jar;C:/www/Tomcat5/common/lib/servlet-api.jar;C:/www/Tomcat5/common/lib/tools.jar;/C:/jdk1.5.0/lib/tools.jar;/C:/www/Tomcat5/bin/bootstrap.jar;/C:/jdk1.5.0/jre/lib/ext/dnsns.jar;/C:/
jdk1.5.0/jre/lib/ext/localedata.jar;/C:/jdk1.5.0/jre/lib/ext/mysql-connector-java-3.0.15-ga-bin.jar;/C:/jdk1.5.0/jre/lib/ext/sunjce_provider.jar;/C:/jdk1.5.0/jre/lib/ext/sunpkcs11.jar
    cp=C:\jdk1.5.0\lib\tools.jar;C:\www\Tomcat5\bin\bootstrap.jar
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\classes
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\lib\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\www\Tomcat5\work\Catalina\localhost\minApp
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\classes
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\lib\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\www\Tomcat5\shared\classes
    cp=C:\www\Tomcat5\shared\lib\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\www\Tomcat5\common\classes
    cp=C:\www\Tomcat5\common\lib\ant-launcher.jar
    cp=C:\www\Tomcat5\common\lib\ant.jar
    cp=C:\www\Tomcat5\common\lib\commons-collections-3.1.jar
    cp=C:\www\Tomcat5\common\lib\commons-dbcp-1.2.1.jar
    cp=C:\www\Tomcat5\common\lib\commons-el.jar
    cp=C:\www\Tomcat5\common\lib\commons-pool-1.2.jar
    cp=C:\www\Tomcat5\common\lib\jasper-compiler.jar
    cp=C:\www\Tomcat5\common\lib\jasper-runtime.jar
    cp=C:\www\Tomcat5\common\lib\jsp-api.jar
    cp=C:\www\Tomcat5\common\lib\naming-common.jar
    cp=C:\www\Tomcat5\common\lib\naming-factory.jar
    cp=C:\www\Tomcat5\common\lib\naming-java.jar
    cp=C:\www\Tomcat5\common\lib\naming-resources.jar
    cp=C:\www\Tomcat5\common\lib\servlet-api.jar
    cp=C:\www\Tomcat5\common\lib\tools.jar
    cp=C:\jdk1.5.0\lib\tools.jar
    cp=C:\www\Tomcat5\bin\bootstrap.jar
    cp=C:\jdk1.5.0\jre\lib\ext\dnsns.jar
    cp=C:\jdk1.5.0\jre\lib\ext\localedata.jar
    cp=C:\jdk1.5.0\jre\lib\ext\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\jdk1.5.0\jre\lib\ext\sunjce_provider.jar
    cp=C:\jdk1.5.0\jre\lib\ext\sunpkcs11.jar
    work dir=C:\www\Tomcat5\work\Catalina\localhost\minApp
    extension dir=C:\jdk1.5.0\jre\lib\ext
    srcDir=C:\www\Tomcat5\work\Catalina\localhost\minApp
    include=org/apache/jsp/jsp/shopping/Cart_jsp.java

2004-11-24 18:53:36 org.apache.jasper.compiler.Compiler generateClass
SEVERE: Error compiling file: /C:/www/Tomcat5/work/Catalina/localhost/minApp//org/apache/jsp/jsp/shopping\Cart_jsp.java    [javac] Compiling 1 source file

C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java:7: package shopping does not exist
import shopping.Book;
                ^
C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java:65: cannot find symbol
symbol  : class Book
location: class org.apache.jsp.jsp.shopping.Cart_jsp
  Book anOrder = (Book) buylist.elementAt(index);
  ^
C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java:65: cannot find symbol
symbol  : class Book
location: class org.apache.jsp.jsp.shopping.Cart_jsp
  Book anOrder = (Book) buylist.elementAt(index);
                  ^
Note: C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
3 errors

2004-11-24 18:53:37 org.apache.jasper.compiler.Compiler generateClass
SEVERE: Javac exception
Compile failed; see the compiler error output for details.
        at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:944)
        at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764)
        at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:510)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at org.apache.jsp.jsp.shopping.showBookSpec_jsp._jspService(showBookSpec_jsp.java:169)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
        at test.showBook.doGet(showBook.java:72)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:595)
2004-11-24 18:53:37 org.apache.jasper.compiler.Compiler generateClass
SEVERE: Env: Compile: javaFileName=/C:/www/Tomcat5/work/Catalina/localhost/minApp//org/apache/jsp/jsp/shopping\Cart_jsp.java
    classpath=/C:/www/Tomcat5/webapps/minApp/WEB-INF/classes/;/C:/www/Tomcat5/webapps/minApp/WEB-INF/lib/mysql-connector-java-3.0.15-ga-bin.jar;C:\www\Tomcat5\work\Catalina\localhost\minApp;/C:/www/Tomcat5/webapps/minApp/WEB-INF/classes/;/C:/www/Tomcat5/webapps/minApp/WEB-INF/lib/mysql-connector-java-3.0.15-ga-bin.jar;C:/www/Tomcat5/shared/classes/;C:/www/Tomcat5/shared/lib/mysql-connector-java-3.
0.15-ga-bin.jar;C:/www/Tomcat5/common/classes/;C:/www/Tomcat5/common/lib/ant-launcher.jar;C:/www/Tomcat5/common/lib/ant.jar;C:/www/Tomcat5/common/lib/commons-collections-3.1.jar;C:/www/Tomcat5/common/lib/commons-dbcp-1.2.1.jar;C:/www/Tomcat5/common/lib/commons-el.jar;C:/www/Tomcat5/common/lib/commons-pool-1.2.jar;C:/www/Tomcat5/common/lib/jasper-compiler.jar;C:/www/Tomcat5/common/lib/jasper-runtim
e.jar;C:/www/Tomcat5/common/lib/jsp-api.jar;C:/www/Tomcat5/common/lib/naming-common.jar;C:/www/Tomcat5/common/lib/naming-factory.jar;C:/www/Tomcat5/common/lib/naming-java.jar;C:/www/Tomcat5/common/lib/naming-resources.jar;C:/www/Tomcat5/common/lib/servlet-api.jar;C:/www/Tomcat5/common/lib/tools.jar;/C:/jdk1.5.0/lib/tools.jar;/C:/www/Tomcat5/bin/bootstrap.jar;/C:/jdk1.5.0/jre/lib/ext/dnsns.jar;/C:/
jdk1.5.0/jre/lib/ext/localedata.jar;/C:/jdk1.5.0/jre/lib/ext/mysql-connector-java-3.0.15-ga-bin.jar;/C:/jdk1.5.0/jre/lib/ext/sunjce_provider.jar;/C:/jdk1.5.0/jre/lib/ext/sunpkcs11.jar
    cp=C:\jdk1.5.0\lib\tools.jar;C:\www\Tomcat5\bin\bootstrap.jar
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\classes
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\lib\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\www\Tomcat5\work\Catalina\localhost\minApp
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\classes
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\lib\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\www\Tomcat5\shared\classes
    cp=C:\www\Tomcat5\shared\lib\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\www\Tomcat5\common\classes
    cp=C:\www\Tomcat5\common\lib\ant-launcher.jar
    cp=C:\www\Tomcat5\common\lib\ant.jar
    cp=C:\www\Tomcat5\common\lib\commons-collections-3.1.jar
    cp=C:\www\Tomcat5\common\lib\commons-dbcp-1.2.1.jar
    cp=C:\www\Tomcat5\common\lib\commons-el.jar
    cp=C:\www\Tomcat5\common\lib\commons-pool-1.2.jar
    cp=C:\www\Tomcat5\common\lib\jasper-compiler.jar
    cp=C:\www\Tomcat5\common\lib\jasper-runtime.jar
    cp=C:\www\Tomcat5\common\lib\jsp-api.jar
    cp=C:\www\Tomcat5\common\lib\naming-common.jar
    cp=C:\www\Tomcat5\common\lib\naming-factory.jar
    cp=C:\www\Tomcat5\common\lib\naming-java.jar
    cp=C:\www\Tomcat5\common\lib\naming-resources.jar
    cp=C:\www\Tomcat5\common\lib\servlet-api.jar
    cp=C:\www\Tomcat5\common\lib\tools.jar
    cp=C:\jdk1.5.0\lib\tools.jar
    cp=C:\www\Tomcat5\bin\bootstrap.jar
    cp=C:\jdk1.5.0\jre\lib\ext\dnsns.jar
    cp=C:\jdk1.5.0\jre\lib\ext\localedata.jar
    cp=C:\jdk1.5.0\jre\lib\ext\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\jdk1.5.0\jre\lib\ext\sunjce_provider.jar
    cp=C:\jdk1.5.0\jre\lib\ext\sunpkcs11.jar
    work dir=C:\www\Tomcat5\work\Catalina\localhost\minApp
    extension dir=C:\jdk1.5.0\jre\lib\ext
    srcDir=C:\www\Tomcat5\work\Catalina\localhost\minApp
    include=org/apache/jsp/jsp/shopping/Cart_jsp.java

2004-11-24 18:53:37 org.apache.jasper.compiler.Compiler generateClass
SEVERE: Error compiling file: /C:/www/Tomcat5/work/Catalina/localhost/minApp//org/apache/jsp/jsp/shopping\Cart_jsp.java    [javac] Compiling 1 source file

C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java:7: package shopping does not exist
import shopping.Book;
                ^
C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java:65: cannot find symbol
symbol  : class Book
location: class org.apache.jsp.jsp.shopping.Cart_jsp
  Book anOrder = (Book) buylist.elementAt(index);
  ^
C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java:65: cannot find symbol
symbol  : class Book
location: class org.apache.jsp.jsp.shopping.Cart_jsp
  Book anOrder = (Book) buylist.elementAt(index);
                  ^
Note: C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
3 errors

java.sql.SQLException: Before start of result set
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:55 #16
Disse fejl komemr når jeg tilføjer den nye kode

2004-11-24 18:53:37 org.apache.jasper.compiler.Compiler generateClass
SEVERE: Error compiling file: /C:/www/Tomcat5/work/Catalina/localhost/minApp//org/apache/jsp/jsp/shopping\Cart_jsp.java    [javac] Compiling 1 source file

C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java:7: package shopping does not exist
import shopping.Book;
                ^
C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java:65: cannot find symbol
symbol  : class Book
location: class org.apache.jsp.jsp.shopping.Cart_jsp
  Book anOrder = (Book) buylist.elementAt(index);
  ^
C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java:65: cannot find symbol
symbol  : class Book
location: class org.apache.jsp.jsp.shopping.Cart_jsp
  Book anOrder = (Book) buylist.elementAt(index);
                  ^
Note: C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
3 errors

java.sql.SQLException: Before start of result set
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 18:57 #17
Kigger også selv men du må meget gerne se på fejlmeddelelsen
Avatar billede arne_v Ekspert
24. november 2004 - 19:37 #18
Der er jo en compile fejl og ikke en runtime fejl.

Den kan ikke finde shopping pakken.

Du skal nok starte med at stoppe Tomcat, redeploye class filer (beans og servlets)
og så starte serveren igen
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 19:48 #19
ja det fandt jeg ud af finder lige ud af det om det virker vender straks tilbage om 10 min ok
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 19:59 #20
NU får jeg kun denne fejl i Tomcat Consollen


2004-11-24 19:54:39 org.apache.jasper.compiler.Compiler generateClass
SEVERE: Javac exception
Compile failed; see the compiler error output for details.
        at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:944)
        at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764)
        at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:510)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at org.apache.jsp.jsp.shopping.showBookSpec_jsp._jspService(showBookSpec_jsp.java:169)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
        at test.showBook.doGet(showBook.java:72)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:595)
2004-11-24 19:54:39 org.apache.jasper.compiler.Compiler generateClass
SEVERE: Env: Compile: javaFileName=/C:/www/Tomcat5/work/Catalina/localhost/minApp//org/apache/jsp/jsp/shopping\Cart_jsp.java
    classpath=/C:/www/Tomcat5/webapps/minApp/WEB-INF/classes/;/C:/www/Tomcat5/webapps/minApp/WEB-INF/lib/mysql-connector-java-3.0.15-ga-bin.jar;C:\www\Tomcat5\work\Catalina\localhost\minApp;/C:/www/Tomcat5/webapps/minApp/WEB-INF/classes/;/C:/www/Tomcat5/webapps/minApp/WEB-INF/lib/mysql-connector-java-3.0.15-ga-bin.jar;C:/www/Tomcat5/shared/classes/;C:/www/Tomcat5/shared/lib/mysql-connector-java-3.
0.15-ga-bin.jar;C:/www/Tomcat5/common/classes/;C:/www/Tomcat5/common/lib/ant-launcher.jar;C:/www/Tomcat5/common/lib/ant.jar;C:/www/Tomcat5/common/lib/commons-collections-3.1.jar;C:/www/Tomcat5/common/lib/commons-dbcp-1.2.1.jar;C:/www/Tomcat5/common/lib/commons-el.jar;C:/www/Tomcat5/common/lib/commons-pool-1.2.jar;C:/www/Tomcat5/common/lib/jasper-compiler.jar;C:/www/Tomcat5/common/lib/jasper-runtim
e.jar;C:/www/Tomcat5/common/lib/jsp-api.jar;C:/www/Tomcat5/common/lib/naming-common.jar;C:/www/Tomcat5/common/lib/naming-factory.jar;C:/www/Tomcat5/common/lib/naming-java.jar;C:/www/Tomcat5/common/lib/naming-resources.jar;C:/www/Tomcat5/common/lib/servlet-api.jar;C:/www/Tomcat5/common/lib/tools.jar;/C:/jdk1.5.0/lib/tools.jar;/C:/www/Tomcat5/bin/bootstrap.jar;/C:/jdk1.5.0/jre/lib/ext/dnsns.jar;/C:/
jdk1.5.0/jre/lib/ext/localedata.jar;/C:/jdk1.5.0/jre/lib/ext/mysql-connector-java-3.0.15-ga-bin.jar;/C:/jdk1.5.0/jre/lib/ext/sunjce_provider.jar;/C:/jdk1.5.0/jre/lib/ext/sunpkcs11.jar
    cp=C:\jdk1.5.0\lib\tools.jar;C:\www\Tomcat5\bin\bootstrap.jar
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\classes
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\lib\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\www\Tomcat5\work\Catalina\localhost\minApp
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\classes
    cp=C:\www\Tomcat5\webapps\minApp\WEB-INF\lib\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\www\Tomcat5\shared\classes
    cp=C:\www\Tomcat5\shared\lib\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\www\Tomcat5\common\classes
    cp=C:\www\Tomcat5\common\lib\ant-launcher.jar
    cp=C:\www\Tomcat5\common\lib\ant.jar
    cp=C:\www\Tomcat5\common\lib\commons-collections-3.1.jar
    cp=C:\www\Tomcat5\common\lib\commons-dbcp-1.2.1.jar
    cp=C:\www\Tomcat5\common\lib\commons-el.jar
    cp=C:\www\Tomcat5\common\lib\commons-pool-1.2.jar
    cp=C:\www\Tomcat5\common\lib\jasper-compiler.jar
    cp=C:\www\Tomcat5\common\lib\jasper-runtime.jar
    cp=C:\www\Tomcat5\common\lib\jsp-api.jar
    cp=C:\www\Tomcat5\common\lib\naming-common.jar
    cp=C:\www\Tomcat5\common\lib\naming-factory.jar
    cp=C:\www\Tomcat5\common\lib\naming-java.jar
    cp=C:\www\Tomcat5\common\lib\naming-resources.jar
    cp=C:\www\Tomcat5\common\lib\servlet-api.jar
    cp=C:\www\Tomcat5\common\lib\tools.jar
    cp=C:\jdk1.5.0\lib\tools.jar
    cp=C:\www\Tomcat5\bin\bootstrap.jar
    cp=C:\jdk1.5.0\jre\lib\ext\dnsns.jar
    cp=C:\jdk1.5.0\jre\lib\ext\localedata.jar
    cp=C:\jdk1.5.0\jre\lib\ext\mysql-connector-java-3.0.15-ga-bin.jar
    cp=C:\jdk1.5.0\jre\lib\ext\sunjce_provider.jar
    cp=C:\jdk1.5.0\jre\lib\ext\sunpkcs11.jar
    work dir=C:\www\Tomcat5\work\Catalina\localhost\minApp
    extension dir=C:\jdk1.5.0\jre\lib\ext
    srcDir=C:\www\Tomcat5\work\Catalina\localhost\minApp
    include=org/apache/jsp/jsp/shopping/Cart_jsp.java

2004-11-24 19:54:39 org.apache.jasper.compiler.Compiler generateClass
SEVERE: Error compiling file: /C:/www/Tomcat5/work/Catalina/localhost/minApp//org/apache/jsp/jsp/shopping\Cart_jsp.java    [javac] Compiling 1 source file

C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java:70: cannot find symbol
symbol  : variable getForfatter
location: class test.Book
      out.print( anOrder.getForfatter );
                        ^
Note: C:\www\Tomcat5\work\Catalina\localhost\minApp\org\apache\jsp\jsp\shopping\Cart_jsp.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
Avatar billede arne_v Ekspert
24. november 2004 - 20:01 #21
<td><b><%= anOrder.getForfatter %></b></td>

skal nok være

<td><b><%= anOrder.getForfatter() %></b></td>
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:08 #22
ok nu får jeg kun følgende fejl

java.sql.SQLException: Before start of result set
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:09 #23
Samt denne når jeg trykker på køb

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
    ShoppingServlet.doPost(ShoppingServlet.java:50)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
Apache Tomcat/5.0.28

Dette er iborwser vinduet, det andet er i konsollen
Avatar billede arne_v Ekspert
24. november 2004 - 20:09 #24
Den fejl betyder at du har glemt at kalde next() på result settet !
Avatar billede arne_v Ekspert
24. november 2004 - 20:10 #25
ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, pris FROM boeger WHERE isbn = '" + myBook + "'");
rs.next(); // <-----------------------------
    Book book = new Book();
    book.setForfatter(rs.getString(2));
    book.setTitel(rs.getString(3));
    book.setIsbn(rs.getString(1));
    book.setPris((new Float(rs.getFloat(4))).floatValue());
    book.setAntal((new Integer(antal)).intValue());
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:11 #26
ahh prøver lige
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:15 #27
ok nu kommer den ikke med fejlen i konsollen, men du siger den stadigvæk
----------------------------------------------------------------------------
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
    ShoppingServlet.doPost(ShoppingServlet.java:50)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
Apache Tomcat/5.0.28
--------------------------------------------------------------
Er der noget kode du vil have for at kunne finde fejlen
Avatar billede arne_v Ekspert
24. november 2004 - 20:18 #28
Lad os få lidt mere debug ud:

   
} else if (action.equals("ADD")) {
        //any previous buys of same cd?
        boolean match=false;
     
        Book aBook = getBook(request);
System.err.println("aBook=" + Book);
        if (buylist==null) {
          //add first cd to the cart
          buylist = new Vector(); //first order
          buylist.addElement(aBook);
        } else { // not first buy
          for (int i=0; i< buylist.size(); i++) {
            Book book = (Book) buylist.elementAt(i);
System.err.println("book=" + book);
            if (book.getIsbn().equals(aBook.getIsbn())) {
              book.setAntal(book.getAntal()+aBook.getAntal());
              buylist.setElementAt(book,i);
              match = true;
            } //end of if name matches
          } // end of for
          if (!match)
            buylist.addElement(aBook);
        }
      }
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:21 #29
Ok er ikke helt med desværre
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:23 #30
ok er med sætter det lige ind
Avatar billede arne_v Ekspert
24. november 2004 - 20:23 #31
Sæt de 2 System.err.println ind og se output !
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:27 #32
ja skulle lige ændre koden til System.err.println("aBook=" + aBook); istedet for
System.err.println("aBook=" + Book);
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:28 #33
ok jeg får følgende i konsollen

aBook=test.Book@cffc79
book=test.Book@cffc79

Det er vel adressen på den bog der bliver oprettet
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:29 #34
I memmory
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:29 #35
Dette i Tomcat

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
    ShoppingServlet.doPost(ShoppingServlet.java:52)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
Avatar billede arne_v Ekspert
24. november 2004 - 20:33 #36
OK, så er hverken book eller aBook null.

} else if (action.equals("ADD")) {
        //any previous buys of same cd?
        boolean match=false;
   
        Book aBook = getBook(request);
System.err.println("aBook=" + aBook);
        if (buylist==null) {
          //add first cd to the cart
          buylist = new Vector(); //first order
          buylist.addElement(aBook);
        } else { // not first buy
          for (int i=0; i< buylist.size(); i++) {
            Book book = (Book) buylist.elementAt(i);
System.err.println("book=" + book);
System.err.println("book isbn=" + book.getIsbn());
System.err.println("aBook isbn=" + aBook.getIsbn());
            if (book.getIsbn().equals(aBook.getIsbn())) {
              book.setAntal(book.getAntal()+aBook.getAntal());
              buylist.setElementAt(book,i);
              match = true;
            } //end of if name matches
          } // end of for
          if (!match)
            buylist.addElement(aBook);
        }
      }
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:37 #37
Nu skriver den

aBook=test.Book@15e293a
aBookAntal=1
book=null

Jeg tilføjede lige System.err.println("aBookAntal=" + aBook.getAntal());
efter den første System.err.println for at se om den kunne finde antallet på den købte bog
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:41 #38
Fatter ikke den siger at book=null når man lige har kunne finde getAntal()
Avatar billede arne_v Ekspert
24. november 2004 - 20:44 #39
Post lige koden som den ser ud nu
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:45 #40
Har lige kørt Følgende
-------------------------------------------------------------------------
} else if (action.equals("ADD")) {
        //any previous buys of same cd?
        boolean match=false;
 
        Book aBook = getBook(request);
System.err.println("aBook=" + aBook);
System.err.println("aBookAntal=" + aBook.getAntal());
System.err.println("aBookAntal=" + aBook.getForfatter());
System.err.println("aBookAntal=" + aBook.getTitel());
System.err.println("aBookAntal=" + aBook.getIsbn());
System.err.println("aBookAntal=" + aBook.getPris());
        if (buylist==null) {
          //add first cd to the cart
          buylist = new Vector(); //first order
          buylist.addElement(aBook);
        } else { // not first buy
          for (int i=0; i< buylist.size(); i++) {
            Book book = (Book) buylist.elementAt(i);
System.err.println("book=" + book);
System.err.println("book isbn=" + book.getIsbn());
System.err.println("aBook isbn=" + aBook.getIsbn());
            if (book.getIsbn().equals(aBook.getIsbn())) {
              book.setAntal(book.getAntal()+aBook.getAntal());
              buylist.setElementAt(book,i);
              match = true;
            } //end of if name matches
          } // end of for
          if (!match)
            buylist.addElement(aBook);
        }
      }
----------------------------------------------------------------
og den giver følgende i konsollen

aBook=test.Book@15e293a
aBookAntal=1
aBookAntal=kurt
aBookAntal=fede luder
aBookAntal=46456
aBookAntal=343.0
book=null

Total wierd den siger den er null
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:45 #41
ok du får lige hele servletten

--------------------------------------------------------------------------------


import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import test.dbConnect;
import java.net.*;
import java.sql.*;
import test.Book;
import java.util.ArrayList;



public class ShoppingServlet extends HttpServlet {
  public void init(ServletConfig conf) throws ServletException  {
    super.init(conf);
  }
 
 
public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    HttpSession session = request.getSession(false);
   
if (session == null) {
      response.sendRedirect("http://localhost:8080/minApp/error.html");
    }
   
   
Vector buylist = (Vector)session.getValue("shopping.shoppingcart");
    String action = request.getParameter("action");
   
if (!action.equals("CHECKOUT")) {
if (action.equals("DELETE")) {
       
    String del = request.getParameter("delindex");
      int d = (new Integer(del)).intValue();
      buylist.removeElementAt(d);
     

} else if (action.equals("ADD")) {
        //any previous buys of same cd?
        boolean match=false;
 
        Book aBook = getBook(request);
System.err.println("aBook=" + aBook);
System.err.println("aBookAntal=" + aBook.getAntal());
System.err.println("aBookAntal=" + aBook.getForfatter());
System.err.println("aBookAntal=" + aBook.getTitel());
System.err.println("aBookAntal=" + aBook.getIsbn());
System.err.println("aBookAntal=" + aBook.getPris());
        if (buylist==null) {
          //add first cd to the cart
          buylist = new Vector(); //first order
          buylist.addElement(aBook);
        } else { // not first buy
          for (int i=0; i< buylist.size(); i++) {
            Book book = (Book) buylist.elementAt(i);
System.err.println("book=" + book);
System.err.println("book isbn=" + book.getIsbn());
System.err.println("aBook isbn=" + aBook.getIsbn());
            if (book.getIsbn().equals(aBook.getIsbn())) {
              book.setAntal(book.getAntal()+aBook.getAntal());
              buylist.setElementAt(book,i);
              match = true;
            } //end of if name matches
          } // end of for
          if (!match)
            buylist.addElement(aBook);
        }
      }
      session.putValue("shopping.shoppingcart", buylist);
      String url="/jsp/shopping/showBookSpec.jsp";
      ServletContext sc = getServletContext();
      RequestDispatcher rd = sc.getRequestDispatcher(url);
      rd.forward(request, response);
     
    } else if (action.equals("CHECKOUT"))  {
      float total =0;
      for (int i=0; i< buylist.size();i++) {
        Book anOrder = (Book) buylist.elementAt(i);
        float pris= anOrder.getPris();
        int antal = anOrder.getAntal();
        total += (pris * antal);
      }
      total += 0.005;
      String amount = new Float(total).toString();
      int n = amount.indexOf('.');
      amount = amount.substring(0,n+3);
      request.setAttribute("amount",amount);
      String url="/jsp/shopping/Checkout.jsp";
      ServletContext sc = getServletContext();
      RequestDispatcher rd = sc.getRequestDispatcher(url);
      rd.forward(request,response);
    }
  }

private Book getBook(HttpServletRequest request) {

try {   

dbConnect dbc = new dbConnect();
Connection con = dbc.getConnection();
Statement stmt = con.createStatement();


    String myBook = request.getParameter("book");
    String antal = request.getParameter("antal");

ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, pris FROM boeger WHERE isbn = '" + myBook + "'");
   
    rs.next();
   
    Book book = new Book();
    book.setForfatter(rs.getString(2));
    book.setTitel(rs.getString(3));
    book.setIsbn(rs.getString(1));
    book.setPris((new Float(rs.getFloat(4))).floatValue());
    book.setAntal((new Integer(antal)).intValue());
 
    return book;     

} catch (Exception e) {
    System.err.println(e);
    return null;

  }
 

 
    }

}

------------------------------------------------------------------------
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:50 #42
Skal du bruge mere kode fra de andre dokumenter
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:52 #43
Er det fordi jeg skal lukke resultsættet og statementet muligvis fordi det gør jeg ikke i denne her kode.
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:56 #44
kan det være fordi addElement er deprecated
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 20:56 #45
Ahh det er bare belastende
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:02 #46
Har læst koden igennem intet tyder på fejl, men nulPointer betyder jo at den ikke kan indsætte den.
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:03 #47
Selve BogObjektet
Avatar billede arne_v Ekspert
24. november 2004 - 21:06 #48
Fejlen antyder at buylist indeholder en null værdi - mystisk men ...

System.err.println("buylist=" + buylist);
          for (int i=0; i< buylist.size(); i++) {
            Book book = (Book) buylist.elementAt(i);
System.err.println("book=" + book);
System.err.println("book isbn=" + book.getIsbn());
System.err.println("aBook isbn=" + aBook.getIsbn());
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:13 #49
aBook=test.Book@15e293a
aBookAntal=1
aBookAntal=kurt
aBookAntal=fede luder
aBookAntal=46456
aBookAntal=343.0
buylist=[null]
book=null
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:14 #50
Det er total mystisk fordi den burde bare tilføje den når buylist = null
Avatar billede arne_v Ekspert
24. november 2004 - 21:15 #51
buylist er ikke null !

buylist indeholder et enkelt element som er null.

Stort forskel.
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:16 #52
Det første der testes for er jo om buylist er null hvis den er det skal objektet jo bare tilføjes
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:16 #53
ok hvad kan det dog være, det bliver sku da mere og mere mystisk
Avatar billede arne_v Ekspert
24. november 2004 - 21:16 #54
Se min forrige kommentar.
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:17 #55
Har set den skrev bare hurtigt
Avatar billede arne_v Ekspert
24. november 2004 - 21:18 #56
Jeg tror at du har fået noget snavs i buylist som bevares via sessionen.

Prøv og luk alle dine browser vinduer og prøv igen.

Jeg tror at den manglende rs.next() som gav en null book stadig spøger i buylist !
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:18 #57
Nogle forslag?
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:19 #58
OK prøver jeg lige
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:25 #59
ok nu kommer der ingen fejl men den viser kun en blank skærm hvor den ellers skulle vise 
indkøbskurven
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:36 #60
OK det virker Arne, borset fra at jeg kun kan beholde hvad der er i session over nogle bestemte sider, hvad skal jeg skrive i de andre dokumenter, hvis den ikke må slette hvad der er i sessionen.
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:43 #61
Skal man skrive <%@ page session="true" %> eller hvad
Avatar billede arne_v Ekspert
24. november 2004 - 21:50 #62
session="true"  er så vidt jeg ved default !
Avatar billede arne_v Ekspert
24. november 2004 - 21:51 #63
Hvilke sider bliver den væk på ?
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:51 #64
ok men hvis jeg går tilbage til en anden side og går tilbage til den aktuelle bog er mit forrige køb væk.
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 21:54 #65
<%@ page session="true" %> virkede. Tak for det hele send et svar der.
Avatar billede arne_v Ekspert
24. november 2004 - 21:55 #66
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