Esteban Hernández ha escrito:
> Surge un problema cuando se desea desplegar aplicaciones en diferentes
> nodos; Cada aplicación tiene su propio ambiente para cargar su
> classsloader, pero en el momento de desarrollar una aplicación, es
> dificil simular esto,
> ¿ 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.