Ce que j'essaie de faire est de transférer une image du service Web vers le client mobile. Pour ce faire, j'ai créé une opération de service Web qui renvoie une variable byte []. Dans cette méthode, je crée une image .png à partir d'un graphique. Après cela, je récupère les octets de l'image et les fournisse comme valeur de retour pour l'opération. c'est le code du serveur:service web - application mobile (j2me) transfert de fichier
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().
Peut-être que je manque quelque chose, mais cela ne fonctionne pas comme je reçois cette erreur d'exécution:
java.rmi.MarshalException: Expected Byte, received: iVBORw0KGgoAAAANSUhEU.... (very long line).
ont des idées pourquoi ce happends? Ou peut-être vous pouvez suggérer n'importe quelle autre manière d'envoyer les données au client mobile.
Merci beaucoup! Cela a vraiment aidé. La seule chose que j'ai à dire à propos de votre réponse est la suivante: byte [] buffer = new byte [(int) conn.getLength()]. –