为了提供一些背景信息,我上周问了这个问题,因为在计算机上配置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!";
}
}
而且,我不知道是否需要它,但是在另一个问题中,它有帮助:
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[]]