Java Spring factory bean在使用前并不总是初始化

Java Spring factory bean在使用前并不总是初始化,java,spring,Java,Spring,我正在使用spring初始化我的bean。我已经配置了一个bean,打算将其用作工厂bean <bean id="jsServicesFactory" class="x.y.z.JSServicesFactory" /> 我有第二个bean,它使用这个工厂bean来设置它的一个属性 <bean id="batchManagerService" class="x.y.z.BatchManagerService"> ... <property name="portle

我正在使用spring初始化我的bean。我已经配置了一个bean,打算将其用作工厂bean

<bean id="jsServicesFactory" class="x.y.z.JSServicesFactory" />
我有第二个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:创建名为“batchManagerService”的bean时出错,该名称在ServletContext资源[/WEB-INF/context/root/batchManagerContext.xml]:设置bean属性“portletRegistry”时无法创建内部bean“jsServicesFactory$created70be70be”;嵌套异常为org.springframework.beans.factory.beancreatitionException:创建名为“jsServicesFactory$created70be70be”的bean时出错,该bean在ServletContext资源[/WEB-INF/context/root/batchManagerContext.xml]:bean实例化失败;嵌套异常为org.springframework.beans.factory.BeanDefinitionStoreException:factory方法[public final org.apache.jetspeed.components.portletregistry.portletregistry x.y.z.JSServicesFactory.getPortletRegistry]引发异常;嵌套异常是java.lang.NullPointerException

我已经尝试将depends=jsServicesFactory添加到我的bean batchManagerService中,但没有成功

有什么想法吗


谢谢

线索在堆栈跟踪中,尽管它埋得很深:

嵌套异常是 java.lang.NullPointerException

代码中的某些内容在bean初始化期间抛出了一个NPE,这在堆栈中向上传播,并在其他异常中重新包装


找到该NPE的根本原因,这将解决问题。

您好,感谢您的反馈。我相信NPE是指jsServicesFactory在使用之前还没有初始化,因此抛出NPE。不过,为了确保我已将日志记录添加到方法getPortletRegistry中。我将重新部署到Linux并让您知道结果。谢谢你好,我用日志消息再次测试了这个,我添加的只是日志消息,没有其他内容,这次我没有收到任何错误。这让我觉得这是一个时间问题或类似的问题?@aos很可能,是的,但我坚持认为这是您自己的代码中的一个NullPointerException,触发了Spring的级联异常。谢谢-您是正确的。我试图访问门户中的服务,但门户尚未完全联机。
<bean id="batchManagerService" class="x.y.z.BatchManagerService">
...
<property name="portletRegistry">
   <bean factory-bean="jsServicesFactory" factory-method="getPortletRegistry" />
</property>
     ...