Desenvolvimento
  • JAVA
  • Java
    • Integração Java e C++ com JNI
    • Objetos Distribuídos com RMI
    • Teclas de Atalho do Eclipse
    • Apache Maven Framework
    • Hibernate Framework
      • @OneToMany Relacionamento 1:N
      • @ManyToOne Relacionamento N:1
  • WebServices
    • Web Services e Arquitetura Orientada a Serviços
    • Gerando Web Services PHP com NuSoap
    • Enviando uma Requisição SOAP a um Serviço
    • Web Services com Spring e Apache CXF
    • Web Services com JAX-WS
  • Microservices
    • Introdução à Microservices
  • Design Patterns Java
    • Design Patterns
  • Documentações Oficiais
  • Apache Maven
  • Apache Struts
  • Docker Hub
  • Maven Repository
  • Spring Framework
Powered by GitBook
On this page

Was this helpful?

  1. WebServices

Web Services com JAX-WS

Criando Web Services com JAX-WS

PreviousWeb Services com Spring e Apache CXFNextIntrodução à Microservices

Last updated 4 years ago

Was this helpful?

A Java XML API for Web Services (JAX-WS) é uma biblioteca de Web Services para Java, que permite implementar serviços baseados nas normas XSD, WSDL e SOAP. A JAX-WS define o mapeamento de WSDL para Java e vice-versa. Com a JAX-WS é possível implementar Web Services partindo de um contrato WSDL ou partindo de código Java. Com a JAX-WS é também possível criar código cliente de invocação de Web Services.

Implementando o Endpoint do Serviço

Para implementação da classe de serviço utilizaremos as anotações @WebService e @WebMethod do pacote javax.

package service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public class WsServidor {

	@WebMethod
	public String exibirVersao() {

		return "Web Service com JAX-WS, versão 1.0";
	}
	@WebMethod
	public String retornarString(@WebParam(name = "msg") String msg) {

		return "echo :: " + msg;
	}
	@WebMethod
	public Double retornarSoma(@WebParam(name = "valor1") Double x,
			@WebParam(name = "valor2") Double y) {

		return x + y;
	}
}

@WebService : representa uma interface ou classe de serviço.

@WebMethod: representa os métodos de uma interface de serviço.

@WebParam: representa os parâmetros de um método.

Gerando os artefatos do Serviço

Para gerar os artefatos do Serviço utilizaremos a ferramenta wsgen. Execute os comandos do wsgen apontado pro diretório raiz do projeto.

wsgen -s src -d src -cp build\classes -keep service.WsServidor

Para gerar com o WSDL, ServicePort e ServiceName use o comando a seguir, digite tudo em uma única linha

wsgen -s src -d src -cp build\classes -wsdl -r wsdl -keep 
-portname "{http://jaxWsServidor/}JaxWsServidorPort" 
-servicename "{http://jaxWsServidor/}JxWsServidorService" 
service.WsServidor

Depois de gerados os artefatos com o wsgen o projeto deverá ficar com seguinte estrutura:

Publicando o EndPoint do Serviço

Para publicar o Serviço, criaremos uma classe com o publicador do endpoint.

package service;

import javax.xml.ws.Endpoint;

public class PublicadorWsServidor {

	public static void main(String[] args) {		
		WsServidor servidor = new WsServidor();
		Endpoint.publish("http://localhost:8080/WsServidor/service", servidor);
		System.out.println("Servidor Publicado: http://localhost:8080/WsServidor/service");		
	}
}

Para visualizar execute main para publicar o Serviço e digite em seu navegador: .

http://localhost:8080/WsServidor/service
Modelo Cliente / Servidor JAX-WS em SOAP
Estrutura Endpoint no Eclipse