免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
jbpm的type問題,big bug!

       對應(yīng)用戶自己定義的非string類型的變量,jBPM是先將變量轉(zhuǎn)換成二進(jìn)制object 流,然后再轉(zhuǎn)換成string類型存儲(chǔ)在數(shù)據(jù)庫中,取變量的過程與之相反。由于轉(zhuǎn)換成string涉及到編碼格式問題,如GBK、ISO等,而編碼格式涉及到操作系統(tǒng)、數(shù)據(jù)庫、jvm等多方面的影響,jbpm目前還沒有解決這個(gè)問題,因此在使用非string類型變量的時(shí)候,jbpm會(huì)出錯(cuò)。這個(gè)問題tom(jbpm創(chuàng)始人)正在解決。
       這個(gè)問題,似乎將變量按二進(jìn)制存儲(chǔ)更好些,這樣就不會(huì)涉及編碼格式問題。
       另外一種方法是使用統(tǒng)一的編碼格式,改寫后的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;
    }

}


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Android開發(fā)小技巧積累
js中undefined,null,NaN的區(qū)別
詳解JVM的內(nèi)存管理機(jī)制
android apk靜默安裝和卸載
GstBus SubSystem
Apache Avro? 1.7.7 Getting Started (Java)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服