`
keller
  • 浏览: 48130 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jBPM的type问题,big bug!

阅读更多

       对应用户自己定义的非string类型的变量,jBPM是先将变量转换成二进制object 流,然后再转换成string类型存储在数据库中,取变量的过程与之相反。由于转换成string涉及到编码格式问题,如GBK、ISO等,而编码格式涉及到操作系统、数据库、jvm等多方面的影响,jbpm目前还没有解决这个问题,因此在使用非string类型变量的时候,jbpm会出错。这个问题tom(jbpm创始人)正在解决。
       这个问题,似乎将变量按二进制存储更好些,这样就不会涉及编码格式问题。
       另外一种方法是使用统一的编码格式,改写后的org.jbpm.delegation.serializerSerializableSerializer如下:
public class SerializableSerializer implements Serializer {

    public String serialize(Object object) {
        String serialized = null;

        if (object != null) {
            if (!(object instanceof Serializable)) {
                throw new IllegalArgumentException("object '" + object + "' (" +
                        object.getClass().getName() +
                        ") cannot be serialized with " +
                        this.getClass().getName());
            }

            try {
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ObjectOutputStream oos = new ObjectOutputStream(baos);
                oos.writeObject(object);
                oos.flush();
                baos.flush();

                serialized = baos.toString(“ISO-8859-1“);//修改

            } catch (IOException e) {
                e.printStackTrace();
                throw new RuntimeException(
                        "couldn't serialize state definition");
            }
        }

        return serialized;
    }

    public Object deserialize(String text) {
        Object object = null;

        if (text != null) {
            try {
                ByteArrayInputStream bais = new ByteArrayInputStream(text.
                        getBytes(“ISO-8859-1“));  //修改
                ObjectInputStream ois = new ObjectInputStream(bais);
                object = ois.readObject();
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException(
                        "couldn't deserialize object from inputstream");
            }
        }

        return object;
    }

}

分享到:
评论

相关推荐

    jbpm的实例介绍!!

    jbpm,全称为Java Business Process Management,是一款开源的工作流管理系统,用于实现业务流程自动化。它提供了强大的流程定义、执行和监控功能,适用于企业级应用,尤其是对于那些需要管理复杂业务流程的系统。在...

    jbpm4.3问题解决

    6. **版本更新**:考虑升级到较新版本的jbpm,以解决已知的bug或问题。 总之,解决jbpm4.3问题需要对jbpm的工作原理、数据库结构以及部署环境有深入的理解。通过对错误日志的分析、数据库的检查以及配置的核查,...

    jbpm4jbpm5

    jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...

    jbpm资料包,分享啦!

    **jbpm资料包详解** jbpm,全称Java Business Process Management,是一款开源的工作流程管理系统,专为业务流程自动化提供服务。它集成了Java技术,允许开发者设计、执行、监控和优化复杂的业务流程,使得企业能够...

    jbpm4.4 email没有验证bug解决

    原代的jbpm4.4 没有用户身份验证 而公司邮箱新浪邮箱等等 都必须要省份验证功能!

    jbpm简介\jbpm简介

    ### jBPM简介与关键技术知识点 #### 一、jBPM概述 jBPM是一个开源的、纯Java的、轻量级的商业流程管理(Business Process Management, BPM)工作流引擎。它支持多种可执行流程语言,并且可以在任何JavaEE应用...

    jbpm jbpm4.3.jar

    jbpm jbpm4.3.jar DDDDDDDD

    jbpm bug

    标题中的"jbpm bug"指的是在使用jbpm(Java Business Process Management)系统时遇到的问题或错误。jbpm是一个开源的工作流管理系统,它允许开发者设计、部署和执行业务流程。这个bug可能涉及到流程定义、任务调度...

    jbpm4.3 修复 fork join bug

    NULL 博文链接:https://sunlujing.iteye.com/blog/914429

    jbpm 案例 jbpm jbpm

    jbpm使用案例,非常不错,大家都来看看吧。

    jbpm开发指南--jbpm全面介绍

    通过查看JBPM的表,我们知道要实现流程监控功能就是把JBPM当中的JBPM_PROCESSDEFINITION(已发布的流程表),JBPM_PROCESSINSTANCE(流程实例表),JBPM_TASKINSTANCE(流程产生的任务实例表)这三张表串联起来就可以...

    配置Jbpm注意问题

    在配置Jbpm的过程中,可能会遇到一系列的问题,尤其是在与数据库集成和服务器环境设置时。本文将详细探讨在配置Jbpm时需要注意的关键点,包括MySQL字符集问题、Jboss服务器的配置以及JBossJbpm的整合。 首先,MySQL...

    jBPM3.2.rar_JBPM3.2_jbpm_jbpm 3.2_jbpm3_jbpm3.2教程

    你可以通过阅读这个文档,深入了解jbPM 3.2的使用方法,解决在实际项目中遇到的问题。 总的来说,jbPM 3.2是一个强大的工作流管理系统,通过深入理解和实践,开发者可以构建出高效、灵活的业务流程,提高企业的业务...

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    jbpm-3.1.2.zip 文件包含了 jBpm 的一个重要版本——jBpm 3.1.2,这是一个开源的工作流管理系统,专为构建灵活且可扩展的业务流程解决方案而设计。jBpm 提供了一种方式,使得开发者能够用简单而强大的语言来表达业务...

    jbpm4.3常见问题解决

    首先,我们来看"jBPM-4.x常见问题解决方案FAQ.docx",这个文档很可能包含了用户在使用jBPM 4.3时遇到的各种问题和相应的解决办法。常见问题可能包括流程部署失败、任务无法执行、数据持久化问题、工作流引擎性能优化...

    jbpm

    【jbpm】是一种开源的工作流管理系统,全称为Java Business Process Management。它主要用于处理业务流程的自动化,通过定义和执行工作流程来协调应用系统中的不同组件。jbpm不仅提供了流程建模、部署、执行的能力,...

    jbpm白皮书 介绍jbpm 入门

    ### jBPM 白皮书:介绍 jBPM 入门 #### 一、引言与背景 在当今数字化转型的时代背景下,业务流程管理(Business Process Management,简称 BPM)成为了企业提升效率、优化流程的关键技术之一。BPM 提供了一种程序...

Global site tag (gtag.js) - Google Analytics