gpt4 book ai didi

maven - 没有 web.xml 的 Jersey 设置

转载 作者:行者123 更新时间:2023-12-03 18:33:11 24 4
gpt4 key购买 nike

我正在尝试设置一个简单的 REST Web 应用程序,它使用 Jersey .在文档中,似乎我应该能够在不使用 web.xml 文件的情况下创建我的应用程序。来自 the site :

JAX-RS provides a deployment agnostic abstract class Application for declaring root resource and provider classes, and root resource and provider singleton instances. A Web service may extend this class to declare root resource and provider classes.



下面的示例显示了此代码:
public class MyApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(HelloWorldResource.class);
return s;
}
}

对我来说,这表示我可以使用 Application类来完成我所有的 servlet 设置。这似乎是读取我的资源类的注释并设置正确的 URL 处理机制的配置。那是对的吗?我不需要做任何其他设置?

我问是因为我创建了以下内容但它不起作用(我从 localhost:8080/{context}/test 得到 404):

pom.xml:
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.12</version>
</dependency>

<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.12</version>
</dependency>

<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.12</version>
</dependency>

<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>

应用类:
@ApplicationPath("/")
public class JerseyTestApp extends Application
{
@Override
public Set<Class<?>> getClasses()
{
final Set<Class<?>> classes = new HashSet<>();
classes.add(JerseyTestController.class);
return classes;
}
}

资源类:
@Path("/test")
public class JerseyTestController
{
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getTestMsg()
{
return "It works";
}
}

最佳答案

哑的。我所要做的就是包含 jersey-servlet jar ,按照 this answer 的规定.

关于maven - 没有 web.xml 的 Jersey 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17816561/

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