Этот вопрос является следующим из предыдущего вопроса Specify Custom Application Context.Получить управляемый bean-компонент из контейнера JerseyTest с джерси-spring3
Мы переносим некоторые из наших служб передачи данных с Джерси 1.x, используя Джерси-весну на Джерси 2.x, используя джерси-spring3.
У нас есть несколько тестовых классов, которые наследуются от JerseyTest. Некоторые из этих классов используют пользовательские файлы applicationContext.xml, которые не указаны в файле web.xml.
Для объективных издевательских целей мы будем издеваться над некоторыми компонентами в наших ресурсах Jersey.
В Джерси 1.x мы могли издеваться объекты в контексте файла приложения с помощью
<bean id="mockBean" class="org.easymock.EasyMock"
factory-method="createStrictMock" autowire="byName">
<constructor-arg index="0" value="com.xxx.xxx.ClassToMock" />
</bean>
и получить эти издевались экземпляры следующим
ClassToMock obj = (ClassToMock)ContextLoader
.getCurrentWebApplicationContext()
.getAutowireCapableBeanFactory()
.getBean("mockBean");
Как можно же быть достигнуто с Джерси 2. x используя трикотаж-весна3?
Я прочесал через API docs, user guides и некоторые из sources, но не смог найти ответа.
спасибо.
EDIT:
Мы будем использовать издевались бобы внутри наших JAX-RS ресурсов. У нас есть сервисные интерфейсы, которые являются @Autowired
в наших ресурсах.
например.
@Path(ProductResource.RESOURCE_PATH)
@Component
@Scope("prototype")
public class ProductResource
extends GenericResource<Product, BaseModel> {
/*
* Members
*/
public static final String RESOURCE_PATH = "product/";
@Autowired
protected ProductService productService;
...
Мы хотим высмеять и установить ожидания от этих услуг.
например.
<bean id="productService" class="org.easymock.EasyMock"
factory-method="createStrictMock">
<constructor-arg index="0"
value="com.xxx.xxx.service.ProductService" />
</bean>
Можете ли вы проиллюстрировать это на примере? (Как/Когда/Где вы используете фальшивый компонент? Это внутри ресурса JAX-RS?) Вам нужно точно «WebApplicationContext» или любой «ApplicationContext» достаточно? –
Либо «WebApplicationContext», либо «ApplicationContext» будет в порядке. Который когда-либо дал бы нам указатель на компонент, который был введен в ресурсы JAX-RS. –