Проблемы с доступом к спокойному веб-сервису - PullRequest
0 голосов
/ 21 января 2019

Чтобы создать некоторый контекст, я задал этот вопрос на прошлой неделе с некоторыми проблемами при настройке tomcat на моем компьютере. Вопрос . Ну, теперь я настроил это. Я запускаю его из intellij, и появляется локальная страница для tomcat на localhost:8080/. Но в любом другом URL, по которому я пытаюсь перейти, он показывает мне то же сообщение:

ERROR 404 - The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

Я думаю, что набираю URL неправильно или что-то в этом роде, но, поскольку у меня было очень много проблем с его настройкой (у меня все еще есть некоторые, потому что, если я пытаюсь развернуть войну взорванным, даже localhost:8080/ не появляется) это может быть что-то другое, чего я не вижу. Вот мой pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>restTest</groupId>
    <artifactId>RestTest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-bundle</artifactId>
            <version>1.18.3</version>
        </dependency>
    </dependencies>

</project>

И мой 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>API</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>

        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>restTest</param-value>
        </init-param>

        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>API</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>

Мой класс ресурсов:

package restTest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class HelloWorld {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getMessage() {
        return "Hello world!";
    }
}

Структура моего проекта: enter image description here

И я не знаю, нужно ли это, но в другом вопросе это помогло:

Using CATALINA_BASE:   "C:\Users\vitor\.IntelliJIdea2018.2\system\tomcat\Tomcat_9_0_8_RestTest"
Using CATALINA_HOME:   "C:\Program Files\Apache Software Foundation\Tomcat 9.0"
Using CATALINA_TMPDIR: "C:\Program Files\Apache Software Foundation\Tomcat 9.0\temp"
Using JRE_HOME:        "C:\Program Files\Java\jre1.8.0_191"
Using CLASSPATH:       "C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin\bootstrap.jar;C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin\tomcat-juli.jar"

Я решил задать другой вопрос, потому что у него было другое намерение, и у меня сейчас другие проблемы (хотя некоторые другие остаются).

Я пробовал следующие URL:

localhost:8080/hello
localhost:8080/RestTest/hello
localhost:8080/restTest/hello
localhost:8080/restTest

Но все они дали мне ту же ошибку. Я подключаюсь к неправильному URL-адресу или что-то не так с моей конфигурацией tomcat? Как я уже сказал, когда я пытаюсь развернуть войну, она показывает много ошибок, упомянутых в последнем вопросе.

Спасибо!

Редактировать: ошибки при попытке развернуть развернутую войну:

org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
java.lang.NoClassDefFoundError: com/google/common/base/Function
java.lang.ClassNotFoundException: com.google.common.base.Function
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
 javax.management.RuntimeOperationsException: Exception invoking method manageApp
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
...