WSDL

WSDL (Web Services Description Language) é uma linguagem de descrição baseada em XML (Extensible Markup Language). Essa linguagem foi submetida ao World Wide Web Consortium (W3C) como o Padrão de mercado para descrição de serviços da Web. A força de WSDL é derivada de dois princípios arquitetônicos principais: a capacidade de descrever um conjunto de operações de negócios e a capacidade de separar a descrição em duas unidades básicas. Essas unidades são uma descrição das operações e os detalhes de como a operação e as informações associadas a ela são empacotadas.

Um documento WSDL define serviços como coleções de nós de extremidade de rede, ou portas. Em WSDL, as definições abstratas de terminais e mensagens são separadas de suas ligações concretas de implementação de rede ou de formato de dados. Essa separação suporta a reutilização de definições abstratas: mensagens, que são descrições abstratas de dados trocados, e tipos de portas, que são coleções abstratas de operações. O protocolo e as especificações de formato de dados concretos para um determinado tipo de porta constituem uma ligação reutilizável. Uma porta é definida pela associação de um endereço de rede a uma ligação reutilizável e uma coleção de portas define um serviço. Portanto, um documento WSDL é composto por vários elementos.

A seguir é apresentada a estrutura das informações em um arquivo WSDL:Anatomy of a WSDL file

Um arquivo WSDL contém as seguintes partes:
  • Definição da interface do serviço da Web

    Essa parte contém os elementos e os namespaces.

  • Implementação do serviço da Web

    Essa parte contém as definições do serviço e das portas:

Um arquivo WSDL descreve um serviço da Web com os seguintes elementos:

portType

A descrição das operações e das mensagens associadas. O elemento portType define operações abstratas.

<portType name="EightBall">
  <operation name="getAnswer">
    <input message="ebs:IngetAnswerRequest"/>
    <output message="ebs:OutgetAnswerResponse"/>
  </operation>
</portType>

message

A descrição de parâmetros de entrada e saída e valores de retorno.

<message name="IngetAnswerRequest">
  <part name="meth1_inType" type="ebs:questionType"/>
</message>
<message name="OutgetAnswerResponse">
  <part name="meth1_outType" type="ebs:answerType"/>
</message>

_var

O esquema para descrever tipos XML utilizados nas mensagens.

<types>
  <xsd:schema targetNamespace="...">
    <xsd:complexType name="questionType">
      <xsd:element name="question" type="string"/>
    </xsd:complexType>
    <xsd:complexType name="answerType">
    ...
</types>

ligação

As ligações descrevem o protocolo que é utilizado para acessar um portType, bem como os formatos de dados para as mensagens que são definidas por um elemento portType específico.

<binding name="EightBallBinding" type="ebs:EightBall">
  <soap:binding style="rpc" transport="schemas.xmlsoap.org/soap/http">
  <operation name="ebs:getAnswer">
  <soap:operation soapAction="urn:EightBall"/>
    <input>
      <soap:body namespace="urn:EightBall" ... />
      ...

Serviço

Os serviços e as portas definem o local do serviço da Web.

O serviço contém o nome do serviço da Web e uma lista de portas.

Portas

As portas contêm o local do serviço da Web e a ligação usada para acesso do serviço.
<service name="EightBall">
  <port binding="ebs:EightBallBinding" name="EightBallPort">
    <soap:address location="localhost:8080/axis/EightBall"/>
  </port>
</service>

Ao criar serviços da Web JAX-WS (Java™ API for XML Web Services) ou JAX-RPC (Java API for XML-based RPC), é possível utilizar uma abordagem de desenvolvimento ascendente quando você iniciar a partir dos JavaBeans ou de um enterprise bean, ou pode utilizar uma abordagem de desenvolvimento descendente ao começar com um arquivo Web Services Description Language (WSDL).

Quando criar serviços da Web JAX-WS para este produto, é possível iniciar com um WSDL ou uma classe de bean de implementação. Se iniciar com uma classe de bean de implementação, então utilize a ferramenta de linha de comandos wsgen para gerar todos os artefatos de servidor de serviços da Web, inclusive um WSDL se necessário. Se iniciar com um WSDL, então utilize a ferramenta de linha de comandos wsimport para gerar todos os artefatos de serviços da Web para lado servidor ou lado cliente.

Quando criar serviços da Web JAX-RPC para este produto, você deve primeiro ter um bean de implementação que inclui uma interface de terminal em serviço. Então, você utiliza a ferramenta de linha de comandos Java2WSDL para criar um arquivo WSDL que define os serviços da web. Se você estiver iniciando com o WSDL para gerar a classe do bean de implementação, execute a ferramenta de linha de comandos WSDL2Java em relação ao arquivo WSDL para criar APIs Java e modelos do descritor de implementação.

WSDL com Várias Partes e Publicação do WSDL

O produto suporta implementação dos serviços da web usando um arquivo Web Services Description Language (WSDL) de vários fabricantes. Em arquivos WSDL de vários fabricantes, um arquivo WSDL de implementação contém o wsdl:service. Esse arquivo WSDL de implementação importa um arquivo WSDL de interface, que contém outras construções WSDL. Isso suporta vários serviços da Web utilizando a mesma definição de interface WSDL.

O elemento <wsdl:importar> indica uma referência a outro arquivo WSDL. Se o atributo do local do elemento <wsdl:importar> não contiver uma URL, ou seja, contiver somente um nome de arquivo e não começar com http://, https:// ou file://, o arquivo importado deverá estar localizado no mesmo diretório e não deverá conter um componente de caminho relativo. Por exemplo, se META-INF/wsdl/A_Impl.wsdl estiver em seu módulo e contiver a instrução de importação <wsdl:import="A.wsdl" namespace="..."/> , o arquivo A.wsdl também deverá estar localizado no diretório META-INF/wsdl do módulo.

É recomendável que você coloque todos os arquivos WSDL no diretório META-INF/wsdl, se estiver utilizando o EJB (Enterprise JavaBeans), ou no diretório WEB-INF/wsdl, se estiver utilizando os componentes JavaBeans, mesmo se importações relativas estiverem localizadas dentro dos arquivos WSDL. Caso contrário, há implicações com a publicação do WSDL ao usar um caminho como <location="../interfaces/A_Interface.wsdl"namespace="..."/>. Utilizar um caminho como o do exemplo acima causa uma falha, devido à presença do caminho relativo, independentemente do arquivo estar localizado no caminho ou não. Se o local for um endereço da Web, ele deve estar legível na implementação e na inicialização do servidor.

É possível publicar os arquivos localizados no diretório META-INF/wsdl ou WEB-INF/wsdl por meio de um endereço de URL ou arquivo, incluindo arquivos WSDL ou XSD (XML Schema Definition). Por exemplo, se o arquivo referido no elemento <wsdl-file> do descritor de implementação webservices.xml estiver localizado no diretório META-INF/wsdl ou WEB-INF/wsdl, ele será publicável. Se os arquivos importados pelo <arquivo-wsdl> estiverem localizados no diretório wsdl/ ou em seu subdiretório, eles poderão ser publicados.

Se o arquivo WSDL referido pelo elemento <wsdl-file> estiver localizado em um diretório diferente de wsdl, ou em seus subdiretórios, o arquivo e seus arquivos importados, arquivos WSDL ou XSD que estão no mesmo diretório, serão copiados para o diretório wsdl sem modificação quando o aplicativo for instalado. Esses tipos de arquivos também podem ser publicados.

Se o <wsdl-file> importar um arquivo localizado em um diretório diferente (um diretório que não é -INF/wsdl ou um subdiretório), o arquivo não será copiado para o diretório wsdl e não estará disponível para publicação.

Para serviços da Web JAX-WS, você pode usar uma anotação para especificar o local do WSDL. Utilize a anotação @WebService com o atributo WSDLLocation. O atributo WSDLLocation é opcional. Se esse atributo não estiver especificado, então o WSDL é gerado e publicado a partir das informações que são encontradas nas classes de serviço da Web. Como opção, é possível especificar o local do arquivo WSDL no descritor de implementação webservices.xml. Entretanto, qualquer informação que você definir no descritor de implementação webservices.xml substituirá quaisquer informações correspondentes especificadas pelas anotações.


Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsdl
Nome do arquivo: cwbs_wsdl.html