Recreer une pièce jointe avec JavaMail - Java - Programmation
Marsh Posté le 05-06-2006 à 09:01:59
Bon il marche pas trop mon topic. J'ai découvert que ce qui ne va pas, c'est la réception de la requête par le serveur Domino : il remplace tous les caractères spéciaux par des points d'exclamation. Impossible de recréer une pièce jointe avec ça...
Marsh Posté le 09-06-2006 à 14:58:24
Pour les gens qui seraient coincés comme moi dans cette situation, je leur conseille de changer d'approche : utiliser une servlet, exécutée par le moteur de servlet de Domino (attention, c'est pas du dernier cri). L'objet HttpServletResponse, passé en paramètre de doGet (ou doPost), permet de récupérer le contenu du message sans modification de l'encodage (sous forme de Stream du moins).
Marsh Posté le 09-06-2006 à 15:35:00
Hey, juste un truc, ta pièce jointe tu dois l'encoder en base64 et pas en binaire, pq c'est clair que les caractères spéciaux ne passsent pas sur le réseau...
Marsh Posté le 22-06-2006 à 14:46:08
Merci pour l'info m'sieur, désolé j'avais pas vu ta réponse. Pour le coup j'ai tout fait avec SAAJ (SOAP with Attachment API for Java), qui évite de parser à la main.
De manière générale, il faut effectivement encoder en base64 et manipuler des flux pour éviter les emmerdes sur des string.
Marsh Posté le 02-06-2006 à 09:55:12
Bonjour all,
Je cherche à envoyer une pièce jointe à un webservice, grâce à un DataHandler. Pas de problème pour la partie cliente, qui ressemble à ça :
Par contre la partie serveur doit fonctionner sur un serveur Domino 6.5, ce qui inclue un certain nombre de difficultés :
- java 1.3
- il faut tout parser à la main.
C'est donc ce que je fais. La requête que je reçoit ressemble à ça :
------=_Part_0_14158819.1148988787982
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <B16DC35C0EB5DB244E8FB115971AAB01>
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlnssd="http://www.w3.org/2001/XMLSchema" xmlnssi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<storeFile xmlns="http://webservicejava">
<filename>image.jpg</filename>
<dh href="cid:E790332A5CC67910DE669D376D0DBF23" xsi:type="ns1ataHandler" xmlns:ns1="http://xml.apache.org/xml-soap"/>
</storeFile>
</soapenv:Body>
</soapenv:Envelope>
------=_Part_0_14158819.1148988787982
Content-Type:image/jpeg
Content-Transfer-Encoding: binary
Content-Id: <E790332A5CC67910DE669D376D0DBF23>
Ï ÓJIF??? ?C?????? ???????????? $.\' \",#??(7),01444?
...
...
...
------=_Part_0_1
Bon j'arrive bien à séparer les deux parties et à parser la première pour récupérer le nom du fichier et le content ID, ce qui me permet d'aller récupérer le contenu à proprement parler dans la seconde partie.
Seulement mes essais pour recréer un DataHandler à partir du contenu ne fonctionnent que sur du texte, et pas sur des images ! Les images ainsi reçues (ou autre type de contenu un peu fun) ne sont pas exploitables.
Je vous mets quelques exemples de mes tentatives :
ou encore :
Bref, tout ça ne marche pas, malheuresement, et je suis bien en galère. Vous pourriez m'aider SVP ?
Merci