Java Spring启动测试-请求/会话范围的bean
如中所回答的,我假设在使用@webappconfiguration(或@WebIntegrationTest for spring boot)时可以在测试类中注入请求/会话bean。我工作不努力 这是我的测试类配置:Java Spring启动测试-请求/会话范围的bean,java,spring,junit,spring-boot,spring-test,Java,Spring,Junit,Spring Boot,Spring Test,如中所回答的,我假设在使用@webappconfiguration(或@WebIntegrationTest for spring boot)时可以在测试类中注入请求/会话bean。我工作不努力 这是我的测试类配置: @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = SocialInfoSrvAppConfig.class) @WebIntegrationTest //@Integr
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SocialInfoSrvAppConfig.class)
@WebIntegrationTest
//@IntegrationTest
//@WebAppConfiguration
public class FacebookServiceTest {
...
@Inject
private Facebook facebook;
...
}
这是我的应用程序配置:
@SpringBootApplication
// @EnableResourceServer
@EnableJms
@EnableSocial
@EnableWebMvc
public class SocialInfoSrvAppConfig extends SpringCommonApp {
}
我得到这个错误:
org.springframework.beans.factory.BeanCreationException:创建名为“scopedTarget.facebook”的bean时出错:当前线程的作用域“request”未处于活动状态;如果您想从一个单体引用它,请考虑为这个bean定义一个作用域代理;嵌套异常为java.lang.IllegalStateException:未找到线程绑定请求:您是在实际web请求之外引用请求属性,还是在原始接收线程之外处理请求?如果您实际上在web请求中操作,并且仍然收到此消息,那么您的代码可能在DispatcherServlet/DispatcherPortlet之外运行:在这种情况下,请使用RequestContextListener或RequestContextFilter公开当前请求
好像我不能将这个请求范围的bean注入到我的测试中
我遗漏了什么?我有同样的问题,如果在注入的对象中使用线程局部变量,也会出现同样的问题。你找到正确的解决方案了吗?还没有。在回到本部分之前,请先完成其他任务。希望在此之前我们能得到一些帮助。请向我们展示
Facebook
bean的确切配置(即@bean
方法的完整声明,包括该方法上的所有注释)。我询问的原因是您可能忽略了将其配置为作用域代理。Facebook bean是spring-social的一部分。无论如何,我为Facebook bean制作了一个包装,并将其配置为代理:-@Component@Scope(proxyMode=ScopedProxyMode.INTERFACES,scopeName=“request”)公共类FacebookProxyImpl实现FacebookProxy{…}----也不能注射。