four systems Ответов: 3

HTTP status 404 - не найден java-сервлет


the servlet is 

<pre>import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class ServletWriteHtml extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws IOException
{
    PrintWriter out = response.getWriter();
    java.util.Date today = new java.util.Date();
    out.println("html" +
                "<body>" +
                "<h1 align = center>Write Html<h1>"
                + "<br>" + today + "<body>" + "</html>");                        
        }
}


<?xml version="1.0" encoding="UTF-8"?>
<web-app id="file-upload" version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
        <servlet-name>And</servlet-name>
        <servlet-class>ServletWriteHtml</servlet-class>
    </servlet>  
    <servlet-mapping>
        <servlet-name>ServletWriteHtml</servlet-name>
        <url-pattern>/Alfa</url-pattern>
    </servlet-mapping>
        <welcome-file-list>
            <welcome-file>index.html</welcome-file>
        </welcome-file-list>
</web-app>


скомпилировал сервлет и поместил в папку WEB-INF

url - адрес сервлета:

[^]

HTTP статус 404 - не найден
тип отчета о состоянии
мессагенот найден
описание запрошенный ресурс недоступен.
GlassFish Server Open Source Edition 4.1.1

Что я уже пробовал:

запустил приложение из ide , скомпилировал сервлет и попробовал url-адрес через веб-браузер

ThilinaMD

Для GlassFish-сервер у вас есть, чтобы развернуть приложение, чтобы получить доступ к сервлетам

3 Ответов

Рейтинг:
2

four systems

<servlet>
		<servlet-name>And</servlet-name>
		<servlet-class>Javas.ServletWriteHtml</servlet-class>
	</servlet>	
	<servlet-mapping>
		<servlet-name>And</servlet-name>
		<url-pattern>/Alfa</url-pattern>
	</servlet-mapping>


изменил имя сервлета и добавил ServletWriteHtml в пакете Javas все еще 404 не найден


ThilinaMD

создайте новый сервлет с помощью мастера new servelt. Сначала не нажимайте кнопку Готово. нажмите кнопку Далее, и там вы сможете добавить информацию о сервлете в web.xml (установите флажок) затем откройте веб-xml-файл и изучите автоматически сгенерированный код о сопоставлении сервлетов. И снова вы публикуете ответы как решения. пожалуйста, избегайте этого. Это введет в заблуждение других читателей.

four systems

это было так хорошо что теперь работает спасибо

ThilinaMD

добро пожаловать и счастливого кодирования

Рейтинг:
1

ThilinaMD

В вашем веб-xml-файле <servlet-name>. значение отличается в <servlet> тэг и <servlet-mapping> метка. Таким образом, сервер не может сопоставить правильный сервлет. Вы должны использовать одно и то же значение имени сервлета как для тегов сервлета, так и для тегов сопоставления сервлетов

[^Читайте документы oracle для получения дополнительной информации]

<servlet>
    <servlet-name>And</servlet-name>
    <servlet-class>ServletWriteHtml</servlet-class>
</servlet>  
<servlet-mapping>
    <servlet-name>And</servlet-name>
    <url-pattern>/Alfa</url-pattern>
</servlet-mapping>


совет: отвечайте на комментарии в разделе "ответ", а не как ответ.


Рейтинг:
0

four systems

ide-это netbeans, сервер glassfish был развернут и приложение запущено из веб-консоли, файл .class был создан и находится в каталоге web-inf, но ошибка 404 не найдена