json - Jersey 在添加 jersey-* 依赖项时不存在 WebApplication 提供程序

标签 json spring jersey

我有一个简单的 Spring & Jersey 应用程序,它非常适合通过简单的资源来使用请求。但是,我想返回一个 JSON 响应 - 包含一个对象的简单 JSON 序列化。为此,我为 jersey-json 添加了一个 maven 依赖项。但是,一旦添加此依赖项,我就会在服务器启动时收到此错误:

com.sun.jersey.api.container.ContainerException: No WebApplication provider is present  at      
     com.sun.jersey.spi.container.WebApplicationFactory.createWebApplication(WebApplicationFactory.java:69) at
     com.sun.jersey.spi.container.servlet.ServletContainer.create(ServletContainer.java:391)

我并不完全清楚提供者到底是什么,但我很确定应该找到一个默认提供者。

为了完整起见,这是我的资源:

@Path("/scan")
@Resource
@Component
public class ScanResource {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/{barcode}")
    public List<Scan> getScansForBarcode(@PathParam("barcode") Long barcode){
        ..snip..
        return results;
    }
}

Scan 对象是一个简单的 Entity Bean 对象。

mvn依赖是:

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

有谁知道我为什么会得到 No WebApplication provider is present 异常?关于如何解决它的任何想法?

谢谢

最佳答案

您的类路径中也需要有 jersey-server jar。而且你需要确保你所有的 jars 都来自同一个版本,否则 Jersey 运行时将无法使用提供的类。

另外(很可能与这里无关,但是..)模块结构最近发生了变化 - servlet 依赖项被分离到新模块。因此,如果您使用 servlet,您可能希望依赖 jersey-servlet(它依赖于 jersey-server)。

关于json - Jersey 在添加 jersey-* 依赖项时不存在 WebApplication 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8662919/

相关文章:

javascript - Json 显示来自网站的数据仅显示未定义

php - JSON 字符串到 PHP JSON 数组

java - 使用SVN作为Spring Cloud Config服务器时出错

javascript - Sencha 触摸列表分页

javascript - 控制台错误: No 'Access-Control-Allow-Origin' header is present on the requested resource

javascript - 使用 json 的 java 脚本创建类似 Hashmap 的实现

java - 它的用途 <sf :errors path ="" cssClass ="error"> in jsp?

java - JBAS018062 : 'sessionModelDataMB' attribute with type 'au.com.test.SessionModelData' cannot be replicated

android - Jersey REST 服务器安全和安卓客户端安全

java - Spring Boot 和 Jersey 产生 ClassNotFound