¿ Cual serí ala mejor la forma de hacer esto ???
Una buena opción es hacer el ambiente de desarrollo lo más parecido a
como funciona en los clusters. Por omisión, JBoss tiene ciertos
comportamientos para acelerar el rendimiento en modo no-cluster. Sin
embargo a la hora de hacer el cluster vienen los dolores de cabeza y se
pagan las penalizaciones. Dos de esas situaciones son:
1. Parámetros por referencia en los EJB.
2. "flat class loading" (todos comparten todo).
Para hacer las cosas más fáciles a futuro, los parámetros en los EJB
deberían pasarse por valor y los componentes usar "isolated class
loaders" (cargadores de clases independientes para cada componente:
War, EJB-JAR ...).
Aquí pongo un enlace que explica como cambiar esas configuraciones (es
simple).
http://wiki.jboss.org/wiki/Wiki.jsp?page=ClassLoadingConfiguration
El tema de la carga de clases en JBoss merece un buen estudio para
evitar decir "que extraño ese error" por la falta de conocimiento.
Enlace también:
http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossClassLoadingUseCases
Finalmente, a mi parecer, la forma más conveniente de referenciar las
thirdparty libraries para tener puntos a favor en estos casos, es usar
las librerías en el EAR y referenciarlas en el Clash-Path del META-INF
en cada componente WAR, EJB-JAR que esté dentro del EAR. Con estas
prácticas creo que se tendría un buen acercamiento al deploy final ;)
Rulas.
La solución se basa en redirigir los puertos de cada instancia de
JBoss, esto se hace utilizando el descriptor
{JBOSS_HOME}/docs/examples/binding-manager/sample-bindings.xml.
1. Copie la carpeta all 2 veces con nombres diferentes, pe. all1, all2
2. En el conf/jboss-services.xml de cada copia (all1 y all2) descomente
la sección "Service Binding", y cambie el atributo service-name,
ports-01 en all1 y ports-02 en all2.
3. Elimine el archivo remoting-service.xml de las carpetas
{all,all1,all2}/deploy, que no es compatible con la configuración del
Service Binding.
Bueno en el jboss.xml los EJB deben ser clustered. Inicie cada
instancia como:
sh run.sh -c all
sh run.sh -c all1
sh run.sh -c all2
Y listo un cluster de 3 nodos...