访问宁静的Web服务时出现问题

时间:2019-01-21 00:16:17

标签: java tomcat intellij-idea restful-url

为了提供一些背景信息,我上周问了这个问题,因为在计算机上配置tomcat时遇到了一些问题。 Question。 好吧,现在,我已经设置好了。我从intellij运行它,并且显示了localhost:8080/上tomcat的本地页面。但是,无论我尝试使用哪种其他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.

我认为我输入的网址有误或其他原因,但是由于设置该网址有很多问题(我仍然有一些问题,因为如果我尝试展开战争,甚至不会显示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[]]

0 个答案:

没有答案