NOVO PROJETO: Dynamic web Project Estrutura do projeto: package entity; import java.io.serializable; public class Pessoa implements Serializable { private static final long serialversionuid = 1L; private Integer id; private String nome; public Pessoa() { public Pessoa(Integer id, String nome) { WWW.COTIINFORMATICA.COM.BR 1
super(); this.id = id; this.nome = nome; @Override public String tostring() { return "Pessoa [id=" + id + ", nome=" + nome + "]"; public Integer getid() { return id; public void setid(integer id) { this.id = id; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; script.sql create database bdlast; use bdlast; create table pessoa (id int primary key auto_increment, nome varchar (50)); insert into pessoa values (null,'escadinha'); insert into pessoa values (null,'beirinha'); insert into pessoa values (null,'fadinha'); insert into pessoa values (null,'joao51'); WWW.COTIINFORMATICA.COM.BR 2
select * from pessoa; 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/bdlast", "root", "coti"); public void close() throws Exception { con.close(); WWW.COTIINFORMATICA.COM.BR 3
package persistence; public class PessoaDao extends Dao { public void create(string nome) throws Exception { open(); stmt = con.preparestatement("insert into pessoa values (null,?)"); stmt.setstring(1, nome); stmt.execute(); stmt.close(); close(); // Angular 6 (PROG) SABADO 26 // FRONT ANG (angular 6) SEXTA 25 package service; import javax.jws.webmethod; import javax.jws.webservice; import persistence.pessoadao; @WebService public class ServicePessoa { @WebMethod public String mensagem(string nome) { return "Seja Bem-vindo ao WSDL :" + nome; @WebMethod public String cotacaodolar(string valor, String cotacao) { Double valoremreal = new Double(valor); Double cotacaodolar = new Double(cotacao); WWW.COTIINFORMATICA.COM.BR 4
+ total; Double total = valoremreal / cotacaodolar; return "Valor Real:" + valor + "= Cotacao em Dolar:" @WebMethod public String gravacaopessoas(string nome) { try { new PessoaDao().create(nome); return "Dados gravados em Pessoa"; catch (Exception ex) { return "Error :" + ex.getmessage(); //Sao dois momentos gerar o Server //consumir o Server... WWW.COTIINFORMATICA.COM.BR 5
Para criar o web service: Clicar na classe de webservice com o botão direito -> web services -> create web service WWW.COTIINFORMATICA.COM.BR 6
Marcar publish the web servisse Marcar monitor the web servisse next Manter marcado todos os métodos da classe -> next... WWW.COTIINFORMATICA.COM.BR 7
Clicar em start server Se der erro, trocar a porta do TomCat... WWW.COTIINFORMATICA.COM.BR 8
Repetir as etapas... Sobrescrever os arquivos -> clicar em yes to all"... WWW.COTIINFORMATICA.COM.BR 9
Clicar em start server... Aguardar... WWW.COTIINFORMATICA.COM.BR 10
Clicar em next... Clicar em finish.. WWW.COTIINFORMATICA.COM.BR 11
Abriu o arquivo... No eclipse, foi inserido as LIBS e criado o arquivo ServicePessoa.wsdl... WWW.COTIINFORMATICA.COM.BR 12
servicepessoa.wsdl <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions targetnamespace="http://service" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://service" xmlns:intf="http://service" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <!--WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)--> <wsdl:types> <schema elementformdefault="qualified" targetnamespace="http://service" xmlns="http://www.w3.org/2001/xmlschema"> <element name="gravacaopessoas"> <complextype> <sequence> <element name="nome" type="xsd:string"/> </sequence> </complextype> </element> <element name="gravacaopessoasresponse"> <complextype> <sequence> <element name="gravacaopessoasreturn" type="xsd:string"/> </sequence> </complextype> </element> <element name="cotacaodolar"> <complextype> <sequence> <element name="valor" type="xsd:string"/> <element name="cotacao" type="xsd:string"/> </sequence> </complextype> </element> <element name="cotacaodolarresponse"> <complextype> <sequence> <element name="cotacaodolarreturn" type="xsd:string"/> </sequence> WWW.COTIINFORMATICA.COM.BR 13
</complextype> </element> <element name="mensagem"> <complextype> <sequence> <element name="nome" type="xsd:string"/> </sequence> </complextype> </element> <element name="mensagemresponse"> <complextype> <sequence> <element name="mensagemreturn" type="xsd:string"/> </sequence> </complextype> </element> </schema> </wsdl:types> <wsdl:message name="gravacaopessoasrequest"> <wsdl:part element="impl:gravacaopessoas" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="mensagemrequest"> <wsdl:part element="impl:mensagem" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="cotacaodolarrequest"> <wsdl:part element="impl:cotacaodolar" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="gravacaopessoasresponse"> <wsdl:part element="impl:gravacaopessoasresponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="mensagemresponse"> <wsdl:part element="impl:mensagemresponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="cotacaodolarresponse"> WWW.COTIINFORMATICA.COM.BR 14
<wsdl:part element="impl:cotacaodolarresponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:porttype name="servicepessoa"> <wsdl:operation name="gravacaopessoas"> <wsdl:input message="impl:gravacaopessoasrequest" name="gravacaopessoasrequest"> </wsdl:input> <wsdl:output message="impl:gravacaopessoasresponse" name="gravacaopessoasresponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="cotacaodolar"> <wsdl:input message="impl:cotacaodolarrequest" name="cotacaodolarrequest"> </wsdl:input> <wsdl:output message="impl:cotacaodolarresponse" name="cotacaodolarresponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="mensagem"> <wsdl:input message="impl:mensagemrequest" name="mensagemrequest"> </wsdl:input> <wsdl:output message="impl:mensagemresponse" name="mensagemresponse"> </wsdl:output> </wsdl:operation> </wsdl:porttype> <wsdl:binding name="servicepessoasoapbinding" type="impl:servicepessoa"> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="gravacaopessoas"> <wsdlsoap:operation soapaction=""/> <wsdl:input name="gravacaopessoasrequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="gravacaopessoasresponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> WWW.COTIINFORMATICA.COM.BR 15
<wsdl:operation name="cotacaodolar"> <wsdlsoap:operation soapaction=""/> <wsdl:input name="cotacaodolarrequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="cotacaodolarresponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="mensagem"> <wsdlsoap:operation soapaction=""/> <wsdl:input name="mensagemrequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="mensagemresponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="servicepessoaservice"> <wsdl:port binding="impl:servicepessoasoapbinding" name="servicepessoa"> <wsdlsoap:address location="http://localhost:5152/projetowsdl/services/servicepess oa"/> </wsdl:port> </wsdl:service> </wsdl:definitions> WWW.COTIINFORMATICA.COM.BR 16
NOVO PROJETO: Dynamic Web Project Projeto criado... Clicar no projeto com o botão direito -> new -> other... WWW.COTIINFORMATICA.COM.BR 17
Selecionar web service client -> next... Clicar em browser... WWW.COTIINFORMATICA.COM.BR 18
Clicar e browser... WWW.COTIINFORMATICA.COM.BR 19
Abrir os diretórios até chegar no arquivo wsdl -> ok... WWW.COTIINFORMATICA.COM.BR 20
Clicar em ok... WWW.COTIINFORMATICA.COM.BR 21
Clicar em next... Clicar em finish... WWW.COTIINFORMATICA.COM.BR 22
Foi gerado as classes do client e inserid as libs automaticamente... package controll; 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 service.servicepessoaproxy; @WebServlet("/ControlleServico") public class ControlleServico extends HttpServlet { private static final long serialversionuid = 1L; protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html"); WWW.COTIINFORMATICA.COM.BR 23
try { ServicePessoaProxy wsdl = new ServicePessoaProxy(); if (request.getparameter("nome")!= null) { String nome = request.getparameter("nome"); response.getwriter().print("<br/>mensagem Client :" + wsdl.mensagem(nome)); response.getwriter().print("<br/>client :" + wsdl.gravacaopessoas(nome)); else { response.getwriter().print("tudo Vazio!!!"); catch (Exception ex) { protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doget(request, response); WWW.COTIINFORMATICA.COM.BR 24
Rodando o projeto pela classe service.. Passando os dados da URL http://localhost:8088/aula23_clientwsdl/controlleservico?nome=belem WWW.COTIINFORMATICA.COM.BR 25
NOVO PROJETO REST: Estrutura do projeto: LIBS: all-themes-1.0.10.jar asm-3.1.jar commons-beanutils-1.8.0.jar commons-codec-1.6.jar 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 WWW.COTIINFORMATICA.COM.BR 26
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 jstl.jar mysql-connector-java-5.1.23-bin.jar primefaces-5.0-sources.jar primefaces-5.0.jar standard.jar xercesimpl.jar xml-apis.jar package entity; import java.io.serializable; public class Pessoa implements Serializable { private static final long serialversionuid = 1L; private Integer id; private String nome; public Pessoa() { public Pessoa(Integer id, String nome) { super(); this.id = id; this.nome = nome; @Override WWW.COTIINFORMATICA.COM.BR 27
public String tostring() { return "Pessoa [id=" + id + ", nome=" + nome + "]"; public Integer getid() { return id; public void setid(integer id) { this.id = id; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; script.sql create database bdlast; use bdlast; create table pessoa (id int primary key auto_increment, nome varchar (50)); insert into pessoa values (null,'escadinha'); insert into pessoa values (null,'beirinha'); insert into pessoa values (null,'fadinha'); insert into pessoa values (null,'joao51'); select * from pessoa; WWW.COTIINFORMATICA.COM.BR 28
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/bdlast", "root", "coti"); public void close() throws Exception { con.close(); package persistence; public class PessoaDao extends Dao { public void create(string nome) throws Exception { open(); stmt = con.preparestatement("insert into pessoa values (null,?)"); stmt.setstring(1, nome); stmt.execute(); stmt.close(); close(); WWW.COTIINFORMATICA.COM.BR 29
// Angular 6 (PROG) SABADO 26 // FRONT ANG (angular 6) SEXTA 25 package manager; import javax.faces.application.facesmessage; import javax.faces.bean.managedbean; import javax.faces.context.facescontext; import persistence.pessoadao; @ManagedBean(name = "mb") public class ManagerBean { private String nome = ""; public ManagerBean() { this.nome = ""; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public void gravar() { FacesContext fc = FacesContext.getCurrentInstance(); try { new PessoaDao().create(nome); fc.addmessage(null, new FacesMessage("Dados Gravados")); catch (Exception ex) { fc.addmessage(null, new FacesMessage("Error:" + ex.getmessage())); WWW.COTIINFORMATICA.COM.BR 30
package service; import javax.ws.rs.consumes; import javax.ws.rs.formparam; import javax.ws.rs.get; import javax.ws.rs.post; import javax.ws.rs.path; import javax.ws.rs.pathparam; import javax.ws.rs.produces; import javax.ws.rs.core.mediatype; import org.codehaus.jettison.json.jsonobject; import persistence.pessoadao; @Path("pessoa") public class ServicePessoa { @POST @Produces(MediaType.TEXT_PLAIN) @Consumes(MediaType.APPLICATION_JSON) public String gravarpessoa(string nome) { try { JSONObject json = new JSONObject(nome); new PessoaDao().create(json.getString("nome")); return "Dados Gravados padrao JSON"; catch (Exception ex) { return "Error :" + ex.getmessage(); @GET @Path("form/{nome") public String gravarpessoaget(@pathparam("nome") String nome) { try { new PessoaDao().create(nome); return "Dados Gravados padrao JSON"; catch (Exception ex) { return "Error :" + ex.getmessage(); WWW.COTIINFORMATICA.COM.BR 31
// gravar (resgatar) @POST @Path("formulario") @Produces(MediaType.TEXT_HTML) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public String gravarpessoaform(@formparam("nome") String nome) { try { new PessoaDao().create(nome); return "<b>dados Gravados padrao JSON</b>"; catch (Exception ex) { return "Error :" + ex.getmessage(); // enviar ATENÇÃO PARA O ENDEREÇO DO WEB SERVICE @GET @Path("create") public String createform() { String formulario = "<h2>gravacao com Servico</h2>" + "<form method=post " + " action=\"http://localhost:5152/projetowebserverrest/rs/pessoa/fo rmulario\">" + "Nome<br/>" + "<input type=text name='nome' value='' id='nome'/>" + "<br/>" + "<button type=submit>gravar</button>" + "</form>"; return formulario; WWW.COTIINFORMATICA.COM.BR 32
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" 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> <servletclass>com.sun.jersey.spi.container.servlet.servletcontainer</ser vlet-class> <init-param> <paramname>com.sun.jersey.config.property.packages</param-name> <param-value>service</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jersey REST Service</servlet-name> <url-pattern>/rs/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>faces Servlet</servlet-name> <servletclass>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> WWW.COTIINFORMATICA.COM.BR 33
sistema.xhtml <!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:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui"> <h:head></h:head> <h:body> <p:panel header="gravacao em JSF"> <h:form id="form1"> <h:outputtext value="nome:" /> <br /> <p:inputtext value="#{mb.nome" /> <br /> <p:commandbutton value="gravar" ajax="true" update=":form1" action="#{mb.gravar"></p:commandbutton> </p:panel> </h:body> </html> <p:growl></p:growl> <p:messages></p:messages> </h:form> WWW.COTIINFORMATICA.COM.BR 34
Rodando pelo sistema.xhtml... Gravando um nome.. WWW.COTIINFORMATICA.COM.BR 35