HTTP状态500 - 实例化servlet类com.servlet.Controller时出错

时间:2015-05-08 06:43:57

标签: java jquery jsp servlets crud

我正在尝试为CRUD operations in JSP提供的示例。但是在调用控制器时出错。

当我执行他们给出的代码时,我得到了以下错误:

May 08, 2015 12:01:20 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
May 08, 2015 12:01:20 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.59
May 08, 2015 12:01:20 PM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [147] milliseconds.
May 08, 2015 12:01:20 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(E:\coding\eclipse32Juno\workspace\web\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\jTableServletSetup\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
May 08, 2015 12:01:21 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(E:\coding\eclipse32Juno\workspace\web\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\AjaxCurdjTableServlet\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
May 08, 2015 12:01:21 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
May 08, 2015 12:01:21 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
May 08, 2015 12:01:21 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1305 ms
May 08, 2015 12:01:47 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet Controller as unavailable
May 08, 2015 12:01:47 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet Controller
java.lang.ClassNotFoundException: com.servlet.Controller
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:506)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:488)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:115)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

然后我更改了index.jsp,如下所示,检查Controller是否被调用:

<!DOCTYPE html>
<html>
<head>
<title>CRUD operations using jTable in J2EE</title>
<!-- Include one of jTable styles. -->
<link href="css/metro/blue/jtable.css" rel="stylesheet" type="text/css" />
<link href="css/jquery-ui-1.10.3.custom.css" rel="stylesheet"
    type="text/css" />
<!-- Include jTable script file. -->
<script src="js/jquery-1.8.2.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.10.3.custom.js" type="text/javascript"></script>
<script src="js/jquery.jtable.js" type="text/javascript"></script>

<script type="text/javascript">
    $(document).ready(function() {
        $('#StudentTableContainer').jtable({
            title : 'Students List',
            actions : {
                listAction : 'Controller?action=list',
                createAction : 'Controller?action=create',
                updateAction : 'Controller?action=update',
                deleteAction : 'Controller?action=delete'
            },
            fields : {
                studentId : {
                    title : 'Student Id',
                    width : '30%',
                    key : true,
                    list : true,
                    edit : false,
                    create : true
                },
                name : {
                    title : 'Name',
                    width : '30%',
                    edit : true
                },
                department : {
                    title : 'Department',
                    width : '30%',
                    edit : true
                },
                emailId : {
                    title : 'Email',
                    width : '20%',
                    edit : true
                }
            }
        });
        //$('#StudentTableContainer').jtable('load');
    });
</script>

</head>
<body>
    <div style="width: 80%; margin-right: 10%; margin-left: 10%; text-align: center;">
        <h4>AJAX based CRUD operations using jTable in J2ee</h4>
        <div id="StudentTableContainer"></div>
    </div>
    <form action="Controller" method="get">
    Form contents:
    <button type="submit">Submit</button>
    </form>
</body>
</html>

现在,当我点击按钮时,会导致以下错误:

May 08, 2015 12:07:31 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet Controller as unavailable
May 08, 2015 12:07:31 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet Controller
java.lang.ClassNotFoundException: com.servlet.Controller
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:506)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:488)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:115)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

我无法到达我做错的地方。

这是我的项目目录结构:

enter image description here

1 个答案:

答案 0 :(得分:0)

我看不到您的项目设置(在工作时代理会删除图表)但我猜您在web-inf / lib目录中有servlet-api.jar。

如果有,请将其删除并清理并重建您的项目。 servlet容器也提供了这个jar的实例,我认为这两个是冲突的。