我们正在使用Drools 7.5.0和Java8。
我们有一个处理传感器事件的服务器应用程序,大约有1200个会话。每个会话都是一个参数化的知识。当我们重新启动服务器时,我们必须恢复所有没有我们希望看到的那么快的会话。因此,尝试通过从数据库加载序列化的知识库来优化恢复过程。
我们使用以下代码来序列化和反序列化知识库:
public static byte[] serializeKieBase(KieBase kieBase) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new DroolsObjectOutputStream(baos);
oos.writeObject(kieBase);
oos.close();
return baos.toByteArray();
}
public static KieBase deserializeKieBase(byte[] serializedBase) throws IOException, ClassNotFoundException {
ByteArrayInputStream is = new ByteArrayInputStream(serializedBase);
ObjectInputStream ois = new DroolsObjectInputStream(is);
return (KieBase) ois.readObject();
}
事件是不可变的,并且具有最终字段。恢复会话时,会出现以下异常:
java.lang.RuntimeException: Unknown extractor for com.easierlife.rs.model.Measurement-location
它被抛出到这行代码中:https://github.com/kiegroup/drools/blob/master/drools-core/src/main/java/org/drools/core/common/DroolsObjectInputStream.java#L150
令人困惑的是。。。
您是否在drools语法中使用了getter方法(get位置)?如果是这样,drools将使用方法访问器序列化和反序列化字段访问器
如果您将口水更改为直接使用位置字段,它应该可以工作
问题内容: 我试图序列化和反序列化内部对象的数组列表: HairList对象也是一个可序列化的对象。 此代码执行返回以下错误: 排队 我不知道我在做什么错。你能给个小费吗? 更新: 解决: 仅使用HairBirt的本机数组而不是ArrayList即可工作: 代替 感谢大家的帮助。 问题答案: 不要使用-而是使用二进制数据并对它进行base64编码,以将其转换为字符串而不会丢失信息。 我强烈怀疑这是
问题内容: 作为一个小项目,我一直在尝试做一个小事,它可以读取序列化的lambda(从本地或从FTP)并调用它们的运行函数作为测试的一部分,以测试Windows中的文件关联(即打开某些文件类型)使用特定程序打开它们),但不管如何,无论如何,它似乎从未正确地反序列化。 lambda被这样声明 并使用由ObjectOutputStream包装的[n可选] BufferedOutputStream包装的
问题内容: 在hibernate状态下执行条件查询时,出现以下异常: 可能是什么问题呢? PS:虽然可能不相关,但我的hibernate版本是hibernate-4.0.1 final。 问题答案: 问题在于被引用的实体对实体有另一个引用,并且该关系未由任何-like注释进行注释。
问题内容: 我正在使用Hibernate的两个表,但我不明白为什么对于特定查询我有此问题。我希望有人意识到这个问题。 我有一个桌子用户 和一个桌子区域 日志说: 问题答案: 我建议仅在字段或getter上设置注释。我更喜欢田野,但那只是我的口味。 请参阅Hibernate中有关字段和属性访问的奇怪案例: 因此,要么将注释仅放置在字段上,要么仅放置在getters(properties)上。混合它们
作为一个小项目,我一直在尝试制作一个小东西来读取序列化的lambda(本地或从FTP)并调用它们的run函数,作为测试的一部分,以在Windows中试验文件关联(即打开某些文件类型会用某个程序打开它们)等等,但无论我尝试什么,它似乎都无法正确地反序列化。 lambda是这样宣布的 并使用由ObjectOutputStream包装的[n可选]BufferedOutputStream包装的FileOu
我想创建mysql字符串数组类型的数据字段。因此,我在我的spring-boot gradle项目中创建模型类,如下所示。 这是我的存储库,它通过JpaRepository扩展 但是当我在controller类中运行'getQuestions()'函数时,它给出了以下错误。 嵌套异常为org.hibernate.type.serializationexception:无法反序列化org.sprin