Bonjour bonjour,
Je travaille sur un énorme projet contenant énormément de web service.
Ces web services utilisent les librairies Apache Axis 1.3.
Chaque web service n'a en paramètre de méthode que des chaines ou des types génériques. Lorsqu'une méthode doit passer en paramètre des objets, ils sont transformés en données XML par l'intermédiaire de la classe java.beans.XMLEncoder, le service web est appelé avec la chaine de caracteres contenant l'objet transformé en XML, puis coté serveur, la chaine de caracteres est retransformée en objet initial grace à la classe java.beans.XMLDecoder. Ces deux objets ont un encodage de type "utf-8".
Le problème que je rencontre, c'est lorsque les services web sont utilisés pour envoyer des chaines contenant des caractères spéciaux (le projet est international). L'encodage se fait mais le décodage ne se fait pas :
java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.
Voici la chaine que j'utilise pour faire planter mon service web :
äþÞØ×Ð õðæÝ„~°¶»¼öñ÷ÿß
Et ce sont précisément les caractères Ð et Ý qui plantent le tout. Ces caractères qui sont répertoriés dans "utf-8".
Merci par avance pour votre aide
Pilou
Partager