6
我(尝试)使用drools来处理我的定价规则。但是,当我尝试执行规则的以下异常被抛出:可能的原因为“StreamCorruptedException:无效的流头”
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
由于所有的代码是从图书馆中,我想这个问题是不是代码,但在我的项目设置/使用的瓶/使用规则/不管。这种例外的典型原因是什么?我应该寻找什么才能找到例外的原因?有人有策略来查明问题?
更新: 有趣......我的应用程序似乎无论如何工作。看起来它从错误中恢复。那么,也许我的项目库中有一个bug?不太高兴看到每个启动时记录的错误,但似乎并不重要。嗯...
这是正确的3C3F786D是<?xml。非常注意:) – bestsss 2011-01-13 13:19:58
这帮助了我一个非常不同的问题......谢谢! – 2013-12-06 19:32:56
如果通过项目的资源文件夹中的资源创建输入流传入对象输入流,我该如何处理?示例:InputStream is = this.getClass()。getResourceAsStream(pathToResource); – 2015-01-08 09:41:53