сервлет Java не находит подстраницы, определенной в web.xml - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь создать простое веб-приложение для визуализации Google с использованием Java-сервлета.Я наконец-то заставил весь код работать и импортировать правильно, однако по какой-то причине я получаю 404 на странице запроса.Мой файл web.xml выглядит так, как будто он настроен правильно ...

    <?xml version="1.0" encoding="UTF-8"?>
    <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_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>My Servlet</servlet-name>
        <servlet-class>Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>My Servlet</servlet-name>
        <url-pattern>/simpleexample</url-pattern>
    </servlet-mapping>
</web-app>

Однако всякий раз, когда мое приложение отправляет запрос / simpleexample, я получаю ошибку 404 enter image description here

URL-адрес правильный при поиске этой страницы ...

http://localhost:8080/simpleexample?tq=select%20name,population&tqx=reqId%3A0

Чтобы позвонить, я использую google.visualization.Query ...

var query = new google.visualization.Query("/simpleexample?tq=select name,population");
query.send(handleSimpleResponse);

Кто-нибудь может понять, почему это даст мне 404?Я очень смущен прямо сейчас.Спасибо.

Вот мой файл Servler.java.Он расширяет класс из библиотеки Java визуализации Google, которая автоматически обрабатывает запросы doGet и doPost, перенаправляет их в метод generateDataTable ...

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;

import com.google.visualization.datasource.DataSourceServlet;
import com.google.visualization.datasource.base.TypeMismatchException;
import com.google.visualization.datasource.datatable.ColumnDescription;
import com.google.visualization.datasource.datatable.DataTable;
import com.google.visualization.datasource.datatable.value.ValueType;
import com.google.visualization.datasource.query.Query;


public class Servlet extends DataSourceServlet {




    @Override
    public DataTable generateDataTable(Query q, HttpServletRequest request) {
        DataTable d = new DataTable();
        ArrayList<ColumnDescription> cd = new ArrayList<ColumnDescription>();
        cd.add(new ColumnDescription("name", ValueType.TEXT, "Animal Name"));
        cd.add(new ColumnDescription("link", ValueType.TEXT, "Link to Wikipedia"));
        cd.add(new ColumnDescription("population", ValueType.NUMBER, "Population Size"));
        cd.add(new ColumnDescription("Vegetarian", ValueType.BOOLEAN, "Vegetarian?"));

        d.addColumns(cd);

        try {
            d.addRowFromValues("Aye-aye", "http://en.wikipedia.org/wiki/Aye-aye", 100, true);
            d.addRowFromValues("Sloth", "http://en.wikipedia.org/wiki/Sloth", 300, true);
            d.addRowFromValues("Leopard", "http://en.wikipedia.org/wiki/Leopard", 50, false);
            d.addRowFromValues("Tiger", "http://en.wikipedia.org/wiki/Tiger", 80, false);
        } catch (TypeMismatchException e) {
            System.out.println("Invalid type!");
        }
        return d;
    }

    @Override
    protected boolean isRestrictedAccessMode() { return false; }
}

При необходимости, пример, из которого он находится, находится здесь.. https://github.com/google/google-visualization-java

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