L'envoi de Caractères XML non valides dans la Requête Soap
Je suis en train d'envoyer spécial (&
, '
(single quote)) des caractères dans la Requête Soap. Je suis à l'aide de l'axe 1.4. Le service client est dans weblogic server et le service web server est un ibm mainframe (COBOL).
Les données de la demande du client contient un caractère spécial (&
symbole) qui est convertie à &
J'ai essayé de le joindre à CDATA comme
<![CDATA[Some Name & Some Data ]]>
qui s'est converti à
<![CDATA[Some Name & Some Data]]>
Le service client est généré à partir de wsdl, donc je ne pouvais pas utiliser CDATA api pour construire la demande. Je suis capable de le définir comme valeur de chaîne, et il se converti.
Toute aide serait grandement appréciée. S'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations sur cette.
On vous envoi les données au format XML ou une chaîne de caractères? Je ne sais pas l'Axe de l'API, mais dans .NET, je vois des gens de tous les temps à avoir ce problème quand ils construisent des données XML à l'aide de la chaîne Api au lieu de XML Api. Peut-être que c'est votre problème.
Oui, Le COBOL analyseur est incapable de lire l'intégralité de la chaîne chaque fois qu'il rencontre un ampli signe. Par exemple: String "Nom & Sexe", le cobol analyseur est pas en mesure de l'analyser en tant que chaîne complète. J'ai donc de l'enfermer dans cdata de charger le cobol analyseur afin de valider le contenu. Quand je l'enfermer dans CDATA, il est converti en <![CDATA[Nom & Sexe]]> nouveau le cobol analyseur est incapable de lire le contenu.
OriginalL'auteur Selvakumar Arumugam | 2010-03-19
Vous devez vous connecter pour publier un commentaire.
Le client de service web talons sont en train de faire l'encodage XML pour vous. Le service web s'attend XML, et c'est l'encodage de la
&
et'
dans les références d'entité, de sorte que vous serez en envoyant XML valide.À un analyseur XML, il va "voir" le
&
comme&
et vous n'avez pas de problème.Si le serveur est incapable de gérer les références d'entité, puis le COBOL "web service" n'est pas ce qu'il est censé faire. Qui rend difficile pour vous(et basée sur des normes, outils) pour générer les stubs client à partir du WSDL, qui est essentiellement un contrat qui décrit les règles de format de données et l'échange.
Quel est le point de fournir un document WSDL et SOAP service si ce n'est pas respecter, il est prescrit interface règles?
Je ne suis pas sûr si l'AXE des talons va vous permettre de définir le contenu et de préciser qu'il doit être CDATA. Il semble que si d'autres personnes ont eu des problèmes similaires: osdir.com/ml/axis-user-ws.apache.org/2009-12/msg00095.html Vous pouvez soit pirater le stub généré code, cherchez un autre outil pour générer les stubs, ou de la main-construire votre requête SOAP et de la poste.
Vrai. J'ai aussi fini par faire de même, en regardant l'axe de stub pour gérer ce cas précis. Je n'ai pas trouvé encore, je vais poster à nouveau si je trouve quelque chose. Merci pour votre aide.
OriginalL'auteur Mads Hansen