gpt4 book ai didi

java - 在 Tomcat 7 中访问 Jersey 应用程序时出现 404

转载 作者:行者123 更新时间:2023-11-28 22:04:18 25 4
gpt4 key购买 nike

我是 web 开发的新手,我正在努力使用 jersey 创建一个简单的 rest web 服务,打包为一个独立的 war 文件,部署在 tomcat 7 上。

I have followed this tutorial为了创建简单的 hello world restful web 服务。我使用 intelij 来创建 war 文件(包括 war 文件和它的展开版本)并将它们部署到 tomcat\webapps 文件夹中。

当启动 tomcat 时,我无法访问 url (http://localhost:8080/rest/hello) - 获取 404。

查看 tomcat 的日志,我找不到任何异常或错误,除了下一组行:

INFO: Scanning for root resource and provider classes in the packages:
sample
εαΘ 30, 2013 11:24:38 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
class sample.Hello
εαΘ 30, 2013 11:24:38 PM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.

我已经搜索了很多,并尝试遵循针对此错误的所有解决方案,但没有任何效果。

由于我是新手,我感觉我错过了一些非常基本的东西。任何想法要搜索什么?我错过了什么?这是一个简单的 hello world 应用程序,我感到非常沮丧和沮丧...

Java 类

package sample;

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 Hello {

// This method is called if TEXT_PLAIN is requested
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayHelloInPlainText() {
return "Hello world!";
}

// This method is called if HTML is requested
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHelloInHtml() {
return "<html> " + "<title>" + "Hello world!" + "</title>"
+ "<body><h1>" + "Hello world!" + "</body></h1>" + "</html> ";
}
}

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">

<display-name>rest</display-name>

<servlet>
<servlet-name>Jersey REST Service</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>sample</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

</web-app>

最佳答案

类似于这个 SO 问题:“No provider classes found: when running Jersey REST example application”。

消息“未找到提供者类”没有问题,无需担心。要使 URL http://localhost:8080/rest/hello 正常工作,您的 WAR 文件需要被称为 rest.war。然后 rest 成为上下文根。您在项目注释中定义的所有路径都相对于上下文根

关于java - 在 Tomcat 7 中访问 Jersey 应用程序时出现 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16845581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com