Question

Fichiers WSDL de référence HOWTO du registre lors de la définition d'un nouveau service de proxy?J'utilise WSO2 ESB.

Q1: Puis-je utiliser l'élément localtry pour définir le WSDL dans mon service proxy?Par exemple:

localEntry key="my_wsdl" src="file:/wsdl/MyServiceSOAP.wsdl"

à condition que j'ai déjà utilisé Console de gestion > Ajouter une collection > Créer "WSDL" et Ajouter une ressource > myServicesoap.wsdl. J'ai un problème avec la valeur "SRC", à la fois

"/wsdl/MyServiceSOAP.wsdl" 
et
"wsdl/MyServiceSOAP.wsdl" 
ne fonctionnent pas.Je suis La documentation mais elles ne montrent pasHOWTO télécharger des WSDLS dans le registre.

Q2: Que se passe-t-il si myservicesoap.wsdl importe myservice.wsdl?J'ai besoin d'utiliser Ajouter une ressource pour myservice.wsdl aussi, mais dois-je faire autre chose pour rendre le proxy compiler?

Était-ce utile?

La solution

Je pense que vous vous référez au greffe ici. L'espace de registre de chaque produit contient trois cloisons principales.

  • local
  • Configuration
  • Gouvernance

espace de registre dans l'ESB Le registre de configuration contient une configuration spécifique au produit pouvant être partagée sur plusieurs instances du même produit (un groupe de nœuds ESB par exemple). Vous pouvez donc créer la collection WSDL dans le registre de configuration et se référer à elle comme ..

"conf:/wsdl/MyServiceSOAP.wsdl"

En téléchargeant les ressources au registre, vous pouvez les choisir facilement lors de la création du service proxy. Entrez la description de l'image ici

Je pense que vous pouvez vous référer à des ressources comme "fichier: /wsdl/myservicesoap.wsdl" uniquement lorsqu'ils sont à l'intérieur d'un répertoire nommé "WSDL" dans le système de fichiers local. BTW, sur les messages d'erreur .. Si vous regardez les journaux du serveur ESB, vous verrez l'erreur suivante lorsque vous essayez de mettre à jour le proxy en faisant référence à un fichier non existant.

Caused by: java.io.FileNotFoundException: ./wsdl/MyServiceSOAP.wsdl (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at java.io.FileInputStream.<init>(FileInputStream.java:79)
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
    at org.apache.synapse.config.SynapseConfigUtils.getObject(SynapseConfigUtils.java:197)
    ... 46 more

Autres conseils

J'ai trouvé une solution simple à partir d'un blog: Dans mon scénario, j'ai eu une WSDL, qui importait un autre WSDL qui importait un XSD.Les structures réelles étaient dans la deuxième WSDL.

Ligne d'importation dans l'original WSDL:

    <wsdl:import namespace="http://www.somedomain.com/interface/v1_0" location="service_interface_1_0.wsdl"/>

ligne d'importation dans la deuxième WSDL:

    <xsd:import namespace="http://www.somedomain.com/data/v1_0" schemaLocation="data_types_1_0.xsd"/>

XML requis sur le proxy:

    <publishWSDL key="file_required_service_1_0.wsdl">
  <resource location="service_interface_1_0.wsdl"
            key="file_service_interface_1_0.wsdl"/>
  <resource location="data_types_1_0.xsd"
            key="file_data_types_1_0.xsd"/>

où j'ai des entrées locales pour "fichiers_required_service_1_0.wsdl" nommé entrées locales contenant les fichiers WSDL et XSD d'origine.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top