2013-05-08 4 views
0

У меня есть jboss 5.1 AS, в котором я пытаюсь реализовать репликацию сеанса с помощью сериализации memcached и kryo. Все работает нормально, но у меня есть страница в моем приложении, у которой есть некоторые функции гибкости. Когда я нажимаю на этой странице в графическом интерфейсе, Kryo сериализации failes со следующей трассировки стека:jboss memcacehd kryo flex

Caused by: com.esotericsoftware.kryo.SerializationException: Unable to serialize object of type: flex.messaging.HttpFlexSession 
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:493) 
    at com.esotericsoftware.kryo.serialize.MapSerializer.writeObjectData(MapSerializer.java:104) 
    at de.javakaffee.kryoserializers.CopyForIterateMapSerializer.writeObjectData(CopyForIterateMapSerializer.java:56) 
    at com.esotericsoftware.kryo.Serializer.writeObject(Serializer.java:43) 
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:520) 
    ... 23 more 
Caused by: com.esotericsoftware.kryo.SerializationException: Unable to serialize object of type: flex.messaging.SessionMetricsTracker 
Serialization trace: 
destroyedListeners (flex.messaging.HttpFlexSession) 
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:493) 
    at com.esotericsoftware.kryo.serialize.CollectionSerializer.writeObjectData(CollectionSerializer.java:86) 
    at de.javakaffee.kryoserializers.CopyForIterateCollectionSerializer.writeObjectData(CopyForIterateCollectionSerializer.java:46) 
    at com.esotericsoftware.kryo.serialize.FieldSerializer.writeObjectData(FieldSerializer.java:175)at com.esotericsoftware.kryo.serialize.ReferenceFieldSerializer.writeObjectData(ReferenceFieldSerializer.java:52) 
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:489) 
    Caused by: com.esotericsoftware.kryo.SerializationException: Unable to serialize object of type: org.jboss.mx.notification.ListenerRegistry 
Serialization trace: 
registries (org.jboss.mx.notification.MBeanServerListenerRegistry) 
listeners (org.jboss.mx.server.MBeanServerImpl) 
mbeanServer (org.jboss.classloader.spi.ClassLoaderDomain) 
domain (org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy) 
delegate (org.jboss.classloader.spi.DelegateLoader) 
loader (org.jboss.classloader.spi.base.BaseClassLoader) 
classLoader (flex.messaging.MessageBroker) 
messageBroker (flex.messaging.SessionMetricsTracker) 
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:493) 

Я застрял в течение многих дней, и теперь не в состоянии исправить проблемы. Пожалуйста, помогите

ответ

0

Чтобы сериализовать HTTPSession, вам необходимо сериализовать HttpFlexSession, и это, вероятно, не сериализуемо (или вы используете строгую конфигурацию kryo, отключив сериализацию на объектах Serializable).

Вы должны предоставить Kryo класс сериализовать HttpFlexSession:

Kryo kryo = new Kryo(); 
kryo.register(HttpFlexSession.class, new HttpFlexSessionSerializer(kryo)); 

Тогда вам нужно реализовать HttpFlexSessionSerializer.java, которые должны продлить Serializer, то вы должны быть в состоянии сериализовать гибкую сессию Kryo.

Смежные вопросы