Prof. Edson Belém 02 · ... (tem o server o que posta, tem o client que busca) ... //Esse é o da...

23
Java WebDeveloper Prof. Edson Belém Aula 02 WebService JAX e WSDL, Client e Server www.cotiinformatica.com.br 1 Projeto webServiceJAX Estrutura do projeto... package servicesxml; import javax.jws.WebMethod; import javax.jws.WebService; //Aponta para o JDK @WebService public class ServerCalculo { //padrão Wsdl (tem o server o que posta, tem o client que busca) @WebMethod public String getSoma(String num1,String num2){ String soma = ""; try{ Double n1=new Double(num1); Double n2=new Double(num2); soma = String.valueOf(n1+n2); //converte o calculo em String return "Soma :" + soma;

Transcript of Prof. Edson Belém 02 · ... (tem o server o que posta, tem o client que busca) ... //Esse é o da...

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 1

Projeto webServiceJAX Estrutura do projeto...

package servicesxml; import javax.jws.WebMethod; import javax.jws.WebService; //Aponta para o JDK @WebService

public class ServerCalculo { //padrão Wsdl (tem o server o que posta, tem o client que busca) @WebMethod public String getSoma(String num1,String num2){ String soma = ""; try{ Double n1=new Double(num1); Double n2=new Double(num2); soma = String.valueOf(n1+n2); //converte o calculo em String return "Soma :" + soma;

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 2

}catch(Exception ex){ return "Error :" + ex.getMessage(); } } @WebMethod public String getMessage(String mensagem){ return "Teste Mensagem WS :" + mensagem; } }

Para criar o Webservice (wsdl)...

Clicar com o botão direito na classe ServerCalculo -> Web

Services -> Create a Web Service

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 3

Clicar em Publish Web Service -> Next...

Next -> Finish...

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 4

Irá gerar o “wsdl” e colocar as libs...

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 5

Novo Projeto...

Projeto webClientJAX

Estrutura do projeto...

package control; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import servicesxml.ServerCalculoProxy; @WebServlet("/ControleWS")

public class ControleWS extends HttpServlet {

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 6

private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); //Resposta em Padrão HTML ServerCalculoProxy obj= new ServerCalculoProxy(); //Objeto da Classe //Esse é o da Mensagem response.getWriter().print( obj.getMessage("<h3>Ola Mundo WS Client</h3><br/>") ); if (request.getParameter("num1")!=null & request.getParameter("num2")!=null){ String numero1=request.getParameter("num1"); String numero2=request.getParameter("num2"); response.getWriter().print( obj.getSoma(numero1, numero2)); }else{ response.getWriter().print("Nao tera Calculo ..."); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 7

Para implementar o “wsdl” no projeto...

Clicar no projeto com o botão direito -> New -> Other...

Clicar em Web Service -> Web Service Client -> Next...

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 8

Indicar onde se encontra o “wsdl” criado -> Browse...

Browse novamente...

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 9

Ok...

Ok...

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 10

Finish...

Gerou o pacote “servicesxml”, colocou libs automaticamente.

Precisa acrescentar a “servlet3”

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 11

Rodando pelo Controle...

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 12

Novo Projeto…

WSBancoServer

script.sql

drop database if exists ws1; create database ws1; use ws1; create table cliente( idCliente int primary key auto_increment, nome varchar (50), sexo enum ('m','f') ); insert into cliente values (1,'luis','m'); insert into cliente values (2,'marcelo','m'); insert into cliente values (3,'lu','f'); insert into cliente values (4,'rivan','m');

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 13

commit; select * from cliente;

package entity;

public class Cliente { private Integer idCliente; private String nome; private String sexo; public Cliente() { // TODO Auto-generated constructor stub } public Cliente(Integer idCliente, String nome, String sexo) { this.idCliente = idCliente; this.nome = nome; this.sexo = sexo; }

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 14

@Override public String toString() { return "Cliente [idCliente=" + idCliente + ", nome=" + nome + ", sexo=" + sexo + "]"; } public Integer getIdCliente() { return idCliente; } public void setIdCliente(Integer idCliente) { this.idCliente = idCliente; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getSexo() { return sexo; } public void setSexo(String sexo) { this.sexo = sexo; } }

package persistence; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;

public class Dao { Connection con; PreparedStatement stmt; ResultSet rs; public void open() throws Exception{

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 15

Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/ws1","root","coti"); } public void close() throws Exception{ con.close(); } }

package persistence; import java.sql.ResultSet; import entity.Cliente;

public class ClienteDao extends Dao{ //Vou gravar public String create(Cliente c){ String msg=""; try{ open(); stmt = con.prepareStatement("insert into cliente values (null,?,?)"); stmt.setString(1, c.getNome()); stmt.setString(2, c.getSexo()); stmt.execute(); stmt.close(); close(); msg="Dados Gravados ..."; }catch(Exception ex){ msg="Error ..." + ex.getMessage(); } return msg; } //Sei que vou buscar public String findAll(){ StringBuffer sb=new StringBuffer(); try{ open();

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 16

stmt = con.prepareStatement("select * from cliente"); rs = stmt.executeQuery(); while(rs.next()){ sb.append(rs.getInt(1) + ";" + rs.getString(2) + ";" + rs.getString(3) + "_"); } return sb.toString(); }catch(Exception ex){ sb.append("Error :" + ex.getMessage()); return sb.toString(); } } //Sem promessas public ResultSet findResultSet()throws Exception{ open(); stmt = con.prepareStatement("select * from cliente"); rs = stmt.executeQuery(); return rs; } public static void main(String[] args) { String linha[] = new ClienteDao().findAll().split("_"); for (String registro: linha){ String coluna[]= registro.split(";"); System.out.print("\tid :" + coluna[0]); System.out.print("\tnome :" + coluna[1]); System.out.print("\tsexo :" + coluna[2]); System.out.println(""); } } }

No console...

id :1 nome :luis sexo :m id :2 nome :marcelo sexo :m id :3 nome :lu sexo :f id :4 nome :rivan sexo :m

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 17

package servicexml; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.jws.WebMethod; import javax.jws.WebService; @WebService

public class Servicos { public Connection con; public PreparedStatement stmt; public ResultSet rs; @WebMethod public String gravarCliente(String nome, String sexo){ try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager. getConnection("jdbc:mysql://localhost:3306/ws1","root","coti"); stmt = con.prepareStatement("insert into cliente values (null,?,?)"); stmt.setString(1, nome); stmt.setString(2, sexo); stmt.execute(); stmt.close(); con.close(); return "Dados Gravados"; }catch(Exception ex){ return "Error :" + ex.getMessage(); } } }

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 18

Para gerar o “wsdl”... Clicar na classe Servicos com o botão direito -> Web Service ->

Web -> Create Web Service

Clicar em next...

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 19

Finish...

Gerou a pasta “wsdl”, no WebContent e colocou libs

automaticamente.

Precisa acrescentar a “servlet3”...

O web.xl fica assim...

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>WSBancoServer</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet>

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 20

<display-name>Apache-Axis Servlet</display-name> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <servlet> <display-name>Axis Admin Servlet</display-name> <servlet-name>AdminServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class> <load-on-startup>100</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AdminServlet</servlet-name> <url-pattern>/servlet/AdminServlet</url-pattern> </servlet-mapping> </web-app>

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 21

Novo projeto...

wsClientBanco

Clicar no projeto com o botão direito -> new -> Other..

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 22

Clicar em Web Service Client -> Next...

Indicar o wsdl...

Java WebDeveloper

Prof. Edson Belém

Aula

02

WebService JAX e WSDL, Client e Server

www.cotiinformatica.com.br 23

Rodar o projeto pelo Controle...