Как развернуть веб-приложение на встроенном Tomcat - JavaEE - PullRequest
0 голосов
/ 20 марта 2019

Я хочу развернуть веб-приложение на сервере tomcat embedded, которое я загружаю из maven: Моя конечная точка отдыха:

@Path("/test")
public class RestTestController {

@GET
public String doNothing(){
    return "A";
}
}

И настройка maven:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <port>8080</port>
                <path>/</path>
            </configuration>
        </plugin>
    </plugins>
</build>

После выполнения mvn clean install и позже mvn tomcat7:run Я получаю сообщение о том, что военный кот был запущен, однако, когда я вхожу в localhost: 8080 / test, я постоянно получаю 404 Not Fount Http response.Что я, возможно, делаю не так?Должен ли я добавить какое-то отображение в web.xml?

Вход в tomcat показывает, что я определенно развернул свое приложение:

[INFO] ---------------------< pl.wachkar:take-restaurant >---------------------
[INFO] Building take-restaurant 1.0-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] >>> tomcat7-maven-plugin:2.2:run (default-cli) > process-classes @ take-restaurant >>>
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ take-restaurant ---
(...)
[INFO] --- tomcat7-maven-plugin:2.2:run (default-cli) @ take-restaurant ---
[INFO] Running war on http://localhost:8080/

@ EDIT Пустой файл 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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

</web-app>

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Я думаю, что вы ввели неправильный URL в браузере (возможно, не полностью). Без использования web.xml вы должны создать класс, который расширяет класс Application и аннотирует его @ApplicationPath("anyString") например:

  import javax.ws.rs.core.Application;

     @ApplicationPath("myWebservice")
     public class MyConfig extends Application{

    }

вам не нужно реализовывать какой-либо метод, он работает нормально. Этот класс может быть в любом пакете. и для тестирования правильный URL-адрес:

localhost:port/contextpath/string1/string2

string1 - это то, что вы указываете в аннотации приложения (здесь myWebservice) string2 - это то, что вы указываете в аннотации Path для вашего класса ресурсов (в вашем случае теста), поэтому у нас есть

localhost:8080/contextpath/myWebservice/test
0 голосов
/ 20 марта 2019

Как выглядит ваш web.xml? Вам понадобится как минимум список файлов приветствия, чтобы tomcat знал, какой файл будет использоваться при запуске

Например:

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>
...