Apache Tomcat 9 - 浏览器上的 HTTP 状态 404
Apache Tomcat 9 - HTTP Status 404 on browser
我正在尝试创建一个简单的 Web 服务,但是当我尝试转到 URL 时收到 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_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>Test</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
这是 pom:
<?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>1</groupId>
<artifactId>1</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20080701</version>
</dependency>
</dependencies>
</project>
这是基本的休息 class:
package Test;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
/**
* Created by * on 4.02.2017.
*/
@Path("/api")
public class Test {
@GET
@Path("/get/test")
public String getSmth(String request) {
return "Testing";
}
}
当我去:
http://127.0.0.1:8080/Test/rest/api/get/test
我得到:
HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/9.0.0.M17
当我转到 Tomcat 应用程序管理器时,我可以在那里看到我的应用程序 运行。我真的做错了什么或遗漏了什么吗?
谢谢,
埃里克
在代码中您使用的是 glassfish 服务器,而不是 tomcat。在 IDE 中,您尝试使用 glassfish 服务器而不是 tomcat 并使用相同的代码。
我正在尝试创建一个简单的 Web 服务,但是当我尝试转到 URL 时收到 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_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>Test</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
这是 pom:
<?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>1</groupId>
<artifactId>1</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20080701</version>
</dependency>
</dependencies>
</project>
这是基本的休息 class:
package Test;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
/**
* Created by * on 4.02.2017.
*/
@Path("/api")
public class Test {
@GET
@Path("/get/test")
public String getSmth(String request) {
return "Testing";
}
}
当我去:
http://127.0.0.1:8080/Test/rest/api/get/test
我得到:
HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/9.0.0.M17
当我转到 Tomcat 应用程序管理器时,我可以在那里看到我的应用程序 运行。我真的做错了什么或遗漏了什么吗?
谢谢, 埃里克
在代码中您使用的是 glassfish 服务器,而不是 tomcat。在 IDE 中,您尝试使用 glassfish 服务器而不是 tomcat 并使用相同的代码。