Pergunta

Como referência arquivos WSDL a partir do registro quando a definição de um novo serviço de proxy?Eu estou usando o WSO2 ESB.

Q1: Posso usar o localEntry elemento para definir o WSDL no meu serviço de proxy?Por exemplo:

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

Desde que eu tenho usado anteriormente Console De Gerenciamento > Adicionar Coleção > criar "wsdl", e Adicionar O Recurso > MyServiceSOAP.wsdl.Eu tenho um problema com a "src" value, tanto

"/wsdl/MyServiceSOAP.wsdl" 
e
"wsdl/MyServiceSOAP.wsdl" 
não funcionam.Eu sigo a documentação mas eles não mostram como fazer upload de WSDLs para o registro.

Q2: O que se MyServiceSOAP.wsdl importa MyService.wsdl?Eu preciso usar o Adicionar O Recurso para MyService.wsdl bem, mas eu preciso fazer mais alguma coisa para fazer o Proxy compilar?

Foi útil?

Solução

Eu acho que você está se referindo ao registro aqui.O espaço de Registo em cada produto contém três grandes partições.

  • Local
  • Configuração
  • Governança

Registry Space in the ESB A configuração do registro contém produtos específicos de configuração que pode ser compartilhado entre várias instâncias do mesmo produto (de um cluster de ESB nós por exemplo).Assim você pode criar o WSDL coleção dentro da Configuração do registro e se referem a ele como..

"conf:/wsdl/MyServiceSOAP.wsdl"

Carregando os recursos para Registro, você pode pegá-los facilmente ao criar o serviço de proxy também.enter image description here

Eu acho que você pode se referir a recursos como "file:/wsdl/MyServiceSOAP.wsdl" somente quando eles estão dentro de um diretório chamado "wsdl" no sistema de arquivos local.BTW, sobre as mensagens de erro..Se você olhar para a ESB logs de servidor, você verá o seguinte erro quando você tenta para atualizar o proxy referindo-se a um não arquivo existente.

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

Outras dicas

Eu encontrei uma solução simples para ele a partir de um blog:No meu Cenário, eu tinha um wsdl, que importou outro wsdl importado um xsd.Estruturas reais foram na segunda wsdl.

Linha de importação no original wsdl:

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

Linha de importação no segundo wsdl:

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

Necessário xml no 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"/>

Onde eu locais entradas para "file_required_service_1_0.wsdl", etc local nomeado de entradas que contêm o original wsdl e xsd arquivos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top