,由於某種原因在我們的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