java.io.InvalidClassException: com.genexus.internet.GXNavigationHelper; local class incompatible:

402 views
Skip to first unread message

Demetrio

unread,
Sep 16, 2014, 3:36:51 PM9/16/14
to jav...@googlegroups.com

Buenas tardes.

Trabajo con Jdk 1.6 u45.

Tengo un servlet que debo ejecutar por medio de un BALANCEADOR DE CARGA como es el caso del Terracota.

Cuando tengo una sola aplicacion funciona perfecto, pero cuando tengo otra me registra inmediatamente el siguiente error:


type Informe de Excepción

mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

javax.servlet.ServletException: java.lang.AssertionError: java.io.InvalidClassException: com.genexus.internet.GXNavigationHelper; local class incompatible: stream classdesc serialVersionUID = 2608956804836620190, local class serialVersionUID = -7491657321767881124
	at org.terracotta.cache.serialization.ObjectStreamClassSerializer.getObjectStreamClassFor(ObjectStreamClassSerializer.java:151)
	at org.terracotta.cache.serialization.DsoSerializationStrategy$OIS.readClassDescriptor(DsoSerializationStrategy.java:116)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1564)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
	at org.terracotta.cache.serialization.DsoSerializationStrategy.deserialize(DsoSerializationStrategy.java:58)
	at com.terracotta.session.SerializedAttributeStore$SerializedAttribute.get(SerializedAttributeStore.java:102)
	at com.terracotta.session.SerializedAttributeStore$SerializedAttributeWithCache.get(SerializedAttributeStore.java:137)
	at com.terracotta.session.SerializedAttributeStore.unwrap(SerializedAttributeStore.java:79)
	at com.terracotta.session.SerializedAttributeStore.get(SerializedAttributeStore.java:37)
	at com.terracotta.session.SessionData.getAttribute(SessionData.java:339)
	at com.terracotta.session.SessionData.getValue(SessionData.java:344)
	at com.genexus.webpanels.HttpContextWeb.getSessionValue(Unknown Source)
	at com.genexus.internet.HttpContext.getNavigationHelper(Unknown Source)
	at com.genexus.internet.HttpContext.pushCurrentUrl(Unknown Source)
	at com.genexus.internet.HttpContext.setDefaultTheme(Unknown Source)
	at main_impl.initweb(main_impl.java:85)
	at main_impl.webExecute(main_impl.java:90)
	at com.genexus.webpanels.GXWebObjectBase.doExecute(Unknown Source)
	at main.doExecute(main.java:31)

Alguna idea del probema y como solucionarlo.

___________________________
Un Abrazo
Demetrio

Pablo Lillia

unread,
Sep 16, 2014, 5:17:47 PM9/16/14
to jav...@googlegroups.com
Demetrio,
por el stacktrace, no es solo un servlet, es una aplicación web en Java
creada con Genexus.

El error dice que hay una incompatibilidad de serialVersionUID entre dos
versiones de la clase com.genexus.internet.GXNavigationHelper

Esto pasa cuando una instancia de una clase se serializa con una versión
de la clase, y luego se intenta deserializar con otra versión
incompatible de la misma clase, lo cual es mala idea y lanzará este error.

Un par de posibilidades (entre otras) muy probables:

a) que hay distintas versiones de la aplicación en los nodos, con
distintas dependencias (jars) de GX.

b) que hay más de una aplicación web compartiendo el mismo classpath en
tu servidor de aplicaciones, y con distintas versiones de los jars de GX.

En caso que no puedas resolverlo, te recomiendo contactar al soporte de
Genexus. No es un entorno para nada gratuito ni abierto, y deberían
brindarte soporte para sus herramientas.

Slds.-
Pablo
Reply all
Reply to author
Forward
0 new messages