Bonjour,
Je fais actuellement de l'orchestration de services en utilisant le language BPEL. Je fais tourner mes webservices sur un serveur Axis2.
Les nombreux services que je souhaite orchestrer ont en commun de prendre, dans leurs messages entrant une châine de caractères très volumineuse représentant une image encodée en base64.
Par exemple, j'ai un service Resize, associé à un fichier wsdl (auto généré par axis2) dont voici l'extrait qui m'intéresse:
<wsdl:types>
<xs:schema xmlns:ns="http://Resize.image/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://Resize.image/xsd">
<xs:element name="resize">
<xs:complexType>
<xs:sequence>
<xs:element name="sourceString" nillable="true" type="xs:string" />
<xs:element name="formatName" nillable="true" type="xs:string" />
<xs:element name="scale" nillable="true" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="resizeResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="resizeMessage">
<wsdl:part name="part1" element="ns0:resize" />
</wsdl:message>
<wsdl:message name="resizeResponse">
<wsdl:part name="part1" element="ns0:resizeResponse" />
</wsdl:message>
Comme on peut le voir, le message entrant resizeMessage contient une seule partie faisant référence à un élément d'un schéma xml complexe...
Pour m'éviter, dans l'orchestration, d'avoir à créer un objet aussi lourd (puisque je dois y recopier ma volumineuse châine de caractères) à chaque fois que je veux invoquer un service, j'aurais souhaité utiliser des balises <from parts> dans le fichier BPEL... Mais pour cela il me faut avoir un wsdl où les messages ont plusieurs parties, mais plus simples:
<wsdl:message name="resizeMessage">
<wsdl:part name="sourceString" type="xs:string" />
<wsdl:part name="formatName" type="xs:string" />
<wsdl:part name="scale" type="xs:int" />
</wsdl:message>
Y a-t-il un moyen de configurer Axis2 pour qu'il change sa façon d'écrire les fichiers wsdl ? (Axis générait des wsdl juste comme il faut!)
J'ai déjà essayé d'inclure un fichier wsdl au format que je souhaite dans le dossier META-INF du service à déployer, mais Axis2 n'accepte pas ce genre de schéma et continue de générer le sien à partir de la classe Java implémentant le service...
Merci!
jean
Partager