Bonjour,
j'ai besoin, dans le cadre de l'utilisation d'un Web Service, de transférer le contenu d'un DOMSource à un StreamSource, qui puisse être envoyé comme attachement.
Hors, à ce jour, la seule méthode fonctionnelle trouvée est de passer par un fichier temporaire, en utilisant le code suivant :
Cette solution est très peu élégante et pourra poser des problèmes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 DOMSource domSource = new DOMSource(doc); StreamResult streamResult = new StreamResult(new java.io.FileOutputStream("tmp_file.xml")); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.transform(domSource, streamResult); File tmp_file = new File("tmp_file.xml"); StreamSource attach = new StreamSource(tmp_file);
Une autre solution aurait été de passer par un InputStream, cependant cette solution ne fonctionne pas, le Web Service renvoie une erreur "Unexpected end of file".
De ce fait, je me demande s'il existe d'autres solutions, ou si l'échec de la solution deux vient du Web Service. Bref de l'aide de quelqu'un connaissant le sujet serait appréciée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 DOMSource domSource = new DOMSource(doc); ByteArrayOutputStream os = new ByteArrayOutputStream(); StreamResult streamResult = new StreamResult(os); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.transform(domSource, streamResult); InputStream is = new java.io.ByteArrayInputStream(os.toByteArray()); StreamSource attach = new StreamSource(is);
Partager