J'utilise spring pour initialiser mes beans. J'ai configuré un bean que j'ai l'intention d'utiliser comme un factory bean.
<bean id="jsServicesFactory" class="x.y.z.JSServicesFactory" />
C'est une classe très basique - qui a 4 méthodes getter. Un exemple est
public final PortletRegistry getPortletRegistry() {
PortletRegistry registry = (PortletRegistry) JetspeedPortletServices
.getSingleton().getService("PortletRegistryComponent");
return registry;
}
J'ai un deuxième haricot qui utilise ce haricot d'usine pour définir une de ses propriétés.
<bean id="batchManagerService" class="x.y.z.BatchManagerService">
...
<property name="portletRegistry">
<bean factory-bean="jsServicesFactory" factory-method="getPortletRegistry" />
</property>
...
Lorsque je démarre mon serveur dans RAD, tout fonctionne parfaitement. Cependant, lorsque je déploie sur Linux, je parfois obtenir l'erreur suivante
ERROR org.springframework.web.context.ContextLoader - L'initialisation du contexte a échoué. org.springframework.beans.factory.BeanCreationException : Erreur lors de la création du bean avec le nom 'batchManagerService' défini dans la ressource ServletContext [/WEB-INF/context/Root/batchManagerContext.xml] : Cannot create inner bean 'jsServicesFactory$created#70be70be' while setting bean property 'portletRegistry' ; nested exception is org.springframework.beans.factory.BeanCreationException : Erreur lors de la création du bean avec le nom 'jsServicesFactory$created#70be70be' défini dans la ressource ServletContext [/WEB-INF/context/Root/batchManagerContext.xml] : L'instanciation du bean a échoué ; l'exception imbriquée est org.springframework.beans.factory.BeanDefinitionStoreException : La méthode Factory [public final org.apache.jetspeed.components.portletregistry.PortletRegistry x.y.z.JSServicesFactory.getPortletRegistry()] a généré une exception ; l'exception imbriquée est java.lang.NullPointerException.
J'ai essayé d'ajouter depends-on="jsServicesFactory" à mon bean batchManagerService mais cela n'a pas fonctionné.
Des idées ?
Merci