jsp - java.lang.ClassNotFoundException : org. apache.commons.lang.UnhandledException

标签 jsp tomcat servlets

运行 tomcat 时,出现如下错误: (在代码中,对于 Controller 来说,它工作正常,但是当涉及到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)

像这样的 Controller

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 &nbsp;<%=session.getAttribute("fromdate") %>&nbsp;to&nbsp;<%=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>

最佳答案

我在 this post 中发布了答案。我建议您更新问题,但您发布了新问题,因为评论中很难阅读。

您需要添加Commons Lang 2.6 jar在您的类路径中以避免此异常。

关于jsp - java.lang.ClassNotFoundException : org. apache.commons.lang.UnhandledException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19681168/

相关文章:

Java Web 应用程序从文件读取并写入同一文件

java - Ajax调用以在jsp中下载pdf文件

java - "javax.servlet.* "和 "HttpServlet"无法解析为类型

java - 一些 URL 模式丢失了 css

javascript - 如何在 Node JS 中读取 servlet 响应输出流?

java - 突发 "failed to lazily initialize a collection of role...:no session or session was closed"- 异常

java - 是否可以声明一个全局变量,以便可以在 JSP 中的每个类中使用它?

java - 响应在自定义 servlet 转发中被写入两次

Tomcat 配置帮助 : multiple ports not responding

java - 当我在 tomcat 的 web.xml 中的过滤器之前配置一个 servlet 时会发生什么?