私がやろうとしているのは、Webサービスからモバイルクライアントに画像を転送することです。これを行うために、byte[]変数を返すWebサービス操作を作成しました。この方法では、チャートから.png画像を作成します。この後、画像からバイトを取得し、操作の戻り値として提供します。これはサーバーコードです:
public byte[] getBytes() throws IOException {
BufferedImage chartImage = chart.createBufferedImage(230, 260);
//I get the image from a chart component.
ByteArrayOutputStream baos = new ByteArrayOutputStream(1000);
ImageIO.write( chartImage, "png",baos );
baos.flush();
byte[] bytesImage = baos.toByteArray();
baos.close();
return bytesImage;
}
Now in the mobile application all i do is assign a byte[] variable the return value of the web service operation.
byte[] imageBytes = Stub.getBytes().
何かが足りないかもしれませんが、このランタイムエラーが発生するため、これは機能しません。
java.rmi.MarshalException: Expected Byte, received: iVBORw0KGgoAAAANSUhEU.... (very long line).
なぜこれが起こったのか考えがありますか?または、モバイルクライアントにデータを送信する他の方法を提案することもできます。