Webservices com Eclipse, JAXWS e Tomcat

By Administrador, on 20-06-2008 00:30

Views : 41668

Favoured : None

Published in : Java, General

Olá, nesta dica vou mostrar como fazer um webservice com o Eclipse, JAXWS e Tomcat.

Faça o download do JAX-WS em:

https://jax-ws.dev.java.net/

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: 


CadastroPessoa

index.html
index.htm
index.jsp
default.html
default.htm
default.jsp

com.sun.xml.ws.transport.http.servlet.WSServletContextListener


Cadastro de Pessoa JAX-WS
cadastro
cadastro
com.sun.xml.ws.transport.http.servlet.WSServlet
1


cadastro
/cadastro


60


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:

$> wsimport -d src -s src http://localhost:8080/CadastroPessoa/cadastro?wsdl

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:

CadastroPessoa.zip

CadastroPessoaCliente.zip

 

 

Last update: 21-01-2009 21:05

Keywords : java, webservices, jaxws, eclipse, tomcat, webservice, web services, jax-ws, exemplo, jax ws
User comments Save this to del.icio.us Related articles
PDF Imprimir E-mail