Bonjour,
Comme le titre l'indique, j'ai un problème avec MTOM, en fait pour récupérer le message.
Dans le code java, je demande à récupérer un objet Data qui contient une chaîne de caractère "contentType" et un objet MTOM "include" (de type Include définit par le w3c).
"contentType" se récupère parfaitement, mais include ne contient rien (je ne récupère même un objet vide, c'est un objet null).
Quelqu'un saurait-il d'où vient le problème ?
Voici pour précision quelques morceaux de code.
La fonction qui interroge le webservice :
La classe Data sans les accesseurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 /** * Permet de télécharger un fichier à partir du serveur. * @param session Uuid de la session qui tente d'accéder à la méthode * @param md5 Uuid du fichier à télécharger * @param result Résultat de la requête * @param data Fichier renvoyé */ @WebMethod(operationName = "get-file") @RequestWrapper(localName = "get-file", targetNamespace = "form", className = "client.form.requestWrapper.GetFile") @ResponseWrapper(localName = "data-response", targetNamespace = "form", className = "client.form.DataResponse") public void getFile( @WebParam(name = "session", targetNamespace = "")String session, @WebParam(name = "md5", targetNamespace = "")String md5, @WebParam(name = "result", targetNamespace = "", mode = WebParam.Mode.OUT) Holder<Result> result, @WebParam(name = "data", targetNamespace = "", mode = WebParam.Mode.OUT) Holder<Data> data);
La classe Include sans les accesseurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Data", propOrder = { "include" }) public class Data{ @XmlElement(name = "Include", namespace = "http://www.w3.org/2004/08/xop/include", required = true) protected Include include; @XmlAttribute(namespace = "http://www.w3.org/2004/11/xmlmime") protected String contentType;
La requête SOAP renvoyée par le serveur (au cas où, pour précision, le code incompréhensible est le contenu du fichier que je dois récupérer) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Include", propOrder = { "any" }) public class Include { @XmlAnyElement(lax = true) protected List<Object> any; @XmlAttribute(required = true) @XmlSchemaType(name = "anyURI") protected String href; @XmlAnyAttribute private Map<QName, String> otherAttributes = new HashMap<QName, String>();
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:generic="generic" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:xmime4="http://www.w3.org/2004/11/xmlmime" xmlns:form="form"><SOAP-ENV:Body><form:data-response><result><code>ok</code><details></details></result><data xmime4:contentType="image/jpeg"><xop:Include href="cid:id1"/></data></form:data-response></SOAP-ENV:Body></SOAP-ENV:Envelope> --==rJv43tDrvXJI24Q8S+mxSdebIJ8F6wmP2/THiV1HdIJOmuSxJSOj22aBwlEK== Content-Type: image/jpeg Content-Transfer-Encoding: binary Content-ID: <id1> �����JFIF��H�H�����C� $.' ",#(7),01444'9=82<.342���C 2!!22222222222222222222222222222222222222222222222222�����"�������������� �������}�!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
Partager