Problème encodage flux xml (CDATA) dans String
Bonjour,
voila j'ai un problème d'encodage dans un flux xml sur un retour d'un webservice. Tout d'abord voici un bout de m'a XSD :
Code:
1 2 3 4 5 6 7
|
<xs:complexType name="ActeMetier">
<xs:sequence>
<xs:element name="dateCreation" type="xs:string"/>
<xs:element name="identifiantActe" type="xs:string"/>
<xs:element name="detailsXML" type="xs:string" minOccurs="0"/> |
Le champ qui me pose problème est "detailsXML". C'est un champ que je récupère dans une base oracle "CLOB", en fait c'est un xml stocké dedans. Je le récupère via "getCharacterStream()" que je stock dans un StringBuffer puis string par la suite.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
try {
clobReader = new BufferedReader(clob.getCharacterStream());
while ((ligne = clobReader.readLine()) != null) {
chaine.append(ligne);
}
}
catch (IOException ioe) {
throw new ErreurTechnique("Erreur lors de la lecture Clob");
}
finally {
if (null != clobReader) {
try {
clobReader.close();
}
catch (IOException e) {
LOGGER.warn("Erreur lors de la fermeture du Clob reader");
}
}
}
return chaine.toString(); |
Sous SOAPUI pas de problème, mon champs est bien dans une balise CDATA
ex : <tns:detailsXML><![CDATA[ <toto.xml><exemple> ]]></tns:detailsXML>
Mais quand je regarde dans mes logs et sous TCPmonitor je n'ai pas du tout ce résultat :
ex: <tns:detailsXML>><toto.xml><exemple> ]]></tns:detailsXML>
La balise CDATA a disparue! Le problème est que mon client reçoit sous cette forme ci dessus et il n'est pas content.
Pour information, j'utilise cxf et jaxws. Je n'utilise pas JDOM, etc.. pour construire mon xml de retour, c'est automatique. Je gère juste mes classes JAVA. L'architecte de mon projet est partit en vacances et je ne peux pas l'attendre car c'est une anomalie assez urgente pour mon client.
Auriez vous des idées ?