Baixe a versão 2.1.4. Depois do download execute o jar com o comando:
java -jar JAXWS2.1.4-20080502.jar
Criando o projeto
Crie um novo projeto dinâmico, “Dynamic web project”.
Coloque o nome do projeto e selecione como “Target Runtime” o tomcat e clique em “Finish”.
Seu projeto deve estar com a estrutura abaixo:
Crie um pacote “cadastro” para a classe que vai ser nosso webservice, depois crie a classe CadastraPessoaWS. Crie um pacote “pessoa” e neste pacote a classe Pessoa:
File: Pessoa.java
package pessoa;
import java.io.Serializable;
public class Pessoa implements Serializable
{
private static final long serialVersionUID = 1L;
private Long id;
private String nome;
private String login;
private String senha;
public Pessoa()
{
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
File: CadastraPessoaWS.java
package cadastro;
import pessoa.Pessoa;
public class CadastraPessoaWS
{
public void cadastrar(Pessoa pessoa)
{
System.out.println(pessoa.getNome());
System.out.println(pessoa.getLogin());
System.out.println(pessoa.getSenha());
}
}
Antes de continuar vamos importar alguns jars para nosso projeto. Importe todos os Jars que estão na pasta lib do diretório da biblioteca Jax-Ws para a pasta lib que está dentro de “WebContent\WEB-INF”.
Após importar os jars do JAXWS, vamos anotar a classe CadastraPessoaWS e criar o método que será exposto como serviço na web.
Na classe CadastraPessoaWS crie o método cadastrar e passe como paramêtro uma pessoa, na linha antes da declaração do método coloque a seguinte anotação “@WebMethod” e antes do paramêtro coloque a anotação “@WebParam(name="pessoa")”, na linha anterior à declaração da classe coloque a anotação “@Webservice”, sua classe deve estar assim:
File: CadastraPessoaWS.java
package cadastro;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import pessoa.Pessoa;
@WebService
@SOAPBinding(parameterStyle=ParameterStyle.BARE)
public class CadastraPessoaWS
{
@WebMethod
public void cadastrar(@WebParam(name="pessoa") Pessoa pessoa)
{
System.out.println(pessoa.getNome());
System.out.println(pessoa.getLogin());
System.out.println(pessoa.getSenha());
}
}
Nosso método vai apenas imprimir os valores dos atributos da pessoa, mas poderia ser colocado por exemplo a lógica para gravar a pessoa em um banco de dados.
Na pasta "WebContent\WEB-INF" crie um arquivo XML com o nome: "sun-jaxws.xml com o conteúdo:"
Edite o arquivo "WebContent\WEB-INF\web.xml" e deixe-o como o abaixo:
CadastroPessoaindex.htmlindex.htmindex.jspdefault.htmldefault.htmdefault.jspcom.sun.xml.ws.transport.http.servlet.WSServletContextListenerCadastro de Pessoa JAX-WScadastrocadastrocom.sun.xml.ws.transport.http.servlet.WSServlet1cadastro/cadastro60
Pronto, a parte server está completa, vamos agora fazer um cliente para nosso serviço web.
Crie um novo projeto java com o nome CadastroPessoaCliente, crie uma pasta dentro do projeto com o nome lib e importe os Jars da pasta lib do JAXWS para esta pasta. Configure o build path e inclua os jars da pasta lib em libraries.
Antes de continuar vamos iniciar o webservice no tomcat.
Clique com o botão direito no projeto CadastroPessoa e vá em "Run as -> Run on server", selecione o Tomcat e na tela seguinte veja se a aplicação está na caixa no lado direito e clique em finish. O Tomcat irá iniciar automaticamente.
Verifique se o serviço está disponível acessando o endereço:
http://localhost:8080/CadastroPessoa/cadastro
Com o serviço iniciado, vamos utilizar a ferramenta "wsimport" para gerar o código das classes que irão acessar o webservice. Abra um terminal ou prompt do dos no windows e vá até o diretório do projeto cliente e execute o seguinte comando:
Este comando irá gerar o código das classes necessárias para nosso cliente com base no wsdl do serviço. Volte para o eclipse e de um "Refresh" no projeto, repare que foi criado um pacote "cadastro" com algumas classes dentro.
Crie mais um pacote com o nome "cliente" e neste pacote crie uma classe com o nome "Cliente", crie o método main e deixe a classe conforme o código abaixo:
package cliente;
import cadastro.CadastraPessoaWS;
import cadastro.CadastraPessoaWSService;
import cadastro.Pessoa;
public class Cliente
{
public static void main(String[] args)
{
Pessoa pessoa = new Pessoa();
pessoa.setNome("Paulo Teste");
pessoa.setLogin("paulo");
pessoa.setSenha("senha");
CadastraPessoaWSService servico = new CadastraPessoaWSService();
CadastraPessoaWS port = servico.getCadastraPessoaWSPort();
port.cadastrar(pessoa);
}
}
Pronto, nosso cliente está pronto, agora é só executar e ver o resultado na "Console" do eclipse.
Você pode baixar os códigos de exemplo deste tutorial abaixo: