1

easyChart と呼ばれる objectPlanet のサードパーティ ツールを使用してグラフィカル チャートを作成しています。Chart.jarおよびChartServer.jarと呼ばれるjar libを提供します

サーバー側で easyChart オブジェクトを作成します。

Chart chart = new BarChart();
... <create chart data here> ...
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
ObjectOutputStream oStream = new ObjectOutputStream( bStream );
oStream.writeObject (chart);
byte[] byteVal = bStream.toByteArray();
String chartInString = Base64.encode(byteVal);

そしてクライアント側でそれを読み返します:

byte[] readByte = Base64.decode(chartInString);
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(readByte));
Chart chart = (Chart) ois.readObject();

サーバーとクライアントの JVM バージョンが同じ場合、問題なく動作します。GenericChart がシリアライゼーションを実装していることを認識しています (このクラスは提供された jar 内にあります)。

提供されたjarクラスを変更できないため、この問題をどのように克服できますか?

どんな返信でも大歓迎です。ありがとうございました!

4

2 に答える 2

1

存在するすべての Swing クラスのクラス Javadoc には、シリアル化されたバージョンは他の JDK バージョンと互換性がないという警告があります。したがって、それらをシリアル化しないでください。モデルをシリアル化します。

于 2013-02-18T12:32:34.207 に答える