2016-01-31 3 views
0

Я пытаюсь развернуть скомпилированный класс сервлета на сервере Apache Tomcat 8.0.30.Развертывание сервлета на Tomcat 8.0.30

Но я получаю следующее исключение:

javax.servlet.ServletException: Error instantiating servlet class HelloWorld 

    java.lang.ClassNotFoundException: HelloWorld 

Мой кот webapps/ROOT/ папка не содержит папку классов, так что я создал один и скопировать 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> 

Может кто-нибудь сказать мне, что я делаю неправильно?

@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. 
    } 
} 

ответ

0

Когда был начат кот был не class файла в вашем приложении. Tomcat загружает классы во время развертывания при запуске или вручную развертывает его во время выполнения. После этого контекст должен быть перезагружен. Вы не можете просто скопировать свои классы в папку tomcat webapps без их загрузки.

Прочитано Tomcat docs how to deploy your application.

Deployment это термин, используемый для процесса установки веб-приложения (либо 3 участника войны или собственное приложение пользовательский веб- ) в сервер Tomcat.

Web развертывание приложений может осуществляться несколькими способами внутри сервера Tomcat:

  • Статически (веб-приложение настройки перед запуском Tomcat)
  • Динамически (непосредственно манипулирования уже развернуты сети приложения (опираясь на функции автоматического развертывания) или удаленно с помощью веба-менеджера приложения Tomcat)

кот менеджера является веб-приложение тхом t можно использовать интерактивно (через графический интерфейс HTML) или программно (через API на основе URL) для развертывания и управлять веб-приложениями.

Существует несколько способов выполнения развертывания, которые основаны на веб-приложении Менеджера . Apache Tomcat предоставляет задачи для инструмента сборки Apache Ant . Проект Apache Tomcat Maven Plugin обеспечивает интеграцию с Apache Maven. Существует также инструмент под названием Client Deployer, , который может использоваться из командной строки и предоставляет дополнительные функции , такие как компиляция и проверка веб-приложений как , а также упаковка веб-приложения в ресурс веб-приложений (WAR) .

0

Вам необходимо поместить файлы в нужные места. Файлы классов Java должны быть помещены в WEB-INF/классы:

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

Затем запустите Tomcat и посмотреть, если есть ошибки в журнале Tomcat.

+0

Я поместил файлы в указанные вами места, а затем перезапустил сервер, но все же получаю сообщение об ошибке: запрашиваемый ресурс недоступен. – user1858851

+0

@ user1858851 затем покажите «HelloWorld.java» – wero

+0

, пожалуйста, найдите HelloWorld.java в редакции. – user1858851

0

Got it. Созданная мной папка классов была «C« lasses where tomcat ожидает »c« lasses.

Смежные вопросы