wsdl2rpg.sh & soap 1.2

configuration Apache, Zend et PHP , Web services
Répondre
thomas.barberot
Messages : 58
Enregistré le : jeu. 12 avr. 2012, 14:50:53

wsdl2rpg.sh & soap 1.2

Message par thomas.barberot »

Bonjour.

Je cherche à créer un programme de service de consommation de web service SOAP via la commande wsdl2rpg.sh.

Le wsdl semble être en SOAP 1.2 (je vois ceci dedans : binding="impl:XECMDocumentSOAP12Binding").

La génération ne se fait pas, et cette erreur est renvoyée :
org.apache.axis.wsdl.wsdl2ws.WrapperFault: A port with a supported binding was not found. Ensure SOAP 1.1 XML namespace is used.
at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.generateWrappers(Unknown Source)
at com.ibm.systemi.iws.client.codegen.axis.scripts.WSDL2WS.generateStubs(WSDL2WS.java:130)
at com.ibm.systemi.iws.client.codegen.axis.scripts.WSDL2WS.startStubGeneration(WSDL2WS.java:63)
at com.ibm.systemi.iws.client.codegen.axis.scripts.WSDL2RPG.main(WSDL2RPG.java:41)

Code generation failed. Please see errors above.
Est-ce que ça veut dire que seul le SOAP 1.1 est compatible ? Comme les web services sont fournis par un logiciel tiers, je n'ai pas de levier pour le forcer à faire du 1.1.
Est-ce qu'il faut que je modifie le WSDL, et si oui, qu'est-ce qu'il y a à modifier ?
Je ne trouve aucune log ni aucun spoule, je ne sais donc pas quoi faire.

Merci.

florian67
Messages : 135
Enregistré le : lun. 23 déc. 2013, 17:03:12

(sans sujet)

Message par florian67 »

Bonjour,

C'est possible que seul le SOAP 1.1 soit compatible.

Après pour ma part je n'utilise pas wsdl2rpg. Ca fonctionne très bien si tu as un service simple mais sinon...

Personnellement j'utilisais beaucoup HTTPAPI de Scott klement https://www.scottklement.com/httpapi/.
Mais désormais je passe par la consommation en SQL (HTTPGETBLOB / HTTPGETCLOB).

Florian

nbonnet
Messages : 198
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

(sans sujet)

Message par nbonnet »

Bonjour,

La doc de référence (ftp://public.dhe.ibm.com/systems/suppor ... nt_new.pdf) indique les fonctions supportées (chapitre 3) :

Supported spec®ctons and standards
The stub-generation portion of the Web Services Client for ILE product has the following capabilities:
• Support for WSDL 1.1 (document literal only)
• SOAP 1.1 is the only supported over-the-wire protocol (as compliant with WS-I 1.1 basic pro®le)
The following are known limitations and restrictions:
• Dates sent and received must be after midnight 1st January 1970.
• Attachments are not supported.
• WSDL's used against the Integrated Web service client for ILE tooling (wsdl2ws.sh) must be encoded
throughout using UTF-8.
• Web service responses must be in UTF-8 format.
• The following schema-related types and constructs are not supported:
– The use of xsd:list.
– The use of xsd:union.
– Complex content extensions is not supported. There is limited support for simple content extensions.
– The namespace and processContents attributes on xsd:any are not supported. This gives
support equivalent to setting namespace="##any" and processContents="skip".


Ou en résumé : https://www-01.ibm.com/support/docview. ... g3T1026867

C'est à dire SOAP 1.1 et WSDL 1.1

Tu peux effectivement passer par HTTPPOSTCLOB ou par les APIs Axis, mais en construisant le message SOAP (XML) par le programme lui-même.


Pour info, le produit est basé sur WSDL2WS de la fondation Apache, pour lequel le support SOAP 1.2 est toujours indiqué comme "TODO" (https://axis.apache.org/axis/cpp/arch/WSDL2Ws.html).

Il y a des demandes d'évolution acceptées (Planned for future) sur ce sujet :
https://www.ibm.com/developerworks/rfe/ ... _ID=107226
Mais pas de date annoncée aujourd'hui !

Nathanaël
Nathanaël

Répondre