Сервлет в eclipse + tomcat не работает [Ошибка 404] - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь разработать простой API-сервлет с Eclipse & Tomcat. когда я захожу по ссылке http://localhost:8080/MosheAPI_Project/rest/hello я получаю ошибку 404.

это мой код сервлета и web.xml: *** MyCode

package MyPackage;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.servlet.annotation.WebServlet;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@Path("/hello")
@WebServlet("/hello")
public class HelloWorld {

    @GET
    @Produces(MediaType.TEXT_XML)
    public String sayHelloXML() {
        String resource="<? xml version='1.0' ?> "+
        "<hello> Hi Moshe </hello>";
        return resource;
    }

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String sayHelloHTML() {
        String resource="<h1>SFGSFG</h1>";
        return resource;
    }
}

**** 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_3_0.xsd" version="3.0">
    <display-name>MosheAPI_Project</display-name>

    <servlet>
        <servlet-name>MosheAPI_Project</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer.class</servlet-class>
        <!-- <servlet-class>HelloWorld</servlet-class>  -->
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>test</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>MosheAPI_Project</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

</web-app>

Вот результат затмения:

1 Ответ

0 голосов
/ 03 мая 2018

Вы используете два сопоставления для одного и того же сервлета, но, как вы можете прочитать в этой статье , вы можете получить доступ к своему сервлету, используя http://localhost:8080/MosheAPI_Project/hello,, но если вы не добавили @WebServlet в свой сервлет, тогда вы можете получить к нему доступ, как вы сейчас.

Кстати, вы не расширили HttpServlet в своем сервлете, который, в конце концов, не делает его сервлетом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...