[英]Spring factory beans not always initialised before being used
我正在使用spring初始化我的bean。 我已经配置了一个打算用作工厂Bean的Bean。
<bean id="jsServicesFactory" class="x.y.z.JSServicesFactory" />
这是一个非常基本的类-它具有4个getter方法。 一个例子是
public final PortletRegistry getPortletRegistry() {
PortletRegistry registry = (PortletRegistry) JetspeedPortletServices
.getSingleton().getService("PortletRegistryComponent");
return registry;
}
我有第二个使用此工厂bean设置其属性之一的bean
<bean id="batchManagerService" class="x.y.z.BatchManagerService">
...
<property name="portletRegistry">
<bean factory-bean="jsServicesFactory" factory-method="getPortletRegistry" />
</property>
...
当我在RAD中启动服务器时,这一切都可以正常工作。 但是,当我部署到Linux时, 有时会出现以下错误
错误org.springframework.web.context.ContextLoader-上下文初始化失败org.springframework.beans.factory.BeanCreationException:创建在ServletContext资源[/WEB-INF/context/root/batchManagerContext.xml]中定义的名称为'batchManagerService'的bean时出错:设置bean属性'portletRegistry'时,无法创建内部bean'jsServicesFactory $ created#70be70be'; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:在ServletContext资源[/WEB-INF/context/root/batchManagerContext.xml]中定义的名称为'jsServicesFactory $ created#70be70be'的bean创建错误。 嵌套的异常是org.springframework.beans.factory.BeanDefinitionStoreException:工厂方法[公共最终org.apache.jetspeed.components.portletregistry.PortletRegistry xyzJSServicesFactory.getPortletRegistry()]引发了异常; 嵌套的异常是java.lang.NullPointerException
我试过在我的bean batchManagerService中添加depends-on =“ jsServicesFactory”,但是没有用。
有任何想法吗?
谢谢
线索在堆栈跟踪中,尽管埋在其中:
嵌套的异常是java.lang.NullPointerException
您的代码中的某些内容在Bean初始化期间引发了NPE,这正在扩展堆栈,并随即在其他异常中重新包装。
找到该NPE的根本原因,这应该可以解决该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.