You are on page 1of 24

WebServices - Axis

Teoria e Prática

Paloma Costa
Desenvolvedora Java
paloma@getnet-tecnologia.com.br
http://javawoman.objectis.net
Sobre mim

● Paloma Costa
● Desenvolvedora Java a quatro anos
● Técnica em Processamentos de Dados
● Estudante de Matemática computacional
● Integrante da coordenação do Projeto Software Livre
do Rio Grande do Sul.
● Equipe de Java na Captura de transações da GetNet
● Usuária linux desde 2001
● Colunista do Portal Java desde 2005
● Portal http://javawoman.objectis.net
Sobre a empresa

“Sólido Grupo econômico


multinacional com capital
Brasileiro com operações
EUA
China em segmentos de agro-
Índia
negócio, hotelaria,
Brasil exportação, tecnologia,
Uruguai entre outros em vários
países.”

“Excelente ambiente de trabalho e


constante investimento em P&D
em parques tecnológicos.”

Mais de 100 profissionais na GetNet


Credenciamento e Treinamento em todo o Território Nacional
Crescimento de 300% em 2004
Mais de 20mil estabelecimentos no país.
Confiabilidade

“Soluções customizadas de captura, autorização e processamento


de transações e informações para grandes empresas.”

“Homologados com as
maiores Redes de
supermercados e farmácias
do Brasil.”

“Parceiros com
as melhores
tecnologias.”
WS em Java com Axis


Teoria e Definições

Protocolos

Arquitetura

WSDL

Prática

Instalação e Configuração do Axis

Criando WebServices

Deploy

Criando Cliente de WebServices

Implantação do WS

Paloma Costa – paloma@getnet-tecnologia.com.br


Teoria e Definições


Usa protocolos padronizados que garantem
a independência de plataforma e de
linguagem.


O Apache AXIS é uma das implementações
mais versáteis do protocolo SOAP,
permitindo a criação de Web Services.


Disponibilizar uma coleção de métodos em
um servidor remoto e permitir que sejam
acessados por programas clientes.

Paloma Costa – paloma@getnet-tecnologia.com.br


Protocolos envolvidos

SOAP: Protocolo simples de acesso ao objeto.
Baseado em XML é tipo um envelope que define
uma estrutura para descrever o que estão em
uma mensagem e como processar. É uma
convenção para representar chamadas e
respostas remotas do procedimento.


XML: é uma linguagem semelhante ao HTML. A
diferença é que é usada para definir e
armazenar dados, enquanto HTML serve para
exibir.

Paloma Costa – paloma@getnet-tecnologia.com.br


Modelo MVC

Apresentação Regras de
Cliente Negócio
ws

Hibernate
DAO
Pool de Con.

BD

Paloma Costa – paloma@getnet-tecnologia.com.br


Arquitetura
Serializador

http/Request soap/Response

Serializador
Apache+Tomcat + Axis

Recebe
Objeto

Paloma Costa – paloma@getnet-tecnologia.com.br


WSDL(Web Service Definition Language)


Linguagem de Definição de
Serviços que possui todos os
métodos do WS registrados.


WSDL: é gerada a partir de um
WS em particular, é uma interface
padronizada que permite os
programas clientes encontrarem
os métodos remotos;

Paloma Costa – paloma@getnet-tecnologia.com.br


Prática

Como criar um WS em Java?

Softwares necessários:

Tomcat 5.0.28
http://jakarta.apache.org/tomcat/

Axis (usei a 1.1)


http://ws.apache.org/axis

Eclipse 3.0
http://www.eclipse.org

J2SE 1.4.2
http://java.sun.com/j2se/1.4.2/download.html

Paloma Costa – paloma@getnet-tecnologia.com.br


Instalação do Axis

1. Dentro de \home\axis\webapps” tem um
diretório chamado “axis”.


2. Copie esse diretório para dentro do seu
“webapps” do seu Tomcat


3. Os jars necessários para o ws
devem estar no diretório lib:
home\Tomcat 5.0\webapps\axis\WEB-
INF\lib
jars
axis.jar;
commons-discovery.jar;
commons-logging.jar;
jaxrpc.jar;
saaj.jar;
log4j-1.2.8.jar;
Paloma Costa – paloma@getnet-tecnologia.com.br
Configuração do Axis

O Axis está instalado. Para verificar
se tudo está funcionando inicie o
Tomcat e digite:

http://localhost:8080/axis

Paloma Costa – paloma@getnet-tecnologia.com.br


Configuração do Axis

1 - Clique em Validate e você
deverá ver um resumo geral. Se ele
der algum erro (como falta de
algum .JAR), você tem que corrigir
antes de continuar. Observe que as
core axis libraries
devem ser encontradas.

Paloma Costa – paloma@getnet-tecnologia.com.br


Criando WebServices

public class HelloWorld {
public String sayHello() {
return "Hello World!";
}
public String sayHello2(VOTeste vo) {
return vo.toString();
}
public VOTeste sayHello3 (VOTeste vo){
return vo;
}
}


Salvar classe HelloWorld.java

Paloma Costa – paloma@getnet-tecnologia.com.br


Classe VO
public class VOTeste {
private int campo1;
private String campo2;
public int getCampo1() {
return campo1;
}
public void setCampo1(int campo1) {
this.campo1 = campo1;
}
public String getCampo2() {
return campo2;
}
public void setCampo2(String campo2) {
this.campo2 = campo2;
}
}
Deploy wsdd
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"

xmlns:java="http://xml.apache.org/axis/wsdd/p
roviders/java">
<service name="HelloWorld.ws"
provider="java:RPC">
<parameter name="className"
value="br.srv.getnet.exemplo.Hello.HelloWorld
"/>
<parameter name="allowedMethods"
value="sayHello,sayHello2,sayHello3"/>
<parameter name="scope"
value="application"/>
<beanMapping qname="myNS:VOTeste"
xmlns:myNS="urn:HelloExemplo.ws"
languageSpecificType="java:br.srv.getnet.exem
plo.Hello.VOTeste"/>
</service>
</deployment>
Paloma Costa – paloma@getnet-tecnologia.com.br
Deploy sh
TOMCATHOME=/tomcat/
JAVA_HOME=/jdk/
CLASSPATH="$TOMCATHOME"common/lib/saaj.jar
CLASSPATH="$CLASSPATH":/java/axis-deploy/jaxrpc-
api.jar
CLASSPATH="$CLASSPATH":"$TOMCATHOME"common/lib/axis
.jar
CLASSPATH="$CLASSPATH":"$TOMCATHOME"common/lib/comm
ons-discovery.jar
CLASSPATH="$CLASSPATH":"$TOMCATHOME"bin/commons-
logging-api.jar
CLASSPATH="$CLASSPATH":/java/axis-deploy/jax-
qname.jar
echo $CLASSPATH
PATH="$JAVA_HOME"/bin:"$PATH"

#java -cp "$CLASSPATH"


org.apache.axis.client.AdminClient deploy.wsdd
-lhttp://127.0.0.1:8080/axis/services/AdminService
java -cp "$CLASSPATH"
org.apache.axis.client.AdminClient deploy.wsdd

Paloma Costa – paloma@getnet-tecnologia.com.br


Executar Deploy
Copiar projeto do eclipse para o tomcat
cp home\eclipse\workspace\ExemploWS\src\br
\home\Tomcat 5.0\webapps\axis\WEB-INF\classses\br

Entrar no diretório onde se encontra o deploy


cd \Tomcat 5.0\webapps\axis\WEB-
INF\classes\br\srv\getnet\exemplo\ws

Executar a seguinte linha de comando na console


sh deploy.sh (certificar-se que o arquivo deploy.wsdd
existe)

Tomcat tem que está no ar

Paloma Costa – paloma@getnet-tecnologia.com.br


Teste do Axis


1 - Vá em view e clique com o
botão direito na classe de
WebService e salve no workspace
do eclipse para o cliente.
Cliente de WS

Para criar as classes stub, vamos usar a
ferramenta WSDL2Java que vem com o Axis.
Crie um novo projeto para o cliente

Pluguin: com.myspotter.wsdl2java-1.1.0
No eclipse adicione o pluguin

Salve o xml para o cliente e renomeie a
extensão xml para wsdl

F5 no projeto

Clicar em cima do wsdl com o botão direito em
axis e wsdl2Java(Irá criar as classes stub)

Depois crie um pacote br.srv.getnet.teste que
terá a classe main para ver o resultado das
classes de WS.

Adicionar os jars para o cliente.

Paloma Costa – paloma@getnet-tecnologia.com.br


Cliente
● Pode ser criada em qualquer linguagem.

Public class MeuCliente {


public static void main(String[] args)Throws Exception{

HelloWorldService hService = new HelloWorldServiceLocator();


HelloWorld hello = hService.getHello();

System.out.println(“!Iniciando chamada a métodos remotos!”);


System.out.println(“!Say Hello” + hello.sayHello());
System.out.println(“!SayHello2” + hello.sayHello2());

}
}

Paloma Costa – paloma@getnet-tecnologia.com.br


Bibliografia


Apache Web Service
http://ws.apache.org/

Apache Axis
http://ws.apache.org/axis/

Documentação Axis
http://ws.apache.org/axis/java/index.html

Web Services Tutorial
http://www.w3.org(webServices)

XML
http://www.w3c.org/XML
Muito Obrigada! Perguntas??
Paloma Costa
paloma@getnet-tecnologia.com.br
http://javawoman.objectis.net

You might also like