Web Services com JAX-WS
Criando Web Services com JAX-WS

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.
Last updated
Was this helpful?