Gerando Artefatos Java para Aplicativos JAX-WS a partir de um Arquivo WSDL

Use as ferramentas JAX-WS para gerar os artefatos Java™ que são necessários para desenvolver serviços da Web JAX-WS ao iniciar com um arquivo Web Services Description Language (WSDL).

Antes de Iniciar

Quando você usa uma abordagem de desenvolvimento descendente para desenvolver serviços da Web Java API for XML-Based Web Services (JAX-WS) iniciando com um arquivo WSDL, você deve obter a Uniform Resource Locator (URL) para o arquivo WSDL.

[Windows][z/OS]Se o arquivo WSDL for um arquivo local, a URL será semelhante a este exemplo: file:drive:\path\file_name.wsdl.

[Linux][AIX][HP-UX][Solaris][IBM i]Se o arquivo WSDL for um arquivo local, a URL será semelhante a este exemplo: file:/path/file_name.wsdl.

Você também pode especificar os arquivos locais utilizando o caminho do sistema de arquivos absoluto ou relativo.

Sobre Esta Tarefa

É possível usar a ferramenta JAX-WS, wsimport, para processar um arquivo WSDL e gerar artefatos Java portáteis que são usados para criar um cliente de serviço da Web. Os artefatos Java portáteis criados utilizando a ferramenta wsimport são:
  • SEI (Service Endpoint Interface)
  • Classe de Serviço
  • A classe de exceção que é mapeada da classe wsdl:fault (se houver)
  • O JAXB (Java Architecture for XML Binding) gerou valores de tipo que são classes Java mapeadas a partir dos tipos de esquema XML
Configurações suportadas Configurações suportadas: As ferramentas de linha de comandos wsimport, wsgen, schemagen e xjc não são suportadas na plataforma z/OS. Essa funcionalidade é permitida pelas ferramentas de montagem fornecidas com o WebSphere Application Server em execução na plataforma z/OS. Consulte sobre essas ferramentas de linha de comandos para aplicativos JAX-WS para saber mais sobre elas.sptcfg
Boas Práticas Boas Práticas: WebSphere Application Server fornece API Java para XML-Based Web Services (JAX-WS) e ferramentas do Java Architecture para XML Binding (JAXB). As ferramentas de linha de comandos wsimport, wsgen, schemagen e xjc estão localizadas no diretório app_server_root\bin\ no WebSphere Application Server tradicional.Os comandos xjc e schemagen estão localizados no diretório app_server_root\jaxb\bin\, no perfil Liberty. Em determinadas ocasiões, os artefatos gerados pelas ferramentas fornecidas pelo WebSphere Application Server e pelo JDK suportam os mesmos níveis das especificações. Em geral, os artefatos gerados pelas ferramentas JDK são portáteis entre outros ambientes de tempo de execução compatíveis. Entretanto, é uma boa prática usar as ferramentas fornecidas com este produto para obter uma perfeita integração no ambiente do WebSphere Application Server e para aproveitar os recursos que talvez só sejam suportados no WebSphere Application Server. Para usufruir das vantagens dos conjuntos de ferramentas JAX-WS e JAXB V2.2, use as ferramentas fornecidas com o servidor de aplicativos localizado no diretório app_server_root\bin\.bprac

Além de usar as ferramentas da linha de comandos, você pode chamar essas ferramentas JAX-WS a partir de ambientes de construção Ant. Use a tarefa Ant com.sun.tools.ws.ant.WsImport a partir do ambiente de construção Ant para chamar a ferramenta wsimport. Para funcionar adequadamente, esta tarefa Ant requer que chame Ant usando o script ws_ant.

Procedimento

Execute o comando wsimport para gerar os artefatos portáveis do cliente. A ferramenta wsimport está localizada no diretório app_server_root\bin\.
[Windows]
app_server_root\bin\wsimport.bat wsdl_URL 
[AIX][HP-UX][Linux][Solaris]
app_server_root/bin/wsimport.sh wsdl_URL
[IBM i]
app_server_root/bin/wsimport wsdl_URL
(Opcional) Utilize as seguintes opções com o comando wsimport:
  • Use a opção -verbose para ver uma lista de arquivos gerados ao executar o comando.
  • Utilize a opção -keep para manter arquivos Java gerados.
  • Utilize a opção -wsdlLocation para especificar o local do arquivo WSDL.
    Boas Práticas Boas Práticas: Uma boa prática para garantir que você produza um enterprise archive (EAR) de cliente de serviços da Web JAX-WS que seja portátil para outros sistemas é compactar o documento WSDL dentro do módulo aplicativo como um arquivo Java archive (JAR) ou um arquivo web application archive (WAR). É possível especificar um URI relativo para o local do arquivo WSDL utilizando o atributo de anotação -wsdllocation. Por exemplo, se seu arquivo MyService.wsdl estiver localizado no diretório META-INF/wsdl/, execute a ferramenta wsimport e use a opção -wsdllocation para especificar o valor a ser usado para o local do arquivo WSDL. Isso garante que os artefatos gerados contenham as informações corretas de -wsdllocation necessárias quando o aplicativo é carregado no console administrativo, por exemplo:
    wsimport -keep -wsdllocation=META-INF/wsdl/MyService.wsdl
    bprac
  • Utilize a opção -b se estiver utilizando customizações de WSDL ou de esquema para especificar arquivos de ligação externos que contenham suas customizações.

    É possível customizar as ligações em seu arquivo WSDL para ativar mapeamentos ou conexões assíncronas. Para gerar interfaces assíncronas, inclua a declaração de ligação enableAsyncMapping de customização apenas do cliente no elemento wsdl:definitions ou em um arquivo de ligação externo que seja definido no arquivo WSDL. Use a declaração de ligação enableMIMEContent em seu cliente customizado ou arquivo de ligação do servidor ou desative as regras de mapeamento mime:content padrão. Para informações adicionais sobre declarações de ligações customizadas, consulte o capítulo 8, especificação JAX-WS.

Consulte sobre wsimport para obter informações adicionais sobre esse comando e opções adicionais que podem ser especificadas.

Resultados

Você tem os artefatos Java necessários para criar um serviço da Web JAX-WS. Para obter informações adicionais sobre o uso, a sintaxe e os parâmetros do comando wsimport, consulte a documentação do comando wsimport para aplicativos JAX-WS.

Exemplo

O seguinte exemplo ilustra como o comando wsimport é utilizado para processar o arquivo Ping WSDL de amostra para gerar artefatos portáteis.
  1. Copie o arquivo ping.wsdl a seguir para um diretório temporário.
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
     * Este programa pode ser usado, executado, copiado, modificado e distribuído
     * sem os direitos autorais para fins de desenvolvimento, uso, marketing ou distribuição.
     -->
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    	xmlns:tns="http://com/ibm/was/wssample/sei/ping/"
    	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="PingService"
    	targetNamespace="http://com/ibm/was/wssample/sei/ping/">
    	<wsdl:types>
    		<xsd:schema
    			targetNamespace="http://com/ibm/was/wssample/sei/ping/"
    			xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    
    
    			<xsd:element name="pingStringInput">
    				<xsd:complexType>
    					<xsd:sequence>
    						<xsd:element name="pingInput" type="xsd:string" />
    					</xsd:sequence>
    				</xsd:complexType>
    			</xsd:element>
    		</xsd:schema>
    	</wsdl:types>
    	<wsdl:message name="pingOperationRequest">
    		<wsdl:part element="tns:pingStringInput" name="parameter" />
    	</wsdl:message>
    	<wsdl:portType name="PingServicePortType">
    		<wsdl:operation name="pingOperation">
    			<wsdl:input message="tns:pingOperationRequest" />
    
    		</wsdl:operation>
    	</wsdl:portType>
    	<wsdl:binding name="PingSOAP" type="tns:PingServicePortType">
    		<soap:binding style="document"
    			transport="http://schemas.xmlsoap.org/soap/http" />
    		<wsdl:operation name="pingOperation">
    			<soap:operation soapAction="pingOperation" style="document" />
    			<wsdl:input>
    				<soap:body use="literal" />
    			</wsdl:input>
    		</wsdl:operation>
    	</wsdl:binding>
    	<wsdl:service name="PingService">
    		<wsdl:port binding="tns:PingSOAP" name="PingServicePort">
    			<soap:address
    				location="http://localhost:9080/WSSampleSei/PingService" />
    		</wsdl:port>
    	</wsdl:service>
    </wsdl:definitions>
  2. Execute o comando wsimport a partir do diretório app_server_root\bin\.
    [Windows]
    app_server_root\bin\wsimport.bat -keep -verbose ping.wsdl
    [Linux][AIX][HP-UX][Solaris]Sistemas operacionais, como AIX ou Linux especificam a origem do script para o shell pai para herdar as variáveis exportadas, executando o seguinte comando:
    . ./setupCmdLine.sh  (Observe o espaço entre os pontos).
    a partir do diretório . /app_server_root>/bin. Execute o comando wsimport,
    app_server_root/bin/wsimport.sh -keep -verbose ping.wsdl 
    [IBM i]
    app_server_root/bin/wsimport -keep -verbose ping.wsdl
Depois de gerar os arquivos de modelo utilizando o comando wsimport, são gerados os seguintes arquivos:
com\ibm\was\wssample\sei\ping\ObjectFactory.java
com\ibm\was\wssample\sei\ping\package-info.java
com\ibm\was\wssample\sei\ping\PingServicePortType.java
com\ibm\was\wssample\sei\ping\PingStringInput.java
com\ibm\was\wssample\sei\ping\PingService.java

O arquivo ObjectFactory.java contém os métodos factory para cada interface de conteúdo Java e interface de elemento Java gerada no pacote de ping associado. O arquivo package-info.java obtém o valor targetNamespace e cria a estrutura de diretório. O arquivo PingServicePortType.java é a classe SEI (interface de terminal de serviço) gerada que contém a definição de método ping. O arquivo PinStringInput.java contém os valores de tipo gerado por JAXB que são classes Java mapeadas dos tipos de esquema XML. O arquivo PingService.java é o arquivo de classe do provedor de serviços gerado, utilizado pelo cliente JAX-WS.

O que Fazer Depois

Conclua a implementação do seu aplicativo de serviço da Web concluindo a implementação de JavaBeans ou dos enterprise beans.

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



Í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=twbs_jaxwsfromwsdl
Nome do arquivo: twbs_jaxwsfromwsdl.html