02.webservices Jaxws(other Language)

  • Uploaded by: Uday Kumar
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 02.webservices Jaxws(other Language) as PDF for free.

More details

  • Words: 896
  • Pages: 6
Web Services em Java

Web Services

• JAX-WS (Java API for XML Web Services):

Pós-Graduação em Tecnologias para o Desenvolvimento de Aplicações WEB

– Esconde a complexidade em montar um envelope SOAP – Converte os envelopes em RPC – É uma tecnologia disponível a partir do JEE5.0 – Utiliza anotações (uma novidade da versão 5 do Java)

Prof. Adilson Vahldick

Instrutor : Adilson Vahldick

Adilson Vahldick

JAX-WS

NetBeans 5.5 • Faça o download no endereço abaixo – Com o SDK do Java • http://java.sun.com/javase/downloads/netbeans.html

– Sem o SDK do Java • http://www.netbeans.info/downloads/index.php

Adilson Vahldick

Adilson Vahldick

Criação de WS no NetBeans 5.5

Criação de WS no NetBeans 5.5

• [Arquivo] [Novo Projeto]

1

2

1

2 3

4

3 Adilson Vahldick

Adilson Vahldick

1

Criação de WS no NetBeans 5.5

Criação de WS no NetBeans 5.5

• [Arquivo] [Novo Arquivo]

1

2 2 1

3 3

Adilson Vahldick

Adilson Vahldick

JAX-WS

Criação de WS no NetBeans 5.5

@WebService() public class CalculoBasico { 1

}

2

Adilson Vahldick

Adilson Vahldick

JAX-WS

Criação de WS no NetBeans 5.5

@WebService() public class CalculoBasico {

1 2

@WebMethod public int somar( @WebParam(name = "x") int x, @WebParam(name = "y") int y) { return x + y; }

4 5

3 6

} Adilson Vahldick

Adilson Vahldick

2

Iniciar o Servidor

Implantar a Aplicação 1 1

2

3

2

Adilson Vahldick

Adilson Vahldick

Testes

Testes no NetTool • URL: http://localhost:8084/AplicacaoWeb/CalculoBasico • [Add header]: Content-Type ; text/xml

• Aplicação no ar – http://localhost:8084/AplicacaoWeb

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://matematica/"> <soap:Body> <x>10 2

• Web Service – http://localhost:8084/AplicacaoWeb/CalculoBasico

Adilson Vahldick

Adilson Vahldick

Criar um cliente de WS

Criar um cliente de WS • [Arquivo] [Novo Projeto]

1 2

1

2 3

Adilson Vahldick

Adilson Vahldick

3

Criar um cliente de WS

Criar um cliente de WS

• [Arquivo] [Novo Arquivo] 1

2

2

1

3

4 3

Adilson Vahldick

Adilson Vahldick

Criar um cliente de WS

Criar um cliente de WS package aplicacaocliente; import cliente.*; public class Main {

Duplo clique

public static void main(String[] args) throws Exception { CalculoBasicoService cb = new CalculoBasicoService(); CalculoBasico port = cb.getCalculoBasicoPort(); System.out.println(port.somar(10, 2)); } }

Adilson Vahldick

Adilson Vahldick

Executar classe

Especificar endereço de acesso package aplicacaocliente; import cliente.*; import java.net.URL; import javax.xml.namespace.QName;

1

public class Main { public static void main(String[] args) throws Exception {

2

CalculoBasicoService cb = new CalculoBasicoService( new URL("http://localhost:8084/AplicacaoWeb/CalculoBasico?wsdl"), new QName("http://matematica/", "CalculoBasicoService")); CalculoBasico port = cb.getCalculoBasicoPort(); System.out.println(port.somar(10, 2)); } } Adilson Vahldick

Adilson Vahldick

4

JAXB • Java Architecture for XML Bindings • Utilizado para converter XML em objetos Java e vice-versa • Suporta anotações

Objetos como retorno • • • • •

Selecione o Projeto [AplicacaoWeb] Selecione [Pacotes de Código-Fonte] Selecione [matematica] Botão direito [Novo][Classe Java] Digite em Nome da Classe: Resultado

Adilson Vahldick

Adilson Vahldick

Objetos como retorno package matematica; import javax.xml.bind.annotation.*; @XmlType public class Resultado { private int valor; private String texto; public Resultado() { } public int getValor() { return valor; } public void setValor(int valor) { this.valor = valor; } public String getTexto() { return this.texto; } public void setTexto(String texto) { this.texto = texto.toUpperCase();}

Objetos como retorno public class CalculoBasico { .... @WebMethod public Resultado somarEx( @WebParam(name = "x") int x, @WebParam(name = "y") int y) { Resultado r = new Resultado(); r.setTexto("adilson"); r.setValor(x + y); return r; } }

} Adilson Vahldick

Adilson Vahldick

Objetos como retorno • • • • •

Implante novamente a aplicação WEB No projeto [AplicacaoCliente] Selecione [Referências de Serviços Web] Selecione [CalculoBasico] Botão direito [Atualizar Cliente]

Do lado cliente package aplicacaocliente; import cliente.*; public class Main { public static void main(String[] args) throws Exception { CalculoBasicoService cb = new CalculoBasicoService(); CalculoBasico port = cb.getCalculoBasicoPort(); System.out.println(port.somar(10, 2)); Resultado r = port.somarEx(10, 5); System.out.println(r.getTexto() + "=" + r.getValor()); } }

Adilson Vahldick

Adilson Vahldick

5

Vetor como retorno public class CalculoBasico { ….. @WebMethod public Resultado[] somarVarios(@WebParam(name = "x") int x, @WebParam(name = "y") int y, @WebParam(name = "z") int z) {

Lista como retorno import java.util.*; public class CalculoBasico { … @WebMethod public List somarVariosEx(@WebParam(name = "x") int x, @WebParam(name = "y") int y, @WebParam(name = "z") int z) {

Resultado[] r = new Resultado[3];

List res = new ArrayList();

r[0] = new Resultado(); r[0].setTexto("x + y"); r[0].setValor(x + y);

Resultado r0 = new Resultado(); r0.setTexto("x + y"); r0.setValor(x + y); res.add(r0);

r[1] = new Resultado(); r[1].setTexto("x + z"); r[1].setValor(x + z);

Resultado r1 = new Resultado(); r1.setTexto("x + z"); r1.setValor(x + z); res.add(r1);

r[2] = new Resultado(); r[2].setTexto("y + z"); r[2].setValor(y + z);

Resultado r2 = new Resultado(); r2.setTexto("y + z"); r2.setValor(y + z); res.add(r2);

return r;

return res;

}

}

}

} Adilson Vahldick

Adilson Vahldick

Do lado cliente import java.util.*; public class Main { public static void main(String[] args) throws Exception { .... List rs = port.somarVarios(1, 2, 4); for (Resultado rr:rs) { System.out.println(rr.getTexto() + "=" + rr.getValor()); } rs = port.somarVariosEx(1, 2, 4); for (Resultado rr:rs) { System.out.println(rr.getTexto() + "=" + rr.getValor()); }

Objetos como Parâmetro @WebMethod public int somarObjeto(@WebParam(name = "obj")Resultado r, @WebParam(name = "x") int x) { return r.getValor() + x; } @WebMethod public int somarObjetos(@WebParam(name = "obj")List lista) { int retorno = 0; for (Resultado r:lista) { retorno += r.getValor(); } return retorno; }

} } Adilson Vahldick

Adilson Vahldick

Do lado cliente Resultado param = new Resultado(); param.setValor(100); System.out.println(port.somarObjeto(param, 10)); List lista = new ArrayList(); lista.add(param); lista.add(param); System.out.println(port.somarObjetos(lista)); Adilson Vahldick

6

Related Documents

Language
November 2019 50
Language
November 2019 40
Language
November 2019 43
Language
November 2019 34
Language
November 2019 35
Language
November 2019 40

More Documents from ""

Web Services Slides
November 2019 13
Wsdlcontracts
November 2019 13
Jax-ws
November 2019 13
Wsdl11soap12
November 2019 17
Hibernate Join Fetch
October 2019 19