“StreamCorruptedException:invalid stream header”的可能原因 [英] Possible causes for "StreamCorruptedException: invalid stream header"

查看:848
本文介绍了“StreamCorruptedException:invalid stream header”的可能原因的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我(尝试)使用drools来处理我的定价规则。但是当我尝试执行规则时,抛出以下异常:

I (try to) use drools to process my pricing rules. But when I try to execute the rules the following exception is thrown:

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

由于所有代码都来自库,我猜问题是不是在代码中,而是在我的项目设置/使用罐子/使用规则/等等。这种例外的典型原因是什么?我应该寻找什么来找到异常的原因?有人有策略来查明问题吗?

As all the code is from a library I guess the problem is not in the code but in my project setup/use of jars/use of rules/whatever. What are the typical reasons for this exception? What should I looking for to find the reason for the exception? Someone has a strategy to pinpoint the problem?

更新:
有趣......我的申请似乎无论如何都有效。看起来它从错误中恢复过来。那么,也许是我项目库中的错误?不好看到每次启动时记录的错误,但似乎并不重要。嗯......

Update: Interesting ... my application seems to work anyway. Looks like it recovers from the error. So, maybe a bug in the library of my project? Not nice to see the error logged at every startup, but don't seem to be critical. Hmmm ...

推荐答案

您正在将XML文件作为 ObjectInputStream传递,但此数据应事先通过 ObjectOutputStream 序列化。

You are passing an XML file as an ObjectInputStream, but this data should be previously serialized via an ObjectOutputStream.

这篇关于“StreamCorruptedException:invalid stream header”的可能原因的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆