gpt4 book ai didi

java - Jersey 总是返回 404

转载 作者:行者123 更新时间:2023-12-02 04:25:14 26 4
gpt4 key购买 nike

我已经建立了一个用于练习、学习和测试的项目,代码中没有错误,但是无论我如何努力,我都无法找出testGet.java中GET方法的URI路径,那就是一个测试页面,我总是收到404错误,我在Google上搜索了几个小时,但没有找到答案。我的代码在这里 https://github.com/abcdef123ghi/jerseytest

这是我的 web.xml

<!DOCTYPE web-app 
PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
<display-name>Restful Web Application</display-name>
<servlet>
<servlet-name>Restful Web Application</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>service</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Restful Web Application</servlet-name>
<url-pattern>/webapi/*</url-pattern>
</servlet-mapping>
</web-app>

这是我的 testGET.java

package service;

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


@Path("/test")
public class testGet {

@GET
//@Path("/test")
@Produces({MediaType.APPLICATION_JSON+ ";charset=utf-8"})
public String Hello()
{
return "Test";
}
}

问题

有人从事过相关的工作吗?我做错了什么吗?我认为,当使用多个@Path(一个在类中,另一个在方法中)时,这可能是一个错误。如有任何提示,我们将不胜感激!

问候

最佳答案

您是否使用 Maven 来获取依赖项?如果没有,我建议您使用它,它会让您的生活变得更轻松!

我们可以指出的一件事是您正在使用jersey 2.19。但是,在您的 web.xml 中,您正在使用

<servlet>
<servlet-name>Restful Web Application</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>service</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

这是来自jersey 1.x的。在jersey 2.x中,它已更改为:

<servlet>
<servlet-name>Restful Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>service</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

然后尝试将您的 .jar 添加到 WebContent/WEB-INF/lib (按照建议 here )

但是,您的 testGet.java 应该是正确的(请注意,我会将其重命名为 TestGet.java)。当您启动服务时,您应该能够通过以下方式访问:http://host:port/rest/test

希望对你有帮助!

关于java - Jersey 总是返回 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32272710/

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