You are on page 1of 63

Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

Aula de WebService ...

Estrutura do projeto...

LIBS:
asm-3.1.jar
commons-codec-1.6.jar
commons-logging-1.1.1.jar
fluent-hc-4.2.5.jar
gson-2.2.4.jar
httpclient-4.2.5.jar
httpclient-cache-4.2.5.jar
httpcore-4.2.4.jar
httpmime-4.2.5.jar
jackson-core-asl-1.9.2.jar
jackson-jaxrs-1.9.2.jar
jackson-mapper-asl-1.9.2.jar
jackson-xc-1.9.2.jar
jaxen-1.1.6.jar
jdom-2.0.5.jar
jersey-client-1.12.jar
jersey-core-1.12.jar
jersey-json-1.12.jar
jersey-server-1.12.jar
jersey-servlet-1.12.jar
jettison-1.1.jar
json-simple-1.1.1.jar
jsr311-api-1.1.1.jar
mysql-connector-java-5.1.23-bin.jar

www.cotiinformatica.com.br 1
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

servlet3-api.jar
xercesImpl.jar
xml-apis.jar

package entity;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Cliente implements
Serializable{
private static final long serialVersionUID = 7L;

private Integer idCliente;


private String nome;
private String email;
private String sexo;

public Cliente(Integer idCliente, String nome, String


email, String sexo) {
this.idCliente = idCliente;
this.nome = nome;
this.email = email;
this.sexo = sexo;
}

public Cliente() {
}

@Override
public String toString() {
return "Cliente [idCliente=" + idCliente + ", nome="
+ nome + ", email=" + email + ", sexo=" + sexo + "]";
}

www.cotiinformatica.com.br 2
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

public String toString(String tipo) {


switch(tipo){
case "txt" :
return idCliente + "," + nome + "," + email + "," + sexo
+"\n";
case "csv" :
return idCliente + ";" + nome + ";" + email + ";" +
sexo;
default :
return "IdCliente:"+idCliente + ",nome:" + nome +
",email:" + email + ",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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
}

www.cotiinformatica.com.br 3
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

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{


Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.
getConnection("jdbc:mysql://localhost:3306/pelomeupai","roo
t","coti");
}

public void close() throws Exception{


con.close();
}
}

script.sql
drop database if exists pelomeupai;
create database pelomeupai;
use pelomeupai;

create table cliente(idCliente int primary key auto_increment,


nome varchar (35),
email varchar (50) unique,
sexo enum ('m','f')
);

insert into cliente values (null,'indio','indio@gmail.com','m');


insert into cliente values
(null,'tiririca','tiririca@gmail.com','m');
insert into cliente values
(null,'bornier','bornier@gmail.com','m');

www.cotiinformatica.com.br 4
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

insert into cliente values


(null,'garotinha','garotinho@gmail.com','f');

commit;
select * from cliente;

package persistence;

import java.util.ArrayList;
import java.util.List;

import entity.Cliente;

public class ClienteDao extends Dao {


public void create(Cliente c)throws Exception{
open();
stmt = con.prepareStatement("insert into cliente
values (null,?,?,?)");
stmt.setString(1, c.getNome());
stmt.setString(2, c.getEmail());
stmt.setString(3, c.getSexo());
stmt.execute();

www.cotiinformatica.com.br 5
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

stmt.close();
close();
}

public List<Cliente> findAll()throws Exception{


open();
stmt = con.prepareStatement("select * from cliente");
List<Cliente> lst =new ArrayList<Cliente>();
while(rs.next()){
Cliente c= new Cliente();
c.setIdCliente(rs.getInt(1));
c.setNome(rs.getString(2));
c.setEmail(rs.getString(3));
c.setSexo(rs.getString(4));
lst.add(c);
}
stmt.execute();
stmt.close();
close();
return lst;
}

public Cliente findByEmail(String email)throws Exception{


open();
stmt = con.prepareStatement("select * from cliente
where email=?");
stmt.setString(1, email);
Cliente c = null;

if(rs.next()){ //se encontrado


c= new Cliente();
c.setIdCliente(rs.getInt(1));
c.setNome(rs.getString(2));
c.setEmail(rs.getString(3));
c.setSexo(rs.getString(4));
}
stmt.execute();
stmt.close();
close();
return c;
}
}

www.cotiinformatica.com.br 6
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

package services;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
//webserice/cliente/
import javax.ws.rs.Produces;

import com.google.gson.Gson;

import entity.Cliente;
import persistence.ClienteDao;

@Path("/cliente")
public class WSCliente {
@Path("/gravar/{nome}/{email}/{sexo}")
@GET
@Produces("text/plain")
public String gravar( @PathParam("nome") String nome,
@PathParam("email") String email,
@PathParam("sexo") String sexo){
ClienteDao cd = new ClienteDao();
Cliente c = new Cliente(null,nome, email, sexo);
String msg="";
try{
cd.create(c);
msg = "Dados Gravados";
}catch(Exception ex){
msg= "Error : Dados Nao Gravados :" + ex.getMessage();
}
return msg;
}

//Daqui a pouco SuperStar

@Path("/listar")
@GET

www.cotiinformatica.com.br 7
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

@Produces("application/json")
public String listar(){
try{

return new Gson().toJson(new


ClienteDao().findAll());
}catch(Exception ex){
return "Error :" + ex.getMessage();
}
}
}

Clicar no projeto com o botão direito -> Properties

www.cotiinformatica.com.br 8
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

Marcar Dynamic Web Module -> Futher Configuration -> Generate


web.xml deployment descriptor

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-
class>com.sun.jersey.spi.container.servlet.ServletContainer</ser
vlet-class>
<init-param>
<param-
name>com.sun.jersey.config.property.packages</param-name>
<param-value>services</param-value>

www.cotiinformatica.com.br 9
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/webservice/*</url-pattern>
</servlet-mapping>

</web-app>

Rodar o projeto pelo prórpio projeto…

www.cotiinformatica.com.br 10
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

http://localhost:8089/projetoWeb_sevices/webservice/cliente/grav
ar/lu/lu@gmail.coim/f

www.cotiinformatica.com.br 11
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

No banco…

http://localhost:8089/Aula20_projetoWeb_sevices/webservice/clien
te/listar

www.cotiinformatica.com.br 12
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

Novo projeto Angular


Estrutura do projeto…

LIBS:
angular-route.js
angular.js

Projeto
SuperStarAngular
copiei e colei o angular para webcontent
bootstrap

index.html
pages
cadastro.html
consulta.html
home.html
js_control
rota.js (Arquivo de Controle)

www.cotiinformatica.com.br 13
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

controller.js
var app=angular.module('app',['ngRoute']);

app.config(function($routeProvider){
$routeProvider
.when('/',{
templateUrl : 'pages/home.html',
controller : 'rotaControle'
})
.when('/cadastro',{
templateUrl : 'pages/cadastro.html',
controller : 'cadastroControle'
})
.when('/consulta',{
templateUrl : 'pages/consulta.html',
controller : 'consultaControle'
})
});

app.controller('rotaControle',function($scope){
$scope.message = 'Sistema Angular JS - MVC'
});

www.cotiinformatica.com.br 14
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

app.controller('cadastroControle',function($scope, $http){
$scope.message='cadastrar Cliente';
$scope.msg = '';
$scope.cliente={
idCliente : "",
nome : "",
email : "",
sexo : ""
}
$scope.cadastrarCliente = function(){
$http.get('http://localhost:8089/projetoWeb_sevices/webservice/c
liente/gravar/' +
$scope.cliente.nome + "/" + $scope.cliente.email +"/"
+ $scope.cliente.sexo).
success(function(data){
$scope.msg = data;
});
$scope.cliente={
idCliente : "",
nome : "",
email : "",
sexo : ""
}
}
});

app.controller('consultaControle',function($scope, $http){
$scope.message='Clientes Listados';
$http.get('http://localhost:8089/projetoWeb_sevices/webservice/c
liente/listar').
success(function(data){
$scope.listaCliente = data;
});
});

www.cotiinformatica.com.br 15
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

index.html
<!DOCTYPE html>

<html ng-app="app">

<head>
<meta http-equiv="Content-type" content="text/html;
charset=utf-8" />
<meta http-equiv="Content-Language" content="pt-br" />

<script src="angular/angular.js"></script>
<script src="angular/angular-route.js"></script>
<link rel="stylesheet" href="css/bootstrap.css"></link>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript"
src="js/bootstrap.js"></script>
<script type="text/javascript"
src="js_control/controller.js">
</script>
</head>

<body ng-controller="rotaControle" class="container">

<div class="well">
<h2> Projeto em Angular</h2>
</div>

<ul class="nav nav-tabs">


<li ng-class="{active: activetab =='/'}"><a href="#/">
Home
</a>
<li ng-class="{active: activetab =='/cadastro'}"><a
href="#cadastro">
Cadastro
</a></li>
<li ng-class="{active: activetab =='/consulta'}"><a
href="#consulta">
Consulta
</a></li>
</ul>
<p/>

www.cotiinformatica.com.br 16
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

<div id="main">
<div ng-view></div>
</div>

</body>
</html>

home.html
<div class="page-header">

{{message}}

<h2>Pagina Inicial - Angular JS</h2>


</div>

www.cotiinformatica.com.br 17
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

cadastro.html
<div class="page-header">

<h3>Cadastrar Cliente</h3>
<form ng-submit="cadastrarCliente()"
ng-controller="cadastroControle"
class="form-group">
<label>Nome</label>
<input type="text" ng-model="cliente.nome" class="form-
control">
<label>Email</label>
<input type="text" ng-model="cliente.email" class="form-
control">
<label>Sexo</label>
<input type="text" ng-model="cliente.sexo" class="form-
control">

<br/><br/>
<button class="btn btn-primary" type="submit">
Cadastrar Cliente</button>

www.cotiinformatica.com.br 18
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

<br/><br/>
{{msg}}
</form>

</div>

consulta.html
<div class="page-header">

<h3>Consulta angular</h3>
<ul>
<li ng-repeat="c in listaCliente">
<p> idCliente : {{c.idCliente}}
<p> Nome : {{c.nome}}
<p> Email : {{c.email}}
<p> Sexo : {{c.sexo}}
<hr/>
</li>
</ul>
</div>

www.cotiinformatica.com.br 19
Java WebDeveloper Aula

01
Prof. Edson Belém

WebService, Json, Gravar, Listar, JDBC, MySql, Angular,


Bootstrap

www.cotiinformatica.com.br 20
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
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;

www.cotiinformatica.com.br 1
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
}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

www.cotiinformatica.com.br 2
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
Clicar em Publish Web Service -> Next...

Next -> Finish...

www.cotiinformatica.com.br 3
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
Irá gerar o wsdl e colocar as libs...

www.cotiinformatica.com.br 4
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
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 {

www.cotiinformatica.com.br 5
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
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 {
}
}

www.cotiinformatica.com.br 6
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
Para implementar o wsdl no projeto...
Clicar no projeto com o botão direito -> New -> Other...

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

www.cotiinformatica.com.br 7
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
Indicar onde se encontra o wsdl criado -> Browse...

Browse novamente...

www.cotiinformatica.com.br 8
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
Ok...

Ok...

www.cotiinformatica.com.br 9
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
Finish...

Gerou o pacote servicesxml , colocou libs automaticamente.


Precisa acrescentar a servlet3

www.cotiinformatica.com.br 10
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
Rodando pelo Controle...

www.cotiinformatica.com.br 11
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
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');

www.cotiinformatica.com.br 12
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
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;
}

www.cotiinformatica.com.br 13
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
@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{

www.cotiinformatica.com.br 14
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
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();

www.cotiinformatica.com.br 15
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
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

www.cotiinformatica.com.br 16
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
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();
}
}
}

www.cotiinformatica.com.br 17
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


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

Clicar em next...

www.cotiinformatica.com.br 18
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
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>

www.cotiinformatica.com.br 19
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
<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>

www.cotiinformatica.com.br 20
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
Novo projeto...
wsClientBanco

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

www.cotiinformatica.com.br 21
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


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

Indicar o wsdl...

www.cotiinformatica.com.br 22
Java WebDeveloper Aula
Prof. Edson Belém

WebService JAX e WSDL, Client e Server


02
Rodar o projeto pelo Controle...

www.cotiinformatica.com.br 23
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

Projeto Java Web (WebService)


LIBS:
asm-3.1.jar
commons-codec-1.6.jar
commons-logging-1.1.1.jar
fluent-hc-4.2.5.jar
gson-2.2.4.jar
httpclient-4.2.5.jar
httpclient-cache-4.2.5.jar
httpcore-4.2.4.jar
httpmime-4.2.5.jar
jackson-core-asl-1.9.2.jar
jackson-jaxrs-1.9.2.jar
jackson-mapper-asl-1.9.2.jar
jackson-xc-1.9.2.jar
jaxen-1.1.6.jar
jdom-2.0.5.jar
jersey-client-1.12.jar
jersey-core-1.12.jar
jersey-json-1.12.jar
jersey-server-1.12.jar
jersey-servlet-1.12.jar
jettison-1.1.jar
jsr311-api-1.1.1.jar
mysql-connector-java-5.1.23-bin.jar
xercesImpl.jar
xml-apis.jar
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

package entity;

import java.io.Serializable;
import javax.xml.bind.annotation.XmlRootElement;

//Classe de WebService deve colocar XMLRootElement

@XmlRootElement
public class Endereco implements
Serializable{
private static final long serialVersionUID = 1L;

private Integer idEndereco;


private String logradouro;
private String bairro;
private String cidade;
private String estado;
private String pais;
private String cep;
//Realizar o WebService do Correio
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

public Endereco() {
}

public Endereco(Integer idEndereco, String logradouro,


String bairro, String cidade, String estado, String pais,
String cep) {
super();
this.idEndereco = idEndereco;
this.logradouro = logradouro;
this.bairro = bairro;
this.cidade = cidade;
this.estado = estado;
this.pais = pais;
this.cep = cep;
}

@Override
public String toString() {
return logradouro + "," + bairro + "," + cidade + ","
+ estado + "," + pais + "," + cep;
}
//toString está sendo adaptado para o WebService ...

public Integer getIdEndereco() {


return idEndereco;
}
public void setIdEndereco(Integer idEndereco) {
this.idEndereco = idEndereco;
}
public String getLogradouro() {
return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getPais() {
return pais;
}
public void setPais(String pais) {
this.pais = pais;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}

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 Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection
("jdbc:mysql://localhost:3306/bd1", "root", "coti");
}

public void close() throws Exception{


con.close();
}
}

script.sql
drop database if not exists services;
create database services;

use services;

create table endereco(idEndereco int primary key auto_increment,


logradouro varchar (50),
bairro varchar (35),
cidade varchar (50),
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

estado varchar (35),


pais varchar (50),
cep varchar (30) );

insert into endereco values (null,'rua navarro','catumbi',


'Rio de Janeiro','RJ','Brasil','20251190');

commit;

package persistence;

import java.util.ArrayList;
import java.util.List;

import entity.Endereco;

public class EnderecoDao extends Dao{


public void create(Endereco e)throws Exception{
open();
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

stmt = con.
prepareStatement("insert into endereco values
(null,?,?,?,?,?,?)");
stmt.setString(1,e.getLogradouro());
stmt.setString(2, e.getBairro());
stmt.setString(3, e.getCidade());
stmt.setString(4, e.getEstado());
stmt.setString(5, e.getPais());
stmt.setString(6, e.getCep());
stmt.execute();
stmt.close();
close();
}

public List<Endereco> findAll() throws Exception{


open();
stmt = con.prepareStatement("select * from
endereco");
rs = stmt.executeQuery();
List <Endereco> lista = new ArrayList<Endereco>();
while(rs.next()){
Endereco ende = new Endereco ();
ende.setIdEndereco(rs.getInt(1));
ende.setLogradouro(rs.getString(2));
ende.setBairro(rs.getString(3));
ende.setCidade(rs.getString(4));
ende.setEstado(rs.getString(5));
ende.setPais(rs.getString(6));
ende.setCep(rs.getString(7));
lista.add(ende);
}
close();
return lista;
}

public void delete(Integer cod)throws Exception{


open();
stmt = con.
prepareStatement("delete from endereco where idEndereco=
?");
stmt.setInt(1,cod);
stmt.execute();
stmt.close();
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

close();
}

public Endereco findByCep(String cep)throws Exception{


open();
stmt = con.
prepareStatement("select * from endereco where
cep=?");
stmt.setString(1, cep);
rs = stmt.executeQuery();
Endereco ende= null;
if (rs.next()){
ende = new Endereco ();
ende.setIdEndereco(rs.getInt(1));
ende.setLogradouro(rs.getString(2));
ende.setBairro(rs.getString(3));
ende.setCidade(rs.getString(4));
ende.setEstado(rs.getString(5));
ende.setPais(rs.getString(6));
ende.setCep(rs.getString(7));
}
stmt.close();
close();
return ende; //senão encontrou é null ...se encontrou
volta cheio ...
}

public void update(Endereco ende)throws Exception{


open();
stmt = con.
prepareStatement("update endereco set logradouro=?, bairro=?,
cidade=?, estado=?,pais=?,cep=? where idEndereco=? ");
stmt.setString(1,ende.getLogradouro());
stmt.setString(2,ende.getBairro());
stmt.setString(3,ende.getCidade());
stmt.setString(4,ende.getEstado());
stmt.setString(5, ende.getPais());
stmt.setString(6, ende.getCep());
stmt.setInt(7, ende.getIdEndereco());
stmt.execute();
stmt.close();
close();
}
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

//public strictfp void methodC() (aceita qualquer método


feito na linguagem c)
}

package webservice;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import com.google.gson.Gson;
import entity.Endereco;
import persistence.EnderecoDao;

@Path("/endereco")
public class WSEndereco {
@Path("/listarTodos")
@GET
@Produces
public String listarEndereco(){
try{
return new Gson().toJson(new EnderecoDao().findAll());
}catch(Exception ex){
return ex.getMessage();
}
}

@GET
@Path("gravar/{logradouro}/{bairro}/{cidade}/{estado}/{pais
}/{cep}")
@Produces("text/plain")
public String gravar(
@PathParam("logradouro") String logradouro,
@PathParam("bairro") String bairro,
@PathParam("cidade") String cidade,
@PathParam("estado") String estado,
@PathParam("pais") String pais,
@PathParam("cep") String cep
){
try{
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

Endereco ende= new Endereco(null, logradouro, bairro,


cidade, estado, pais, cep);
new EnderecoDao().create(ende);
return "Dados Gravados Endereco ...";
}catch(Exception ex){
return "Error :" + ex.getMessage();
}
}

@GET
@Path("buscarPeloCep/{cep}")
@Produces("text/plain")
public String buscarPeloCep( @PathParam("cep") String
cep){
try{
return new Gson().toJson(new EnderecoDao().findByCep(cep));
}catch(Exception ex){
return "Error :" + ex.getMessage();
}
}

@GET
@Path("deletar/{idEndereco}")
@Produces("text/plain")
public String deletar(
@PathParam("idEndereco") String idEndereco){
try{
new EnderecoDao().delete(new Integer(idEndereco));
return "Registro Excluido com Sucesso ...";
}catch(Exception ex){
return "Error :" + ex.getMessage();
}
}

@GET
@Path("alterar/{logradouro}/{bairro}/{cidade}/{estado}/{pai
s}/{cep}/{idEndereco}")
@Produces("text/plain")
public String alterar(
@PathParam("logradouro") String logradouro,
@PathParam("bairro") String bairro,
@PathParam("cidade") String cidade,
@PathParam("estado") String estado,
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

@PathParam("pais") String pais,


@PathParam("cep") String cep,
@PathParam("idEndereco") String idEndereco
){
try{
Endereco ende = new Endereco(new Integer(idEndereco),
logradouro, bairro, cidade, estado, pais, cep);
new EnderecoDao().update(ende);
return "Dados Alterados ...";
}catch(Exception ex){
return "Error :" + ex.getMessage();
}
}
}

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-
app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">

<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-
class>com.sun.jersey.spi.container.servlet.ServletContainer</ser
vlet-class>
<init-param>
<param-
name>com.sun.jersey.config.property.packages</param-name>
<param-value>webservice</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/webservice/*</url-pattern>
</servlet-mapping>
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

</web-app>

Roda clicando no projeto com o botão direito -> Run as -> Run on
server

Depois digitar os parametros de listar:

http://localhost:8033/WebServiceWS_rest/webservice/endereco/list
arTodos

E para executar os outros metodos, só passer os parametros.

Novo projeto JSF

LIBS:
all-themes-1.0.10.jar
asm-3.1.jar
commons-beanutils-1.8.0.jar
commons-codec-1.6.jar
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

commons-collections-3.2.1.jar
commons-digester-2.0.jar
commons-logging-1.1.1.jar
fluent-hc-4.2.5.jar
gson-2.2.4.jar
httpclient-4.2.5.jar
httpclient-cache-4.2.5.jar
httpcore-4.2.4.jar
httpmime-4.2.5.jar
jackson-core-asl-1.9.2.jar
jackson-jaxrs-1.9.2.jar
jackson-mapper-asl-1.9.2.jar
jackson-xc-1.9.2.jar
javax.faces-2.0.11.jar
jaxen-1.1.6.jar
jdom-2.0.5.jar
jersey-client-1.12.jar
jersey-core-1.12.jar
jersey-json-1.12.jar
jersey-server-1.12.jar
jersey-servlet-1.12.jar
jettison-1.1.jar
jsf-api.jar
jsf-impl.jar
jsr311-api-1.1.1.jar
jstl.jar
mysql-connector-java-5.1.23-bin.jar
primefaces-4.0-sources.jar
primefaces-4.0.jar
standard.jar
xercesImpl.jar
xml-apis.jar

package entity;

import java.io.Serializable;
import javax.xml.bind.annotation.XmlRootElement;

//Classe de WebService deve colocar XMLRootElement

@XmlRootElement
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

public class Endereco implements


Serializable{
private static final long serialVersionUID = 1L;

private Integer idEndereco;


private String logradouro;
private String bairro;
private String cidade;
private String estado;
private String pais;
private String cep;
//Realizar o WebService do Correio

public Endereco() {
}

public Endereco(Integer idEndereco, String logradouro,


String bairro, String cidade, String estado, String pais, String
cep) {
super();
this.idEndereco = idEndereco;
this.logradouro = logradouro;
this.bairro = bairro;
this.cidade = cidade;
this.estado = estado;
this.pais = pais;
this.cep = cep;
}

@Override
public String toString() {
return logradouro + "," + bairro + "," + cidade + ","
+ estado + "," + pais + "," + cep;
}
//toString está sendo adaptado para o WebService ...

public Integer getIdEndereco() {


return idEndereco;
}
public void setIdEndereco(Integer idEndereco) {
this.idEndereco = idEndereco;
}
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

public String getLogradouro() {


return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getPais() {
return pais;
}
public void setPais(String pais) {
this.pais = pais;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

package manager;

import java.io.Serializable;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import entity.Endereco;

@ManagedBean(name="mb")
@RequestScoped
public class ManagerBean implements
Serializable{
private static final long serialVersionUID = 1L;
private Endereco endereco;

@PostConstruct
public void init(){
endereco = new Endereco();
}

public Endereco getEndereco() {


return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
public static long getSerialversionuid() {
return serialVersionUID;
}

public void gravarEndereco(){


FacesContext fc = FacesContext.getCurrentInstance();
DefaultHttpClient client = new DefaultHttpClient();
try{
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

HttpGet httpget=
new
HttpGet("http://localhost:8387/WebServiceWS_rest/webservice/ende
reco/gravar/"+
endereco.getLogradouro()+"/"+endereco.getBairro()+ "/"
+endereco.getCidade() +
"/" + endereco.getEstado() + "/"+ endereco.getPais() + "/"+
endereco.getCep() + "/");

//passa o endereco URL

client.execute(httpget); //grava
endereco = new Endereco(); //limpa
fc.addMessage("form1", new FacesMessage("Dados Gravados ..."));
}catch(Exception ex){
fc.addMessage("form1", new FacesMessage("Error :" +
ex.getMessage()));
}
}
}

web.xml
<?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>jsfSistema</display-name>

<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-
class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
>

<h:head>
</h:head>

<h:body>
<p:panel header="Cadastrar Endereco">
<h:form id="form1">
<p:panelGrid columns="2">
<h:outputText value="Rua" />
<p:inputText value="#{mb.endereco.logradouro}"
size="50"/>

<h:outputText value="Bairro" />


<p:inputText value="#{mb.endereco.bairro}"
size="50"/>

<h:outputText value="Cidade" />


<p:inputText value="#{mb.endereco.cidade}"
size="50"/>

<h:outputText value="Estado" />


<p:inputText value="#{mb.endereco.estado}"
size="5"/>

<h:outputText value="Pais" />


<p:inputText value="#{mb.endereco.pais}" size="20"/>

<h:outputText value="Cep" />


<p:inputText value="#{mb.endereco.cep}" size="15"/>

<p:commandButton value="Gravar os Dados"


action="#{mb.gravarEndereco}"
update=":form1"
ajax="true"></p:commandButton>

</p:panelGrid>
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

<p:growl></p:growl>
<p:messages></p:messages>
</h:form>
</p:panel>
</h:body>

</html>
Java WebDeveloper Aula

03
Prof. Edson Belém

JSF, Webservice, Rest, JDBC, MySql, CRUD, PrimeFaces4.0

Cadastrando…

Gravado…

You might also like