filenotfoundexception под управлением jerseyTest - отсутствует applicationContext.xml

Я провожу тест на Hello World, пытаясь следовать Jersey Framework в моей весенней Java-программе.

Я продлил JerseyTest, но я получаю ошибку выше. Пример Джерси дает ссылку, кажется, не помогает.

public class SimpleTest extends JerseyTest {



@Override
protected Application configure() {
    return new ResourceConfig(RestService.class);
}

@Test
public void test() {
    final String hello = target("\service\hello").request().get(HelloModel.class);
    assertEquals("Hello World!", hello);
}
}

2 ответа

С Джерси 2.26 зависимость изменилась на jersey-spring4, но вымывать ответ немного больше, если вы не хотите раскручивать весь контекст Spring.

Создайте объект:

    final ResourceConfig resourceConfig = new ResourceConfig(restResource);

В моем случае мне просто нужен пустой контекст:

    final AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
    context.refresh();
    resourceConfig.property("contextConfig", context);

Это позволило JerseyTest бежать успешно.

Это произойдет, если у вас есть зависимость jersey-spring3. Поведение по умолчанию - искать этот файл applicationContext.xml (который является вашей конфигурацией контекста Spring).

Если вы хотите настроить Spring для теста, вы можете сделать пару вещей.

  1. Вы можете вручную создать ApplicationContext и передать его на Джерси

    ApplicationContext context = ...
    return new ResourceConfig(RestService.class)
        .property("contextConfig", context)
    

    Если вы используете конфигурацию XML, то вы должны создать ClassPathXmlApplicationContext, Если вы используете конфигурацию Java, вы должны создать AnnotationConfigApplicationContext,

  2. Если вам нужна поддержка сервлет-контейнеров сервлетов, посмотрите пример в этом посте

Другие вопросы по тегам