Nous partageons beaucoup de fichiers CSV dans notre organisation, contenant toutes sortes d'informations. J'ai écrit un petit programme Java pour surveiller un certain dossier partagé et lire de nouveaux fichiers csv. Mon objectif est de permettre la lecture et la mise à jour des informations via les services Web SOAP. Mon problème est que la structure de l'information n'est pas statique, donc je ne peux pas créer un fichier WSDL à partir de ma structure Java (par exemple en utilisant spring ...). Je devrais créer un fichier WSDL dynamique. Je cherchais dans Axis2 (http://axis.apache.org/axis2/java/core/) mais je pense toujours qu'il me manque quelque chose, car je devrais construire la classe Java avec les définitions WS à la volée, puis compiler, construire le paquet .aar et ensuite déplacer le fichier dans le dossier axis2. Cela semble un peu lourd.Fournisseur de services Web dynamiques (SOAP) en Java
Fondamentalement, je seulement besoin de deux méthodes:
- find (id) -> retourner la ligne avec ID spécifié si ID est NULL retour alors tout
- mise à jour (id) -> Mises à jour de la ligne et ici, j'aurais besoin du contenu dynamique puisque je dois transmettre le champ et le type qui devrait être mis à jour.
Par exemple, j'ai User.csv:
ID;FirstName;Age;Mail
01;Stephanie;27;[email protected]
qui devrait générer quelque chose comme ceci:
[...]
<xsd:element name="delete">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="id" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="insert">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="id" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="0" name="FirstName" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="0" name="Age" type="xsd:integer" />
<xsd:element maxOccurs="1" minOccurs="0" name="Mail" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
[...]
Quelqu'un at-il une meilleure façon de le faire?
Cheers, Stephanie
Vous suggérez donc d'écrire le fichier SWDL moi-même (générez-le moi-même)? Mais alors le point final ne saurait pas gérer les «champs» ou est-ce que je me trompe? – Stephanie
vous pouvez mettre dans un champ byte [] un fichier xml représentant l'entrée, annoncez dans un autre champ un identifiant unique pour le noeud final à mettre à jour, ainsi dans le serveur vous pouvez implémenter un modèle d'usine qui vous donne une implémentation basée sur un ID unique . Maintenant, pour l'extrémité, vous avez un XSD spécifique pour valider l'entrée dans l'autre fichier (octet []), vous pouvez valider et créer l'objet correct et faire l'opération CRUD où vous voulez. Le maître ws est juste un routeur qui connaît l'implémentation d'une clé. Tous les autres XSD sont partagés en externe avec le client et ne font pas partie du WSDL –