gpt4 book ai didi

java - 在 Glassfish 上调用 Jersey 2 REST 端点时出现 404

转载 作者:行者123 更新时间:2023-11-30 06:57:55 25 4
gpt4 key购买 nike

这是我的 web.xml

<servlet>
<servlet-name>Simulator HTTP API</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Simulator HTTP API</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>

这是我的简单网络服务:

@Path("partner")
public class PartnerAPI {

@Path("/mt")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sendMT() {
return "Sent";
}

}

当我这样调用它时:

http://localhost:8080/myprojectname/partner/mt

我发现 404 错误 mot,我做错了什么?

更新

这是我的专家

<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.22.1</version>
</dependency>

最佳答案

您在 Jersey 2 中有不同的部署选项:

如果你想通过 web.xml 来做到这一点,你必须添加一个 init-param 来指定应该扫描哪些包:

<servlet>
<servlet-name>Simulator HTTP API</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>insert.packagename.where.your.class.is.here</param-value>
</init-param>
</servlet>

另一种选择是创建一个基本类来配置您的 REST 应用程序。

这看起来像这样:

import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;

@ApplicationPath("/test")
public class YourApplication extends ResourceConfig {
public YourApplication() {
this.packages("insert.packagename.where.your.class.is.here");
}
}

确保使用您的 PartnerAPI 类所在的包名称更新字符串。

然后将 @ApplicationPath 中的值添加到您的 URL。
该链接将如下所示:http://localhost:8080/myprojectname/test/partner/mt

更多信息:Jersey docs: Chapter 4. Deploying a RESTful Web Service

关于java - 在 Glassfish 上调用 Jersey 2 REST 端点时出现 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33173904/

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