1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Manipulação de imports no wsdl.

Tenho um web service que em um dos métodos recebe um objeto como parâmetro. A classe desse objeto possui algumas anotações para a construção de um xml através de JAXB, e tem relação com duas URI's de namespace.

No momento em que é gerado o wsdl, essas URI's são utilizadas para gerar o complex type dessa classe.

<types>
  <xsd:schema>
    <xsd:import schemaLocation="http://localhost:8080/<webservice>?xsd=1" namespace="<1ª uri da classe>"/>
  </xsd:schema>
  <xsd:schema>
    <xsd:import schemaLocation="http://localhost:8080/<webservice>?xsd=2" namespace="<2ª uri da classe>"/>
  </xsd:schema>
  <xsd:schema>
    <xsd:import schemaLocation="http://localhost:8080/<webservice>?xsd=3" namespace="<uri do meu webservice>"/>
  </xsd:schema>
</types>

O primeiro xsd contém a definição da classe relacionado a primeira uri. O objeto que o meu web service recebe como parâmetro possui um atributo do tipo dessa classe.

O segundo xsd contém a definição da classe relacionado a segunda uri. O objeto que o meu web service recebe como parâmetro é do tipo dessa classe. O segundo xsd possui um import do primeiro xsd.

O terceiro xsd contém o resto das definições de métodos e parâmetros do meu web service e possui um import dos outros dois xsd's.

Meu problema é o seguinte. Eu preciso que um outro algoritmo interprete esse wsdl. Porém esse algoritmo acusa que o namespace relacionado ao meu web service não pode ser adicionado - aparentemente - ao terceiro xsd pois o prefixo desse namespace ("tns") entra em conflito com algum outro namespace declarado.

Analisando esse wsdl, eu possuo um target namespace declarado no root element do meu wsdl, com prefixo "tns", que é a uri do meu web service. E mais três declarados um em cada xsd também com prefixo "tns". O primeiro e o segundo relacionados a suas respectivas uri's e o terceiro relacionado a uri do meu web service.

Eu não sei exatamente como resolver o meu problema, mas suspeito que se eu conseguir concentrar os três xsd's em um só, e retirar os dois imports do meu wsdl, deixando apenas um import resolva. Gostaria de saber se alguém teria alguma solução pra me ajudar.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags webservices wsdl xml java ou faça a sua própria pergunta.