Java 在Tomcat8.0.30上部署Servlet

Java 在Tomcat8.0.30上部署Servlet,java,tomcat,servlets,Java,Tomcat,Servlets,我正在尝试将编译后的Servlet类部署到ApacheTomcat服务器8.0.30上 但我有以下例外: javax.servlet.ServletException: Error instantiating servlet class HelloWorld java.lang.ClassNotFoundException: HelloWorld 我的tomcatwebapps/ROOT/文件夹不包含classes文件夹,因此我创建了一个并将HelloWorld.class复制到其中。

我正在尝试将编译后的Servlet类部署到ApacheTomcat服务器8.0.30上

但我有以下例外:

javax.servlet.ServletException: Error instantiating servlet class HelloWorld

   java.lang.ClassNotFoundException: HelloWorld
我的tomcat
webapps/ROOT/
文件夹不包含classes文件夹,因此我创建了一个并将
HelloWorld.class
复制到其中。我在
web.xml
中添加了以下行:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
<servlet>
   <servlet-name>HelloWorld</servlet-name>
   <servlet-class>HelloWorld</servlet-class>
 </servlet>

<servlet-mapping>
   <servlet-name>HelloWorld</servlet-name>
   <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>

欢迎来到Tomcat
欢迎来到Tomcat
你好世界
你好世界
你好世界
/地狱世界
谁能告诉我我做错了什么

@wero:这是我的HelloWorld.java的内容:

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld extends HttpServlet {

  private String message;

  public void init() throws ServletException
  {
      // Do required initialization
      message = "Hello World";
  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // Set response content type
      response.setContentType("text/html");

      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }

  public void destroy()
  {
      // do nothing.
  }
}
//导入所需的java库
导入java.io.*;
导入javax.servlet.*;
导入javax.servlet.http.*;
//扩展HttpServlet类
公共类HelloWorld扩展了HttpServlet{
私有字符串消息;
public void init()引发ServletException
{
//执行所需的初始化
message=“你好,世界”;
}
公共无效数据集(HttpServletRequest请求,
HttpServletResponse(响应)
抛出ServletException、IOException
{
//设置响应内容类型
response.setContentType(“text/html”);
//实际逻辑是这样的。
PrintWriter out=response.getWriter();
out.println(“+message+”);
}
公共空间销毁()
{
//什么也不做。
}
}

启动tomcat时,应用程序中没有
文件。Tomcat在启动时部署或在运行时手动部署时加载类。之后,应该重新加载上下文。你不能只把你的类复制到tomcat
webapps
文件夹而不加载它们

阅读

部署是用于安装web服务器的过程的术语 应用程序(第三方WAR或您自己的自定义web) 应用程序)导入Tomcat服务器

Web应用程序部署可以通过多种方式完成 在Tomcat服务器中:

  • 静态(web应用程序是在Tomcat启动之前设置的)
  • 动态地(通过直接操作已部署的web应用程序(依赖于自动部署功能)或使用 Tomcat管理器(web应用程序)
Tomcat管理器是一个可以交互使用的web应用程序 (通过HTML GUI)或编程方式(通过基于URL的API)来部署和 管理web应用程序

有许多方法可以依靠 管理器web应用程序。ApacheTomcat为ApacheAnt提供任务 构建工具。ApacheTomcatMaven插件项目提供了集成 使用ApacheMaven。还有一个叫做客户端部署器的工具, 它可以从命令行使用,并提供额外的 功能,如编译和验证web应用程序 以及将web应用程序打包到web应用程序资源(WAR)中 档案


你需要把文件放在正确的地方。Java类文件需要放在WEB-INF/class中:

webapps/ROOT/WEB-INF/web.xml
webapps/ROOT/WEB-INF/classes/HelloWorld.class

然后启动Tomcat并查看Tomcat日志中是否有错误。

明白了。我创建的classes文件夹是“C”lasses,tomcat需要“C”lasses。

我将文件放在您提到的位置,然后重新启动服务器,但仍然收到错误:请求的资源不可用。