2013-11-18 4 views
3

Я пытаюсь настроить тест Джерси (2.4), используя контекст Spring, используя профили Spring.Jersey 2.4 Test with Spring Context Profile - DI не работает

Мой тестовый класс это:

public class OrderControllerTest extends JerseyTest { 

    @Override 
    protected Application configure() { 
     enable(TestProperties.LOG_TRAFFIC); 
     enable(TestProperties.DUMP_ENTITY); 
     ApplicationResourceConfig config = new ApplicationResourceConfig(); 
     config.property("contextConfigLocation", "classpath:spring-context.xml"); 
     config.property("spring.profiles.active", "development"); 
     return config; 
    } 

... 

Где ApplicationResourceConfig класс это:

public class ApplicationResourceConfig extends ResourceConfig { 

    public ApplicationResourceConfig() { 
     register(RequestContextFilter.class) 
     .register(OrderController.class); 
    } 

... 

и OrderController класс:

@Component 
@Path("/order") 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_JSON) 
public class OrderController { 

    @Autowired 
    private OrderService orderService; 

    @PUT 
    public Response createOrder(String order) { 
     return Response.ok().build(); 
    } 
... 

Проблема заключается в том, что Д. не работает (orderService - null). DI хорошо работает в других тестах (не на основе Джерси). Я полагаю, что причина может быть, что весна профиль не загружен правильно, так как пружинные журналы говорят:

426 [main] DEBUG org.springframework.core.env.PropertySourcesPropertyResolver - Searching for key 'spring.profiles.active' in [systemProperties] 
426 [main] DEBUG org.springframework.core.env.PropertySourcesPropertyResolver - Searching for key 'spring.profiles.active' in [systemEnvironment] 
426 [main] DEBUG org.springframework.core.env.PropertySourcesPropertyResolver - Could not find key 'spring.profiles.active' in any property source. Returning [null] 

Есть ли кто-нибудь, кто может представить предложения по этому вопросу, пожалуйста?

+0

возможно дубликат [пружинные профилей и тестирования] (http://stackoverflow.com/questions/13364112/spring-profiles-and-testing) – nobeh

+0

@nobeh Вы внимательно прочитайте мой вопрос? _ DI хорошо работает в других тестах (не на основе Джерси) _ – user2664655

+0

Возможно, я ошибаюсь. Если проблема заключается в интеграции Jersey 2+ с Spring Java Config, взгляните на https://java.net/jira/browse/JERSEY-2038 – nobeh

ответ

1

Я создал пример приложения, как интегрировать Jersey 2 с Spring Framework, а также как проверить это приложение. Надеюсь, это полезно.

https://github.com/Hylke1982/jersey2-spring-test-example

- Редактировать Я также создал новую систему тестирования, позволяет использовать тест с Джерси, Spring Framework и Mockito.

https://github.com/Hylke1982/jersey-spring-exposed-test-framework-core

+0

Спасибо, но проблема заключается в конфигурации контекста Spring в тестах Джерси ** с использованием профилей Spring ** – user2664655

Смежные вопросы