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 для теста, вы можете сделать пару вещей.
Вы можете вручную создать
ApplicationContext
и передать его на ДжерсиApplicationContext context = ... return new ResourceConfig(RestService.class) .property("contextConfig", context)
Если вы используете конфигурацию XML, то вы должны создать
ClassPathXmlApplicationContext
, Если вы используете конфигурацию Java, вы должны создатьAnnotationConfigApplicationContext
,Если вам нужна поддержка сервлет-контейнеров сервлетов, посмотрите пример в этом посте