Java Web 服务器应用程序

标签 java html web-services

我正在学习如何制作 Web 应用程序,并且刚刚实现了一个应该在网页上显示当前日期的简单应用程序。但是,我在这样做时收到错误消息。我在 Debug模式下运行它,断点位于:resp.getWriter().println(new Date());

这是我的 Java 代码:

package org.test.webapp;

import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.getWriter().println(new Date());
    }

}

Web.XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

    <servlet>
        <servlet-name>Test</servlet-name>
        <servlet-class>org.test.webapp/TestServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>Test</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>



    <display-name>Example01</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
</web-app>

这是我收到的错误:

type Exception report

message

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

exception

javax.servlet.ServletException: Error allocating a servlet instance
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Unknown Source)

root cause

java.lang.NoClassDefFoundError: IllegalName: org.test.webapp/TestServlet
    java.lang.ClassLoader.preDefineClass(Unknown Source)
    java.lang.ClassLoader.defineClass(Unknown Source)
    java.security.SecureClassLoader.defineClass(Unknown Source)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Unknown Source)

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

最佳答案

您的 serlvet 类应该引用一个类名。所以不是这个:

<servlet-class>org.test.webapp/TestServlet</servlet-class>

这是一个非法的类名(你的服务器找不到,因此是异常),试试这个:

<servlet-class>org.test.webapp.TestServlet</servlet-class>

关于Java Web 服务器应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20459042/

相关文章:

java - java迭代器似乎正在丢失数据

java - 如何为二维数组赋值?

java - javac中-source的使用

HTML/CSS - 段落显示源代码中的换行符

html - 音频标签自动播放不适用于移动设备

java - 设计复合 Web 服务

java - 如何在 glassfish 3.0 中配置 jdbc 领域

javascript - 使 div 滚动直到到达页面顶部然后固定

java - 编译共享公共(public)模式的多个 WSDL

c# - 如何以编程方式限制对 Web 服务的访问?