la suppression de l'attribut mustUnderstand à partir des en-têtes soap
Comment faire pour supprimer l'attribut mustunderstand de savon en-tête dans l'axe du client.même je n'ai pas le définir en particulier, lorsque j'ai mis en en-tête soap info mustundertand et acteur attributs sont ajoutés automatiquement dans le message soap.Quelqu'un sait comment faire pour les supprimer ?
Je suis à l'aide de Axis2 version 1.4 du wsdl2java pour créer mon ws client.
OriginalL'auteur cacert | 2011-09-19
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez désactiver le doit comprendre vérifier dans l'AXE client que vous avez
pour ajouter la ligne suivante dans votre code:
puis le MustUnderstandChecker de l'AXE Client n'est jamais invoquée.
OriginalL'auteur Reinhard
Aucune de ces deux solutions n'a fonctionné pour moi, en tant que:
Regardant la réponse à "L'ajout de ws-security pour wsdl2java classes générées" m'a aidé à écrire une solution qui a fonctionné pour moi:
Cela a parfaitement fonctionné! Merci. Je ne voulais pas de nœuds enfants, donc j'ai utilisé cette: nouvelle SOAPHeaderElement associatif( nom) { { setValue(valeur); }
Merci! Celui-ci doit être accepté comme une réponse valable à cette question. Le SOAPHeaderElement classe ajoute par défaut mustUnderstand et acteur d'attributs de l'en-tête, et c'est (pour l'instant) le seul moyen de l'éliminer par filtration d'ajout/de le placer à la première place.
OriginalL'auteur Javarome
J'ai récemment été aux prises avec les mêmes situation et en faisant un peu de google-ing, j'ai réussi à trouver la solution suivante.
Avoir utilisé Axis2 vous avez probablement généré une MyWSStub fichier qui contient les appels à votre service.
Créer une classe wrapper (mieux vaut ne pas toucher à l'auto-générés fichiers stub) qui s'étend votre talon par exemple MyWSStubWrapper:
}
Garder à l'esprit que le code ci-dessus va supprimer complètement le soapenv:mustUnderstand="0/1" à partir de vos en-têtes si vous souhaitez, vous devez appeler soapHeaderBlock.setMustUnderstand(true|false); quelque part dans votre code.
OriginalL'auteur tazarov
Dans mon cas, il a travaillé manuellement supprimer l'attribut de l' SOAPHeader
OriginalL'auteur Daniel Pawlik
1) Êtes-vous à l'aide de l'Axe SOAPHeaderElement et si oui, êtes-vous du réglage de l'mustUnderstand poseur de faux?
2) Puisque vous êtes de la génération de votre client avec wsdl2java, il est tout à fait possible que le WSDL (ou, plus précisément, le schéma) contient l'attribut mustUnderstand sur un élément référencé dans votre SAVON de liaison. Alors, quand wsdlToJava génère le code client, ces attributs seront naturellement ajouté. Voir ici pour une description de l'attribut mustUnderstand.
Si la modification de l'WSDL est hors de question, et vous devez supprimer cet attribut de l'en-tête, alors je suppose que vous pouvez essayer de le faire avec un gestionnaire
3) n'est Pas conseillé, mais si vous DEVEZ vraiment supprimer cet attribut alors je suppose que vous pouvez ajouter un gestionnaire qui modifie l'en-tête: http://ws.apache.org/axis/java/apiDocs/org/apache/axis/handlers/package-summary.html
Quand vous dites que rien n'a changé, voulez-vous dire que l'en-tête SOAP est toujours montrer avec mustUnderstand=false? Avez-vous le WSSDL/schéma, vous pouvez poster (ne pas publier la totalité si c'est très long... juste sections pertinentes).
oui, je veux dire exactement cela.je pense que l'axe des codes ajouter mustunderstand et des propriétés des acteurs dans le comportement par défaut lors de l'en-tête soap jeu de paramètres.Quand j'enlève le code d'en-tête soap que mustunderstand acteur et paramètres à supprimé également.
liées wsdl peut être de la part <wsdl:operation name="xMethod"> <soap:operation soapAction="x.x.x.x/Banque.asmx/xMethod" style="document" /> <wsdl:input> <soap:body use="literal" /> <savon:en-tête de message="tns:AuthHeader" part="AuthHeader" use="literal" /> </wsdl:input> <wsdl:output> <savon:body use="literal" /> </wsdl:output> </wsdl:operation>
OriginalL'auteur Simeon G
je suis à l'aide de l'axe 1.4 le client avec le ws de sécurité
dans mon cas, comme Reinhard dit
cela a fonctionné
OriginalL'auteur A C S