Tengo 2 proyectos diferentes de Java, uno tiene 2 clases: dynamicbeans.DynamicBean2
y dynamic.Validator
.ClassCastException al convertir a la misma clase
Por otro proyecto, me carga tanto de estas clases de forma dinámica y almacenarlos en una Object
class Form {
Class beanClass;
Class validatorClass;
Validator validator;
}
entonces seguir adelante y crear un objeto Validator
usando validatorClass.newInstance()
y lo almacena en validator
entonces crear un grano objeto también usando beanClass.newInstance()
y agréguelo a la sesión.
portletRequest.setAttribute("DynamicBean2", bean);
Durante el ciclo de vida del proyecto Form
, me llaman validator.validate()
que carga el objeto bean previamente creado a partir de la sesión (Estoy corriendo Websphere Portal Server). Cuando intento devolver este objeto a DynamicBean2
, falla con ClassCastException.
Cuando me tire el objeto de nuevo fuera de la sesión utilizando
faces.getApplication().createValueBinding("#{DynamicBean2}").getValue(faces);
y comprobar la clase de ella usando .getClass()
consigo dynamicbeans.DynamicBean2
. Esta es la clase en la que quiero lanzarla; sin embargo, cuando intento, obtengo ClassCastException.
¿Alguna razón por la que estoy recibiendo esto?
Mi suposición (no tengo experiencia con el servidor de portal) es que está cargando la clase en diferentes portlets, cada uno con su propio cargador de clases. A continuación, coloca la instancia en un objeto de sesión y cuando la recupera del portlet incorrecto (desde el que se creó) tiene su excepción. Supongo (basado en la experiencia de WAS) que necesita colocar el contenedor con su clase en algún lugar superior de la jerarquía de carga de clases para que lo cargue un padre de ambos portlets clasificadores. – Robin
es decir, el número 2, con detalles. – Robin
@waxwing Esto ha pasado bastante tiempo. Pero, ¿te importaría elaborar la primera solución posible que hayas declarado? Siento que un problema que estoy teniendo se puede resolver con esto. ¡Gracias por adelantado! –