Estoy tratando de averiguar cómo acceder a Spring beans de una subclase de JerseyTest. Extendiendo JerseyTest He logrado cargar el contexto de Spring en mis pruebas, pero no he descubierto cómo acceder al contexto de primavera. Mi configuración se ve así:Acceso a Spring beans en JerseyTest
public abstract class SpringJerseyTest extends JerseyTest {
public SpringJerseyTest() throws Exception {
super(new WebAppDescriptor.Builder("com.acme.resources")
.contextPath("/")
.contextParam("contextConfigLocation", "classpath:applicationContext.xml")
.servletClass(SpringServlet.class)
.contextListenerClass(ContextLoaderListener.class)
.build());
}
}
La configuración está utilizando el Grizzly Web Container predeterminado. Nunca he usado antes del grisáceo, pero en el embarcadero me gustaría hacer algo como esto:
public Object getSpringBean(String beanName) {
WebAppContext context = (WebAppContext) server.getHandler();
ServletContext sc = context.getServletContext();
WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(sc);
return applicationContext.getBean(beanName);
}
Podría alguien me punto en la dirección correcta?
No estoy seguro si hay otra forma de evitar esto, pero he encontrado esta entrada de blog: http://geek.riffpie.com/2010/ 08/09/unit-testing-restful-jersey-services-pegado-junto-con-resorte/Usando el jersey-test-support ahora puedo usar @Autowired en mis pruebas también. – ebaxt
Parece que el enlace anterior está roto, enlace actualizado: http://geek.riffpie.com/unit-testing-restful-jersey-services-glued-together-with-spring/ – crobicha