Oracle SOA Suite 11g. ClassNotFoundException: oracle.bpm.bpmn.engine.instancemanagement.ejb.*
En un ambiente de cluster con Oracle SOA Suite 11g, es probable que te salgan errores como los siguientes:
Dec 23, 2014 3:18:04 PM CST> <Error> <Deployer> <BEA-149231> <Unable to set the activation state to true for the application 'soa-infra'.
weblogic.application.ModuleException: Exception activating module: EJBModule(fabric-ejb.jar)
Unable to deploy EJB: FacadeFinderBean from fabric-ejb.jar:
[J2EE:160101]Error: The ejb-link 'BPELActivityManagerBean' declared in the ejb-ref or ejb-local-ref 'ejb/local/bpel/CubeActivityManagerBean' in the application module 'fabric-ejb.jar' could not be resolved. The target EJB for the ejb-ref could not be found. Please ensure the link is correct.
at weblogic.ejb.container.deployer.EJBModule.activate(EJBModule.java:516)
at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:227)
at weblogic.application.internal.flow.DeploymentCallbackFlow$2.next(DeploymentCallbackFlow.java:542)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:175)
Truncated. see log file for complete stacktrace
Caused By: weblogic.deployment.EnvironmentException: [J2EE:160101]Error: The ejb-link 'BPELActivityManagerBean' declared in the ejb-ref or ejb-local-ref 'ejb/local/bpel/CubeActivityManagerBean' in the application module 'fabric-ejb.jar' could not be resolved. The target EJB for the ejb-ref could not be found. Please ensure the link is correct.
at weblogic.deployment.BaseEnvironmentBuilder.addEJBLinkRef(BaseEnvironmentBuilder.java:469)
at weblogic.ejb.container.deployer.EnvironmentBuilder.addEJBLocalReferences(EnvironmentBuilder.java:773)
at weblogic.ejb.container.deployer.EJBDeployer.activateEnvironment(EJBDeployer.java:1740)
at weblogic.ejb.container.deployer.EJBDeployer.activate(EJBDeployer.java:1423)
at weblogic.ejb.container.deployer.EJBModule.activate(EJBModule.java:495)
Truncated. see log file for complete stacktrace>
<Dec 23, 2014 3:18:05 PM CST> <Error> <Cluster> <BEA-000140> <Failed to deserialize statedump from server SOAServer1 with java.lang.ClassNotFoundException: oracle.bpm.bpmn.engine.instancemanagement.ejb.UserInitiateProcessCleanupRemote.
java.lang.ClassNotFoundException: oracle.bpm.bpmn.engine.instancemanagement.ejb.UserInitiateProcessCleanupRemote
at weblogic.application.internal.AppClassLoaderManagerImpl.loadApplicationClass(AppClassLoaderManagerImpl.java:164)
at weblogic.common.internal.ProxyClassResolver.resolveProxyClass(ProxyClassResolver.java:68)
at weblogic.common.internal.WLObjectInputStream.resolveProxyClass(WLObjectInputStream.java:76)
at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1491)
Truncated. see log file for complete stacktrace
La parte relevante, por la cual seguramente estarás con problemas, es esta:
Dec 23, 2014 3:18:04 PM CST> <Error> <Deployer> <BEA-149231> <Unable to set the activation state to true for the application 'soa-infra'.
Tu soa-infra no está arrancando bien. Si bien Weblogic llega a estar en estado RUNNING, la soa-infra no pudo arrancar bien.
Si tu escenario es un clúster de dos o mas nodos, en donde un nodo está levantando bien y el resto no. Entonces estás teniendo el problema descrito en este post.
Una vez que reconoces que la soa-infra no está levantando, seguramente verás los siguientes errores relacionados a los EJBs del engine de SOA/BPM:
Unable to deploy EJB: FacadeFinderBean from fabric-ejb.jar:
[J2EE:160101]Error: The ejb-link 'BPELActivityManagerBean' declared in the ejb-ref or ejb-local-ref 'ejb/local/bpel/CubeActivityManagerBean' in the application module 'fabric-ejb.jar' could not be resolved. The target EJB for the ejb-ref could not be found. Please ensure the link is correct.
Y luego una que puede ser engañosa:
java.lang.ClassNotFoundException: oracle.bpm.bpmn.engine.instancemanagement.ejb.UserInitiateProcessCleanupRemote.
Lo mas rápido es borrar/renombrar las carpetas tmp y la de cache, abajo del servidor manejado en cuestión. O bien de los servidores manejados que estén involucrados.
Por ejemplo: $MW_HOME\user_projects\domains\soa_domain\servers\<NombreDelServer>\tmp
$MW_HOME\user_projects\domains\soa_domain\servers\<NombreDelServer>\cache
Una vez que las borres, reinicia todo tu dominio y valida que los servidores levanten bien.
Si esta opción no funciona, entonces intenta haciendo un untarget de la app soa-infra de los nodos del cluster; reinicia todo el dominio y vuelve a hacer target de la app soa-infra a tu cluster. Finalmente vuelve a reiniciar.
Si esta opción tampoco funciona, realiza los siguientes pasos:
- Deten todo tu dominio
- Ve a la carpeta $MW_HOME\user_projects\domains\soa_domain\config y abre el archivo config.xml. Previo a esto hazle un backup
- Adentro de config.xml, busca una entrada similar a esta: <app-deployment>
<name>soa-infra</name>
<target>soa_cluster</target>
<module-type>ear</module-type>
<source-path>C:/oracle/11.1.1.6/Oracle_SOA1/soa/applications/soa-infra-wls.ear</source-path>
<deployment-order>350</deployment-order>
<security-dd-model>DDOnly</security-dd-model>
<staging-mode>nostage</staging-mode>
</app-deployment> - Comenta toda la entrada de app-deployment.
- Con esto lo que vamos a hacer es reiniciar el dominio, pero sin cargar a soa-infra
- Arranca tanto el admin como los nodos de tu cluster
- Para los nodos, realízalo en orden. Es decir, primero un nodo y así sucesivamente
- Una vez que arrancaron todos los nodos, para todo su dominio
- Con el dominio detenido, abre el config.xml y descomenta la entrada que revisamos en el paso 3
- Vuelve a arrancar tu dominio, una vez mas hazlo en orden. Y valida que todo levante bien.
¿Por qué sucede esto?
Mi teoría es que estás levantando mal tus nodos del clúster en dónde vive la soa-infra. Seguramente estas mezclando levantarlos via node manager y con los scripts. Mi sugerencia es que todo lo hagas vía el node manager.
Publicar un comentario