Tomcat7 HTTP 状态 500 - Servlet 执行引发异常 [英] Tomcat7 HTTP Status 500 - Servlet execution threw an exception

查看:64
本文介绍了Tomcat7 HTTP 状态 500 - Servlet 执行引发异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<前>输入异常报告消息 Servlet 执行抛出异常说明 服务器遇到内部错误,无法完成此请求.例外javax.servlet.ServletException:Servlet 执行引发异常根本原因java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeExceptionjava.lang.ClassLoader.defineClass1(本机方法)java.lang.ClassLoader.defineClassCond(来源不明)java.lang.ClassLoader.defineClass(来源不明)java.security.SecureClassLoader.defineClass(来源不明)org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904)org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)Hello.doGet(Hello.java:42)javax.servlet.http.HttpServlet.service(HttpServlet.java:621)javax.servlet.http.HttpServlet.service(HttpServlet.java:728)根本原因java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeExceptionorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)java.lang.ClassLoader.defineClass1(本机方法)java.lang.ClassLoader.defineClassCond(来源不明)java.lang.ClassLoader.defineClass(来源不明)java.security.SecureClassLoader.defineClass(来源不明)org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904)org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)Hello.doGet(Hello.java:42)javax.servlet.http.HttpServlet.service(HttpServlet.java:621)javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

注意 Apache Tomcat/7.0.33 日志中提供了根本原因的完整堆栈跟踪.

和我的代码

import java.io.IOException;导入 javax.servlet.ServletException;导入 javax.servlet.http.HttpServlet;导入 javax.servlet.http.HttpServletRequest;导入 javax.servlet.http.HttpServletResponse;导入 java.io.*;导入 java.sql.*;导入 net.sf.json.JSONArray;导入 net.sf.json.JSONObject;/*** Servlet 实现类 Getting_data*/公共类 Hello 扩展 HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/公共你好(){}public void doGet(HttpServletRequest req, HttpServletResponse res)抛出 ServletException、IOException{res.setContentType("text/html");PrintWriter pw = res.getWriter();连接控制;声明 stmt;结果集 rs = null;尝试{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");con = DriverManager.getConnection("jdbc:odbc:Emp_info");stmt = con.createStatement();String query = "select * from Emp_table";//where employee_name='"+emp_name+"' or department='"+emp_dept+"' or email='"+email+"' order by employee_name";System.out.println("查询" + 查询);rs = stmt.executeQuery(查询);pw.println("Id"+"Name"+"Address"+"
");JSONArray arrayObj=new JSONArray();JSONArray arrayObj1=new JSONArray();JSONObject responseData = new JSONObject();而(rs.next()){//pw.println(rs.getString(1) + " " + rs.getString(2) + "
");字符串名称 = rs.getString(1);字符串名称1 = rs.getString(2);arrayObj.add(new String(name));arrayObj1.add(new String(name1));}responseData.put("rows", arrayObj);responseData.put("data", arrayObj);pw.print(responseData);}捕获(例外 e){pw.println(e);}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//TODO 自动生成的方法存根}}

解决方案

假设您使用 Eclipse 并且项目配置为动态 Web 项目 右键单击​​您的项目 --> 选择 configure build path --> 现在 点击添加 jars 按钮 --> 和 选择 Gson jar --> 点击OK.

重新发布项目并重启服务器.

否则将jar添加到war内的WEB-INF\lib目录

或者直接进入 tomcat 中的 Deployed 位置,但在与提到的相同目录中

type Exception report

message Servlet execution threw an exception

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

exception 

javax.servlet.ServletException: Servlet execution threw an exception


root cause 

java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClassCond(Unknown Source)
    java.lang.ClassLoader.defineClass(Unknown Source)
    java.security.SecureClassLoader.defineClass(Unknown Source)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    Hello.doGet(Hello.java:42)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)


root cause 

java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClassCond(Unknown Source)
    java.lang.ClassLoader.defineClass(Unknown Source)
    java.security.SecureClassLoader.defineClass(Unknown Source)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    Hello.doGet(Hello.java:42)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

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

and My Coding Here

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.*;

import java.sql.*;

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;
/**
 * Servlet implementation class Getting_data
 */

public class Hello extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Hello() {

    }
        public void doGet(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException
        {

            res.setContentType("text/html");
        PrintWriter pw = res.getWriter();
        Connection con;
        Statement stmt;
        ResultSet rs = null;
        try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con = DriverManager.getConnection("jdbc:odbc:Emp_info");
        stmt = con.createStatement();
        String query = "select * from Emp_table";// where employee_name='"+emp_name+"' or department='"+emp_dept+"' or email='"+email+"' order by employee_name";
        System.out.println("query " + query);
        rs = stmt.executeQuery(query);
        pw.println("Id"+"Name"+"Address"+"<br>");
       JSONArray arrayObj=new JSONArray();
        JSONArray arrayObj1=new JSONArray();
        JSONObject responseData = new JSONObject();
        while(rs.next())
        {
        //pw.println(rs.getString(1) + " " + rs.getString(2) + "<br>");
        String name = rs.getString(1);
        String name1 = rs.getString(2);
        arrayObj.add(new String(name));
        arrayObj1.add(new String(name1));
        }
        responseData.put("rows", arrayObj);
        responseData.put("data", arrayObj);
        pw.print(responseData);
        }


        catch (Exception e){
        pw.println(e);
        }
        }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

解决方案

Assuming your using Eclipse and the project configured as Dynamic Web Project Right click on your project --> choose configure build path --> now click on add jars button --> and select the Gson jar --> clickOK.

Republish the project and restart the server.

Else add the jar to WEB-INF\lib directoryinside the war

Or directly into the Deployed location in the tomcat , but in the same directory as mentioned

这篇关于Tomcat7 HTTP 状态 500 - Servlet 执行引发异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆