在运行tomcat时,我得到这样的错误:(在代码中,直到控制器,它都可以正常工作,但是在JSP页面中,它给出了错误),请问有什么可以帮忙的吗?
Oct 30, 2013 4:48:16 PM org.apache.catalina.core.ApplicationDispatcher invoke SEVERE: Servlet.service() for servlet jsp threw exception java.lang.ClassNotFoundException: org.apache.commons.lang.UnhandledException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404) at java.lang.Class.getConstructor0(Class.java:2714) at java.lang.Class.newInstance0(Class.java:343) at java.lang.Class.newInstance(Class.java:325) at com.sun.beans.finder.InstanceFinder.instantiate(InstanceFinder.java:96) at com.sun.beans.finder.InstanceFinder.find(InstanceFinder.java:66) at java.beans.Introspector.findExplicitBeanInfo(Introspector.java:455) at java.beans.Introspector.<init>(Introspector.java:405) at java.beans.Introspector.getBeanInfo(Introspector.java:174) at org.apache.jasper.compiler.Generator$TagHandlerInfo.<init>(Generator.java:3911) at org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2174) at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1632) at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530) at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361) at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411) at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417) at org.apache.jasper.compiler.Node$Root.accept(Node.java:495) at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361) at org.apache.jasper.compiler.Generator.generate(Generator.java:3461) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:231) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) at com.preva.controller.OverspeedDBProcess.service(OverspeedDBProcess.java:86) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:617) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1760) at java.lang.Thread.run(Thread.java:722)
像这样的控制器
package com.preva.controller; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.preva.dao.UserDAO; import com.preva.vo.OverspeedDetails; /** * Servlet implementation class OverspeedDBProcess */ public class OverspeedDBProcess extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public OverspeedDBProcess() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub try{ response.setContentType("text/html"); PrintWriter out=response.getWriter(); HttpSession session=request.getSession(true); String accountID=(String)session.getAttribute("sessionId"); String deviceID=request.getParameter("vehicleId"); String fromDate=request.getParameter("AnotherDate"); String toDate=request.getParameter("ADate"); String stringspeed=request.getParameter("speed").substring(1,3); double speed=Double.parseDouble(stringspeed); session.setAttribute("vid",deviceID); session.setAttribute("fromdate",fromDate); session.setAttribute("startdate",toDate); SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); Date startD = (Date) sdf.parse(fromDate); Date endD = (Date) sdf.parse(toDate); Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal1.setTime(startD); cal2.setTime(endD); long timestamp1,timestamp2; timestamp1=cal1.getTimeInMillis()/1000; timestamp2=cal2.getTimeInMillis()/1000; System.out.println("::::"+timestamp1); System.out.println("::::"+timestamp2); String Timestamp1 = Long.toString(timestamp1); String Timestamp2 = Long.toString(timestamp2); UserDAO rdao=new UserDAO(); List<OverspeedDetails> overspeeddetail=rdao.getosDetails(accountID, deviceID, Timestamp1, Timestamp2,speed); if(!(overspeeddetail.isEmpty())){ session.setAttribute("overspeeddetails", overspeeddetail); RequestDispatcher rd=request.getRequestDispatcher("OverspeedDBReport.jsp"); rd.include(request,response); return; } RequestDispatcher rd=request.getRequestDispatcher("DataNotFound.jsp"); rd.include(request,response); }catch (Exception e) { // TODO: handle exception } } }
像这样的Jsp页面
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ page import = "com.preva.vo.StoppageDetails"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib uri="http://displaytag.sf.net" prefix="display" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="css/cal.css" rel="stylesheet" type="text/css" /> <link href="css/sty.css" rel="stylesheet" type="text/css" /> <link href="css/tabborder.css" rel="stylesheet" type="text/css" /> </head> <body> <jsp:include page="Header.jsp" /> <table align=center border=0 cellspacing=0 cellpadding=0> <tr ><td colSpan=5 align=center><b>Overspeed Details</b></td></tr> <tr ><td colspan=5 align=center><b><%=request.getParameter("vehicleId") %></b></td></tr> <tr><td>From <%=session.getAttribute("fromdate") %> to <%=session.getAttribute("startdate") %></td></tr> </table><br></br> <table class='rptTbl_sortable' width='80%' align=center cellspacing='2' cellpadding='0' border='0'> <thead> <tr class="rptHdrRow"> <th id="index" class="rptHdrCol_sort" nowrap>DeviceID</th> <th id="date" class="rptHdrCol_sort" nowrap>Date</th> <th id="time" class="rptHdrCol_sort" nowrap>Speed</th> <th id="statusdesc" class="rptHdrCol_sort" nowrap>Status</th> <th id="address" class="rptHdrCol_sort" nowrap>Address</th> </tr> </thead> <tbody> <display:table id="deviceDetailsID" name="sessionScope.overspeeddetails" pagesize="10" style="width:99%;"> <display:setProperty name="basic.empty.showtable" value="true" /> <display:setProperty name="paging.banner.group_size" value="10" /> <display:setProperty name="paging.banner.item_name" value="user" /> <display:setProperty name="paging.banner.item_names" value="users" /> <display:column property="deviceID" title="Device ID" sortable="true" headerClass="sortable" style="width: 1%"/> <display:column property="TIMESTAMP" title="TIMESTAMP" sortable="true" headerClass="sortable" format="{0,date,dd-MM-yyyy}"/> <display:column property="speed" title="Speed" sortable="true"/> <display:column property="statuscode" title="Status Code"/> <display:column property="address" title="Address" sortable="true" headerClass="sortable" /> </display:table> </tbody> </table> </body>
您需要在类路径中添加Commons Lang 2.6 jar以避免此异常。