,由于某种原因在我们的JBOSS Web应用程序,我们无法得到ServletContext
进入我们的bean:春不注入的ServletContext
@Component("assembler")
public class DefaultAssemblerStrategy implements AssemblerStrategy//, ServletContextAware
{
@Autowired//(required=false)
private ServletContext servletCtxt;
public void setServletContext(ServletContext servletContext)
{
System.out.println("~~~~~~~~~~~~setServletContext");
servletCtxt = servletContext;
}
注意这是实际的Web服务器上不在JUnit测试用例运行期间。
如果我尝试了自动装配Autowired我得到这个错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'assembler': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.servlet.ServletContext com.ibm.retail.xc.maestro.web.theme.impl.DefaultAssemblerStrategy.servletCtxt; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [javax.servlet.ServletContext] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1073) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
如果我实现ServletContextAware
它只是空...
如何以及在哪里配置了应用程序上下文? – skaffman 2012-03-09 15:51:37
我们有一个自定义的dispatcherservlet,并且正常在web.xml中。我已经能够自动装载ApplicationContext,而不是ServletConfig。 – arinte 2012-03-09 16:11:19
嗯,这个错误对我来说很有意义,除非你在Spring配置中有一个定义为bean的'ServletContext'。现在,'ServletContextAware'应该可以工作,但它依赖于正确的配置。 – madth3 2012-03-09 16:13:38