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

我有一个简单的Spring& Jersey应用程序,非常适合通过简单的Resource消费请求.但是,我想返回一个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;
    }
}

扫描对象是一个简单的实体Bean对象.

mvn依赖项是:

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

有谁知道为什么我会收到没有WebApplication提供程序的异常?关于如何解决的任何想法?

谢谢

解决方法:

您还需要在类路径上也有jersey-server jar.并且您需要确保所有jar都来自相同版本,否则Jersey运行时将无法使用提供的类.

另外(在这里很可能不相关,但是..)模块结构最近发生了变化-Servlet依赖项已分离到新模块中.因此,如果您使用的是servlet,则可能需要依赖jersey-servlet(取决于jersey-server).

上一篇:从Jersey REST客户端调用时,java-405错误代码


下一篇:java – 如何在Jersey中使用自定义验证