Como baixar e usar jaxws-rt.jar
JAX-WS é uma API padronizada para criar e consumir serviços da Web SOAP em Java. Neste artigo, aprenderemos como baixar e usar o arquivo jaxws-rt.jar, que é o pacote de tempo de execução JAX-WS que contém as classes de implementação e dependências da API JAX-WS.
O que é jaxws-rt.jar?
Antes de baixar e utilizar o arquivo jaxws-rt.jar, vamos entender o que é e o que contém.
jaxws-rt.jar download
Download Zip: https://tweeat.com/2vSvNz
API JAX-WS e RI
JAX-WS significa Java API for XML Web Services. É um conjunto de interfaces e anotações que definem como criar e consumir serviços da Web SOAP em Java. Faz parte da plataforma Java padrão desde o Java SE 6.
JAX-WS RI significa implementação de referência JAX-WS. É um projeto de software livre que fornece uma implementação completa e compatível da API JAX-WS. Também inclui algumas extensões e ferramentas para desenvolvimento de serviços web, como wsimport, wsgen, wsdlc, etc.
Pacote de tempo de execução JAX-WS
O arquivo jaxws-rt.jar é o pacote configurável de tempo de execução JAX-WS que contém as classes de implementação e dependências da API JAX-WS e RI. Inclui os seguintes pacotes:
com.sun.xml.ws: O pacote principal que contém as classes para criar e chamar serviços da Web, como Service, Endpoint, Dispatch, etc.
com.sun.xml.ws.policy: O pacote que contém as classes para lidar com asserções WS-Policy, como Policy, Assertion, etc.
com.sun.xml.ws.addressing: O pacote que contém as classes para suportar WS-Addressing, como AddressingVersion, WSEndpointReference, etc.
com.sun.xml.ws.binding: O pacote que contém as classes para gerenciar ligações de serviço da web, como Binding, BindingProvider, SOAPBinding, etc.
com.sun.xml.ws.encoding: O pacote que contém as classes para codificar e decodificar mensagens SOAP, como Codec, ContentType, XMLHTTPBindingCodec, etc.
com.sun.xml.ws.message: O pacote que contém as classes para representar mensagens SOAP e anexos, como Message, Header, AttachmentSet, etc.
com.sun.xml.ws.model: O pacote que contém as classes para modelagem de metadados de serviço da web, como SEIModel, JavaMethod, ParameterBinding, etc.
com.sun.xml.ws.transport: O pacote que contém as classes para manipulação de protocolos de transporte de serviço da web, como WSHTTPConnection, TransportPipeFactory, TransportTubeFactory, etc.
com.sun.xml.ws.util: O pacote que contém algumas classes de utilitários para desenvolvimento de serviços web, como VersionUtil, NamespaceSupport, Pool, etc.
org.jvnet.ws.databinding: O pacote que contém algumas interfaces e anotações para suporte de ligação de dados, como DatabindingFactory, DatabindingModeFeature, etc.
Como baixar jaxws-rt.jar?
Existem diferentes maneiras de baixar o arquivo jaxws-rt.jar. Aqui estão alguns deles:
Usando o Maven
Se estiver usando o Maven como sua ferramenta de construção, você pode adicionar a seguinte dependência ao seu arquivo pom.xml:
<dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws -rt</artifactId> <version>3.0.0</version> </dependency>
Isso fará o download do arquivo jaxws-rt.jar e suas dependências transitivas do Repositório Central Maven.
Usando Java2s
Se você não estiver usando o Maven, poderá fazer o download do arquivo jaxws-rt.jar no site do Java2s. Este site fornece uma coleção de bibliotecas e recursos Java para várias finalidades. Você pode procurar por jaxws-rt.jar na caixa de pesquisa e baixar a versão mais recente ou qualquer versão anterior que você precisar.
Usando páginas do GitHub
Outra opção para baixar o arquivo jaxws-rt.jar é usar as páginas do GitHub do projeto JAX-WS RI. Este projeto hospeda o código-fonte e as liberações do JAX-WS RI. Você pode navegar na página de lançamentos e baixar o arquivo jaxws-rt.jar do arquivo zip ou tar.gz correspondente.
Como usar o jaxws-rt.jar?
Depois de fazer o download do arquivo jaxws-rt.jar, você pode usá-lo para criar e consumir serviços da web SOAP em Java. Aqui estão alguns passos a seguir:
Criando um serviço Web SOAP
Para criar um serviço da web SOAP usando JAX-WS, você precisa fazer duas coisas: definir a interface de serviço e implementar a classe de serviço.
Abordagem de baixo para cima
A abordagem de baixo para cima é começar com a classe de serviço e usar anotações para definir a interface de serviço. Por exemplo, suponha que você queira criar um serviço da web de calculadora simples que possa realizar operações de adição, subtração, multiplicação e divisão. Você pode escrever a classe de serviço da seguinte maneira:
importar javax.jws.WebService; importar javax.jws.WebMethod; importar javax.jws.WebParam; @WebService public class CalculatorService @WebMethod public double add(@WebParam(nome = "x") double x, @WebParam(nome = "y") double y) return x + y; @WebMethod public double subtract(@WebParam(nome = "x") double x, @WebParam(nome = "y") double y) return x - y; @WebMethod public double multiple(@WebParam(nome = "x") double x, @WebParam(nome = "y") double y) return x * y; @WebMethod public double divide(@WebParam(nome = "x") double x, @WebParam(nome = "y") double y) return x / y;
A anotação @WebService indica que esta classe é um terminal de serviço da web. A anotação @WebMethod indica que cada método é uma operação de serviço da web. A anotação @WebParam indica o nome de cada parâmetro na mensagem SOAP.
Para gerar a interface de serviço (também conhecida como SEI ou Service Endpoint Interface) e o arquivo WSDL (Web Service Description Language) desta classe, você pode usar a ferramenta wsgen que vem com o arquivo jaxws-rt.jar. Por exemplo, você pode executar o seguinte comando em seu terminal:
wsgen -cp . -d output -keep CalculatorService
Isso criará um arquivo CalculatorService.class no diretório de saída, juntamente com um arquivo CalculatorService.wsdl e um arquivo CalculatorServiceSEI.class. O arquivo CalculatorServiceSEI.class é a interface de serviço que define os métodos e anotações do serviço da web.O arquivo CalculatorService.wsdl é um documento XML que descreve o contrato de serviço da Web, como nome, porta, ligação, operações, mensagens, etc.
Abordagem de cima para baixo
A abordagem de cima para baixo é começar com o arquivo WSDL e usá-lo para gerar a interface de serviço e a classe. Por exemplo, suponha que você tenha um arquivo WSDL que defina um serviço da web de calculadora da seguinte forma:
<?xml version="1.0" encoding="UTF-8"?> <definitions name="CalculatorService" targetNamespace=" xmlns=" xmlns:soap=" xmlns:tns=" xmlns:xsd=" <types> <xsd:schema targetNamespace=" <xsd:element name="addRequest"> <xsd:complexType> <x sd:sequence> <xsd:element name="x" type="xsd:double"/> <xsd:element name="y" type="xsd:double"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="addResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="result" type="xsd:double"/> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- Similar elements for subtract, multiply, and divide operations --> </xsd:schema> </types> <message name="addRequest"> <part name="parameters" element="tns:addRequest"/> </message> <message name="addResponse"> <part name="parameters" element="tns:addResponse"/> </message> <!-- Similar messages for subtract, multiply, and divide operations --> <portType name="CalculatorServiceSEI"> <operation name="add"> <input message="tns:addRequest"/> <output message="tns:addResponse"/> </operation> <!-- Similar operations for subtract, multiply, and divide operations --> </portType> <binding name="CalculatorServiceBinding" type="tns:CalculatorServiceSEI"> <soap:binding style="document" transport=" <operation name="add"> <soap:operation soapAction="" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <!-- Similar operations for subtract, multiply, and divide operations --> </binding> <service name="CalculatorService"> <port name="CalculatorServicePort" binding="tns:CalculatorServiceBinding"> <soap:address location=" </port> </service> </definitions>
Para gerar a interface de serviço e a classe a partir desse arquivo WSDL, você pode usar a ferramenta wsimport que vem com o arquivo jaxws-rt.jar. Por exemplo, você pode executar o seguinte comando em seu terminal:
wsimport -d output -keep CalculatorService.wsdl
Isso criará um arquivo CalculatorService.class e um arquivo CalculatorServiceSEI.class no diretório de saída. O arquivo CalculatorService.class é a classe de serviço que estende a classe javax.xml.ws.Service e fornece métodos para obter a porta do serviço da web. O arquivo CalculatorServiceSEI.class é a interface de serviço que define os métodos e anotações do serviço da web.
Consumindo um Web Service SOAP
Para consumir um serviço da Web SOAP usando JAX-WS, você precisa fazer duas coisas: gerar os stubs do cliente e chamar os métodos de serviço.
Gerando Stubs de Cliente
Os stubs do cliente são as classes que atuam como proxies para o serviço da web. Eles ocultam os detalhes da comunicação SOAP e permitem que você invoque os métodos de serviço da Web como se fossem métodos locais. Para gerar os stubs do cliente, você precisa ter o arquivo WSDL do serviço da web. Você pode usar a ferramenta wsimport para gerar os stubs do cliente a partir do arquivo WSDL. Por exemplo, se você tiver o arquivo CalculatorService.wsdl, poderá executar o seguinte comando em seu terminal:
wsimport -d output -keep CalculatorService.wsdl
Isso criará um arquivo CalculatorService.class e um arquivo CalculatorServiceSEI.class no diretório de saída. O arquivo CalculatorService.class é a classe de serviço que estende a classe javax.xml.ws.Service e fornece métodos para obter a porta do serviço da web.O arquivo CalculatorServiceSEI.class é a interface de serviço que define os métodos e anotações do serviço da web.
Chamando métodos de serviço Chamando métodos de serviço
Depois de ter os stubs do cliente, você pode usá-los para invocar os métodos de serviço da web. Você precisa criar uma instância da classe de serviço e obter a porta do serviço da web. Então, você pode chamar os métodos da porta como se fossem métodos locais. Por exemplo, se você deseja usar o serviço da Web da calculadora, pode escrever o seguinte código:
importar javax.xml.ws.WebServiceRef; public class CalculatorClient @WebServiceRef(wsdlLocation = "CalculatorService.wsdl") serviço CalculatorService privado estático; public static void main(String[] args) try // Obtém a porta do serviço da web CalculatorServiceSEI port = service.getCalculatorServicePort(); // Chama os métodos de serviço da web double x = 10.0; duplo y = 5,0; resultado duplo = 0,0; resultado = port.add(x, y); System.out.println("Adição: " + x + " + " + y + " = " + resultado); resultado = port.subtract(x, y); System.out.println("Subtração: " + x + " - " + y + " = " + resultado); resultado = port.multiply(x, y); System.out.println("Multiplicação: " + x + " * " + y + " = " + resultado); resultado = port.divide(x, y); System.out.println("Divisão: " + x + " / " + y + " = " + resultado); catch (Exception e) e.printStackTrace();
Este código imprimirá a seguinte saída:
Adição: 10,0 + 5,0 = 15,0 Subtração: 10,0 - 5,0 = 5,0 Multiplicação: 10,0 * 5,0 = 50,0 Divisão: 10,0 / 5,0 = 2,0
Conclusão
Neste artigo, aprendemos como fazer download e usar o arquivo jaxws-rt.jar, que é o pacote de tempo de execução JAX-WS que contém as classes de implementação e dependências da API e RI JAX-WS.Também aprendemos como criar e consumir serviços da web SOAP em Java usando JAX-WS.
JAX-WS é uma API poderosa e fácil de usar para desenvolver e consumir serviços da Web SOAP em Java. Ele fornece uma maneira padrão e portátil de criar e invocar serviços da Web em diferentes plataformas e tecnologias.
perguntas frequentes
P: O que é SOAP?
R: SOAP significa Simple Object Access Protocol. É um protocolo para troca de informações estruturadas e digitadas entre terminais de serviços da Web usando XML.
P: O que é WSDL?
R: WSDL significa Web Service Description Language. É um documento XML que descreve o contrato de serviço da web, como nome, porta, ligação, operações, mensagens, etc.
P: O que é WS-Policy?
R: WS-Policy é uma especificação que define uma estrutura para expressar políticas que se aplicam a serviços da web.
P: O que é endereçamento WS?
R: WS-Addressing é uma especificação que define uma maneira padrão de identificar e trocar informações sobre terminais de serviço da web.
P: O que é vinculação de dados?
R: A vinculação de dados é um processo que converte dados XML em objetos Java e vice-versa.
0517a86e26
Comments