Джерси Нет поставщика WebApplication, когда добавлена ​​зависимость jersey- * - PullRequest
11 голосов
/ 29 декабря 2011

У меня есть простое приложение Spring & Jersey, которое отлично работает для приема запросов через простой ресурс. Однако я хотел бы вернуть ответ JSON, содержащий простую сериализацию объекта JSON. Для этого я добавил зависимость maven для jersey-json. Однако, как только я добавляю эту зависимость, я получаю эту ошибку при запуске сервера:

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? Любые мысли о том, как я мог бы решить это?

Спасибо

Ответы [ 2 ]

24 голосов
/ 05 января 2012

У вас также должен быть jar-сервер на вашем classpath.И вам нужно убедиться, что все ваши банки имеют одну и ту же версию, иначе среда выполнения Джерси не сможет использовать предоставленные классы.

Дополнительно (скорее всего, здесь не актуально, но ..) естьнедавнее изменение в структуре модуля - зависимости сервлета были разделены на новые модули.Поэтому, если вы используете сервлеты, вы можете зависеть от jersey-servlet (который зависит от jersey-server).

6 голосов
/ 02 августа 2014

У меня тоже была эта проблема.Проблема была решена с помощью той же версии для зависимостей maven "jersey-json" и "jersey-servlet".

EX:

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.13</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-servlet</artifactId>
    <version>1.13</version>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...