Domanda

AWTO Riferimento dei file WSDL dal registro quando si definisce un nuovo servizio proxy?Sto usando WSO2 ESB.

Q1: Posso utilizzare l'elemento Localentry per definire il WSDL nel mio servizio proxy?Ad esempio:

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

A condizione che io abbia precedentemente utilizzato Gestione console > Aggiungi raccolta > Crea "WSDL" e Aggiungi risorsa > myServicesOsoap.wsdl. Ho un problema con il valore "src", entrambi

"/wsdl/MyServiceSOAP.wsdl" 
e
"wsdl/MyServiceSOAP.wsdl" 
. non lavorare.Seguo La documentazione ma non mostranoHowto caricare wsdls nel registro.

Q2: Cosa succede se myserviceoap.wsdl importa myservice.wsdl?Ho bisogno di usare aggiungi risorsa per myservice.wsdl pure, ma devo fare qualsiasi altra cosa per creare la compilazione del proxy?

È stato utile?

Soluzione

Penso che ti riferisca al registro qui. Lo spazio del registro in ogni prodotto contiene tre principali partizioni.

    .
  • Locale
  • Configurazione
  • governance

spazio di registro nell'ESB Il registro di configurazione contiene configurazione specifica del prodotto che può essere condivisa su più istanze dello stesso prodotto (un cluster di nodi ESB ad esempio). Quindi è possibile creare la collezione WSDL all'interno del registro configurazione e fare riferimento ad esso come ..

"conf:/wsdl/MyServiceSOAP.wsdl"
.

Caricando le risorse per il registro, puoi selezionarle facilmente quando si crea anche il servizio proxy. Inserisci Descrizione dell'immagine qui

Penso che sia possibile fare riferimento alle risorse come "File: /wsdl/myservicesoap.wsdl" solo quando sono all'interno di una directory denominata 'wsdl' nel file system locale. BTW, sui messaggi di errore .. Se si guarda i registri del server ESB, vedrai il seguente errore quando si tenta di aggiornare il proxy che si riferisce a un file non esistente.

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
.

Altri suggerimenti

Ho trovato una soluzione semplice per questo da un blog: Nel mio scenario ho avuto un WSDL, che ha importato un altro wsdl che ha importato un XSD.Le strutture effettive erano nel secondo WSDL.

Import Line nell'originale WSDL:

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

Import Line nel secondo WSDL:

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

XML richiesto sul 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"/>
.

Dove ho voci locali per "file_requered_service_1_0.wsdl" ecc. Ett ecc. Le voci locali contenenti i file WSDL e XSD originali.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top