簡體   English   中英

Apache Ignite throws 無法在啟動時使用給定的 class 加載程序反序列化 object(客戶端 - 服務器)

[英]Apache Ignite throws Failed to deserialize object with given class loader on startup ( Client - Server )

我正在嘗試使用帶有 ignite 的自定義事務管理器,但是它會導致無法在啟動時使用給定的 class 加載程序反序列化 object。 事務管理器工廠實現為

public class TransactionManagerFactory implements Factory<TransactionManager> {
private static final long serialVersionUID = 1L;

private TransactionManager txMgr;

public TransactionManagerFactory(TransactionManager txMgr) {
    this.txMgr=txMgr;
}

@Override
public TransactionManager create() {
    return this.txMgr;
}
}

工廠附加到客戶端配置如下:

TransactionConfiguration txConfiguration=new TransactionConfiguration();
txConfiguration.setDeadlockTimeout(acquireTimeout);
txConfiguration.setDefaultTxIsolation(TransactionIsolation.READ_COMMITTED);
txConfiguration.setDefaultTxConcurrency(TransactionConcurrency.PESSIMISTIC);
txConfiguration.setTxManagerFactory(new TransactionManagerFactory(txMgr));           
this.clientConfig.setTransactionConfiguration(txConfiguration);

錯誤表示傳遞給工廠的事務管理器本身不可序列化: 原因:java.io.NotSerializableException: org.infinispan.transaction.tm.EmbeddedBaseTransactionManager

然而,事務管理器本身不應該是可序列化的。 我們如何通過現有的事務管理器來點燃客戶端?

BR Yulian Oifa

您的事務管理器工廠保留事務管理器實例,而不是在遠程節點上的create()方法中創建它。 這就是它應該如何工作的方式。

可序列化 object 的所有非瞬態字段也必須是可序列化的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM