2010-10-01 16 views
6

I (intento de) utilizar drools para procesar mis reglas de fijación de precios. Pero cuando trato de ejecutar las reglas de la excepción siguiente:Causas posibles de "StreamCorruptedException: encabezado de secuencia no válida"

java.lang.RuntimeException: KnowledgeAgent exception while trying to deserialize KnowledgeDefinitionsPackage 
    at org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:418) 
    at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:120) 
    at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:109) 
    at com.sapienter.jbilling.server.pluggableTask.PluggableTask.readKnowledgeBase(PluggableTask.java:115) 
    at com.sapienter.jbilling.server.rule.RulesBaseTask.executeRules(RulesBaseTask.java:57) 
    at com.sapienter.jbilling.server.item.tasks.RulesPricingTask2.getPrice(RulesPricingTask2.java:81) 
    at com.sapienter.jbilling.server.item.ItemBL.getPrice(ItemBL.java:357) 
[...many not so interesting lines...] 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 
    at java.lang.Thread.run(Thread.java:619) 
Caused by: java.io.StreamCorruptedException: invalid stream header: 3C3F786D 
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783) 
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280) 
    at org.drools.common.DroolsObjectInputStream.<init>(DroolsObjectInputStream.java:55) 
    at org.drools.common.DroolsObjectInputStream.<init>(DroolsObjectInputStream.java:49) 
    at org.drools.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:189) 
    at org.drools.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:158) 
    at org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:408) 
    ... 88 more 

Como todo el código es de una biblioteca que supongo que el problema no está en el código, pero en mi configuración del proyecto/uso de frascos/uso de reglas/lo que sea. ¿Cuáles son los motivos típicos de esta excepción? ¿Qué debería buscar para encontrar el motivo de la excepción? Alguien tiene una estrategia para identificar el problema?

Actualización: Interesante ... Mi aplicación parece funcionar de todos modos. Parece que se recupera del error. Entonces, ¿tal vez un error en la biblioteca de mi proyecto? No es agradable ver el error registrado en cada inicio, pero no parece ser crítico. Hmmm ...

Respuesta

17

Está pasando un archivo XML como ObjectInputStream, pero esta información debe ser serializada previamente a través de ObjectOutputStream.

+5

es correcto 3C3F786D es bestsss

+0

Esto me ayudó con un problema muy diferente ... ¡gracias! –

+0

¿Cómo actuaría si el flujo de entrada pasado al flujo de entrada de objeto se crea desde un recurso en la carpeta de recursos del proyecto? Ejemplo: InputStream es = this.getClass(). GetResourceAsStream (pathToResource); –

Cuestiones relacionadas