Возможные причины «StreamCorruptedException: неверный заголовок потока» - PullRequest
7 голосов
/ 01 октября 2010

Я (пытаюсь) использовать слюни для обработки моих правил ценообразования. Но когда я пытаюсь выполнить правила, выдается следующее исключение:

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

Поскольку весь код взят из библиотеки, я думаю, проблема не в коде, а в настройке моего проекта / использовании jar / использовании правил / чего угодно. Каковы типичные причины этого исключения? Что я должен искать, чтобы найти причину исключения? У кого-то есть стратегия, чтобы точно определить проблему?

Обновление: Интересно ... мое приложение все равно работает. Похоже, он восстанавливается после ошибки. Итак, может быть, ошибка в библиотеке моего проекта? Не приятно видеть ошибку, регистрируемую при каждом запуске, но, похоже, не критично. Хммм ...

1 Ответ

18 голосов
/ 13 января 2011

Вы передаете файл XML как ObjectInputStream, но эти данные должны быть предварительно сериализованы через ObjectOutputStream.

...