Criando Web Service em Java com JAX-WS – Robson Perassoli – Software Engineer
Com base na JSR-224 o projeto Glassfish desenvolveu uma implementação de referência chamada RI JAX-WS. Que mais tarde foi fundido com o projeto Glassfish WSIT que visava dar o RI JAX-WS maior interoperabilidade.
Desta junção originou-se o Glassfish Metro que hoje é a implementação que possibilita a maior compatibilidade com diferentes plataformas e tipos de web services, como os RPC-Style.
Agora que conhecemos um pouco o que será utilizado, vamos por a mão na massa!
Crie um projeto WEB na IDE de sua preferência. Eu utilizei o Netbeans 7.0 juntamente com o o Tomcat 7.0.
Após ter o projeto criado vamos fazer o download do metro. Para este projeto baixei o arquivo: metro-standalone-2.1.1.zip.. Após finalizar o download descompacte o arquivo e copie o conteúdo da pasta lib para o classpath do seu projeto.
Depois de copiar o metro podemos iniciar nosso web Service, que terá como função: Receber um objeto Pessoa e retornar uma string saudando a Pessoa pelo seu nome.
Segue a implementação da classe Pessoa:
//Getters e Setter omitidos
A seguir crie a classe HelloService, que será a implementação do WebService:
public String sayHello(@WebParam(name="pessoa") Pessoa p){
return "Hello " + p.getNome();
Podemos notar a simplicidade em definir o WebService. Veja a anotação @WebService é ela que diz que esta classe é um WebService. Após a definição da classe podemos observar o método público criado, este método processará a chamada, recebendo um parâmetro com um objeto Pessoa.
O método sayHello também está anotado, porém com @WebMethod, esta anotação informa que o método será publicado, o mesmo acontece com o parametro, que está anotado com @WebParam.
OBS: As anotações no método e atributos não são obrigatórias, possibilitando a criação do webservice sem elas. Porém é altamente recomendado que sejam utilizadas as anotações para não termos problemas posteriores.
Após a criação das classes é necessário configurar o arquivo web.xml. Vamos adicionar um servlet que receberá as requisições para o web service criado, e um listener que fará a leitura do arquivo sun-jaxws.xml que contém a implementação do serviço.
O arquivo sun-jaxws.xml ainda não existe, portanto crie-o dentro da pasta WEB-INF com o seguinte conteúdo:
<endpoint implementation="seupacote.HelloService" name="HelloService" url-pattern="/HelloService"/>
Altere o arquivo web.xml adicionando o seguinte conteúdo:
Após terminar estas configurações seu WebService esta pronto para ser executado. Você pode visualizar o WSDL gerado acessando http://seuhost:suaporta/SuaApp/HelloService?wsdl.