我想要做的是将图像从网络服务传输到移动客户端。为此,我创建了一个返回 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).
有什么想法为什么会发生?或者,也许您可以建议任何其他方式将数据发送到移动客户端。