SlideShare uma empresa Scribd logo
Como criar um HTTP proxy dinamico com Mule –
Parte 1
Principio
O proxy encaminha a solicitação HTTP usando o contexto e as
peças caminho relativo do URL de solicitação para determinar o
servidor e a porta à qual o pedido deve ser encaminhado.
No exemplo neste artigo um serviço web SOAP terá a ser
implantado para ouvir a seguinte URL:
http://localhost:8182/services/GreetingService
No URL acima, o servidor ea porta é localhost: 8182, o contexto e
as peças caminho relativo do URL é "serviços / GreetingService".
O exemplo de programa será implantado para ouvir solicitações na
seguinte URL:
http://localhost:8981/dynamicHttpProxy/
A fim de invocar o GreetingService através do proxy HTTP, a URL
do terminal será parecido com este:
http://localhost:8981/dynamicHttpProxy/services/GreetingService
Motivação
A principal motivação para o proxy HTTP dinâmica é a capacidade
de ser capaz de adicionar novos proxies HTTP com um mínimo de
esforço e sem ter que reiniciar o proxy.
Limitações do Programa Exemplo
Falta do programa de exemplo para torná-lo utilizável em um
ambiente de produção são:
• Tratamento de erros.
• Recuperação de configuração de banco de dados.
No exemplo, um simples mapa é usado para armazenar o
mapeamento entre o caminho relativo HTTP e o servidor de destino.
Isso faz claro que não permitem modificar dinamicamente a
configuração do proxy.
• Suporte para verbos HTTP adicionais.
No programa de exemplo apenas suporte para os verbos de HTTP
GET e POST foram implementadas. É trivial para adicionar suporte
para verbos HTTP adicionais, conforme necessário.
• Manipulação de parâmetros HTTP.
O programa de exemplo não considera parâmetros HTTP mas
estes são considerados parte do caminho relativo HTTP.
• Suporte para HTTPS.
Há provavelmente coisas adicionais que se poderia considerar falta
- sinta-se livre para adicionar sugestões nos comentários!
Um serviço Proxy
O exemplo de programa será implementado em um projeto da mula
em SpringSource Tool Suite com o MuleStudio plug-in instalado.
Qualquer IDE baseado em Eclipse com o MuleStudio plug-in
instalado.
Para ser ter um serviço de proxy, uma saudação-serviço SOAP
simples é implementado usando um arquivo de configuração mula e
uma classe Java.
A configuração Mule contém a seguinte configuração:
<?xml version="1.0" encoding="UTF-8"?>
<mule
xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation
"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:test="http://www.mulesoft.org/schema/mule/test"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/sc
hema/mule/cxf/current/mule-cxf.xsd
http://www.springframework.org/schema/beans http://www.springfra
mework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/
schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/test http://www.mulesoft.org/s
chema/mule/test/current/mule-test.xsd">
<spring:beans>
<spring:bean id="helloService" class="com.ivan.mule.dynamich
ttpproxy.HelloService"/>
</spring:beans>
<flow name="GreetingFlow">
<inbound-endpoint address="http://localhost:8182/services/Gre
etingService"
exchange-pattern="request-response"/>
<cxf:jaxws-service serviceClass="com.ivan.mule.dynamichttppr
oxy.HelloService"/>
<component>
<spring-object bean="helloService"/>
</component>
</flow>
</mule>
A classe Java implementar o serviço se parece com isso:
package com.ivan.mule.dynamichttpproxy;
import java.util.Date;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
* SOAP web service endpoint implementation class that implements
* a service that extends greetings.
*
* @author Ivan Krizsan
*/
@WebService
public class HelloService {
/**
* Greets the person with the supplied name.
*
* @param inName Name of person to greet.
* @return Greeting.
*/
@WebResult(name = "greeting")
public String greet(@WebParam(name = "inName") final String in
Name) {
return "Hello " + inName + ", the time is now " + new Date();
}
}
Informações server Classe Bean
As instâncias da classe informações feijão servidor contém
informações sobre um servidor que para encaminhar solicitações
para.
package com.ivan.mule.dynamichttpproxy;
/**
* Holds information about a server which to forward requests to.
*
* @author Ivan Krizsan
*/
public class ServerInformationBean {
private String serverAddress;
private String serverPort;
private String serverName;
/**
* Creates an instance holding information about a server with sup
plied
* address, port and name.
*
* @param inServerAddress
* @param inServerPort
* @param inServerName
*/
public ServerInformationBean(final String inServerAddress,
final String inServerPort, final String inServerName) {
serverAddress = inServerAddress;
serverPort = inServerPort;
serverName = inServerName;
}
public String getServerAddress() {
return serverAddress;
}
public String getServerPort() {
return serverPort;
}
public String getServerName() {
return serverName;
}
}

Mais conteúdo relacionado

Mais procurados

Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1
Jeison Barros
 
Explorando mule esb sftp adapter
Explorando mule esb sftp adapterExplorando mule esb sftp adapter
Explorando mule esb sftp adapter
Jeison Barros
 
Principais duvidas sobre mule
Principais duvidas sobre mulePrincipais duvidas sobre mule
Principais duvidas sobre mule
Jeison Barros
 
Integração salesforce com mulesoft usando o salesforce conector
Integração salesforce com mulesoft usando o salesforce conectorIntegração salesforce com mulesoft usando o salesforce conector
Integração salesforce com mulesoft usando o salesforce conector
Jeison Barros
 
Conectores mule
Conectores muleConectores mule
Conectores mule
Guilherme Baccas
 
Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Jeison Barros
 
Suporte a Open Source no Oracle WebLogic 12c - Integração com o Spring Framework
Suporte a Open Source no Oracle WebLogic 12c - Integração com o Spring FrameworkSuporte a Open Source no Oracle WebLogic 12c - Integração com o Spring Framework
Suporte a Open Source no Oracle WebLogic 12c - Integração com o Spring Framework
Ricardo Ferreira
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
Rodolfo Fadino Junior
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
Luan Felipe Knebel
 
Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1
Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1
Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1
Edgar Silva
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Fabrício Lopes Sanchez
 
Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1
Jeison Barros
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
fabio perrella
 
O Elefante e a Mula
O Elefante e a MulaO Elefante e a Mula
O Elefante e a Mula
Taffarel De Lima Oliveira
 
Servidores Web
Servidores WebServidores Web
Servidores Web
Adilmar Dantas
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
phelypploch
 
Servidores Web
Servidores Web Servidores Web
Servidores Web
bastosluis
 
Deploy automatizado de Aplicações no Jelastic
Deploy automatizado de Aplicações no JelasticDeploy automatizado de Aplicações no Jelastic
Deploy automatizado de Aplicações no Jelastic
Ivan Rosolen
 
SoapUI
SoapUISoapUI
SoapUI
João Manso
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web API
Vinicius Mussak
 

Mais procurados (20)

Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1
 
Explorando mule esb sftp adapter
Explorando mule esb sftp adapterExplorando mule esb sftp adapter
Explorando mule esb sftp adapter
 
Principais duvidas sobre mule
Principais duvidas sobre mulePrincipais duvidas sobre mule
Principais duvidas sobre mule
 
Integração salesforce com mulesoft usando o salesforce conector
Integração salesforce com mulesoft usando o salesforce conectorIntegração salesforce com mulesoft usando o salesforce conector
Integração salesforce com mulesoft usando o salesforce conector
 
Conectores mule
Conectores muleConectores mule
Conectores mule
 
Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1
 
Suporte a Open Source no Oracle WebLogic 12c - Integração com o Spring Framework
Suporte a Open Source no Oracle WebLogic 12c - Integração com o Spring FrameworkSuporte a Open Source no Oracle WebLogic 12c - Integração com o Spring Framework
Suporte a Open Source no Oracle WebLogic 12c - Integração com o Spring Framework
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1
Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1
Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
 
Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
 
O Elefante e a Mula
O Elefante e a MulaO Elefante e a Mula
O Elefante e a Mula
 
Servidores Web
Servidores WebServidores Web
Servidores Web
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
 
Servidores Web
Servidores Web Servidores Web
Servidores Web
 
Deploy automatizado de Aplicações no Jelastic
Deploy automatizado de Aplicações no JelasticDeploy automatizado de Aplicações no Jelastic
Deploy automatizado de Aplicações no Jelastic
 
SoapUI
SoapUISoapUI
SoapUI
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web API
 

Destaque

Deploying and running in mule standalone
Deploying and running in mule standaloneDeploying and running in mule standalone
Deploying and running in mule standalone
AbdulImrankhan7
 
How to make .... google calendar
How to make .... google calendarHow to make .... google calendar
How to make .... google calendar
Joanna Soltysiak
 
Tarea interdisciplinar del curso Clásicos Escolares
Tarea interdisciplinar del curso Clásicos Escolares  Tarea interdisciplinar del curso Clásicos Escolares
Tarea interdisciplinar del curso Clásicos Escolares
tomasrodriguezreyes
 
Mule data mapper
Mule data mapperMule data mapper
Mule data mapper
Naresh Naidu
 
mule salesforce
mule salesforcemule salesforce
mule salesforce
F K
 
Mule soap web services
Mule soap web servicesMule soap web services
Mule soap web services
Naresh Naidu
 
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
XP Conference India
 
20150513_CarinaABrunson_Resume
20150513_CarinaABrunson_Resume20150513_CarinaABrunson_Resume
20150513_CarinaABrunson_Resume
Carina Brunson
 
A LITTLE ABOUT MYSELF
A LITTLE ABOUT MYSELFA LITTLE ABOUT MYSELF
A LITTLE ABOUT MYSELF
Steffi Sharon
 
Our Recipe Book
Our Recipe BookOur Recipe Book
Our Recipe Book
Lamia Büşra YEŞİL
 
Presentatie TIM Vastgoed - 10 minutes with BNI
Presentatie TIM Vastgoed - 10 minutes with BNIPresentatie TIM Vastgoed - 10 minutes with BNI
Presentatie TIM Vastgoed - 10 minutes with BNITim Schaap
 
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
Michel Azevedo
 
example of a project plan
example of a project planexample of a project plan
example of a project plan
Joanna Soltysiak
 
Prosklisi gs
Prosklisi gsProsklisi gs
Prosklisi gs
psaltakis
 
αυτόχθονες λαοί!!!
αυτόχθονες λαοί!!!αυτόχθονες λαοί!!!
αυτόχθονες λαοί!!!
Chrysa Arabatzoglou
 
The Mule Agent
The Mule AgentThe Mule Agent
The Mule Agent
Shanky Gupta
 
Containerization (Export/Import Goods)
Containerization (Export/Import Goods)Containerization (Export/Import Goods)
Containerization (Export/Import Goods)
Dr. Sneha Sharma
 
Παχυσαρκία και μεταβολικό σύνδρομο
Παχυσαρκία και μεταβολικό σύνδρομοΠαχυσαρκία και μεταβολικό σύνδρομο
Παχυσαρκία και μεταβολικό σύνδρομοpsaltakis
 
μιηαιλιδου παγκρητιιο παιδιατρικο 2017
μιηαιλιδου παγκρητιιο παιδιατρικο 2017μιηαιλιδου παγκρητιιο παιδιατρικο 2017
μιηαιλιδου παγκρητιιο παιδιατρικο 2017
psaltakis
 

Destaque (20)

Deploying and running in mule standalone
Deploying and running in mule standaloneDeploying and running in mule standalone
Deploying and running in mule standalone
 
How to make .... google calendar
How to make .... google calendarHow to make .... google calendar
How to make .... google calendar
 
Tarea interdisciplinar del curso Clásicos Escolares
Tarea interdisciplinar del curso Clásicos Escolares  Tarea interdisciplinar del curso Clásicos Escolares
Tarea interdisciplinar del curso Clásicos Escolares
 
Mule data mapper
Mule data mapperMule data mapper
Mule data mapper
 
mule salesforce
mule salesforcemule salesforce
mule salesforce
 
Mule soap web services
Mule soap web servicesMule soap web services
Mule soap web services
 
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
 
20150513_CarinaABrunson_Resume
20150513_CarinaABrunson_Resume20150513_CarinaABrunson_Resume
20150513_CarinaABrunson_Resume
 
A LITTLE ABOUT MYSELF
A LITTLE ABOUT MYSELFA LITTLE ABOUT MYSELF
A LITTLE ABOUT MYSELF
 
Our Recipe Book
Our Recipe BookOur Recipe Book
Our Recipe Book
 
Presentatie TIM Vastgoed - 10 minutes with BNI
Presentatie TIM Vastgoed - 10 minutes with BNIPresentatie TIM Vastgoed - 10 minutes with BNI
Presentatie TIM Vastgoed - 10 minutes with BNI
 
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
 
example of a project plan
example of a project planexample of a project plan
example of a project plan
 
Prosklisi gs
Prosklisi gsProsklisi gs
Prosklisi gs
 
αυτόχθονες λαοί!!!
αυτόχθονες λαοί!!!αυτόχθονες λαοί!!!
αυτόχθονες λαοί!!!
 
The Mule Agent
The Mule AgentThe Mule Agent
The Mule Agent
 
Containerization (Export/Import Goods)
Containerization (Export/Import Goods)Containerization (Export/Import Goods)
Containerization (Export/Import Goods)
 
Rinitida
RinitidaRinitida
Rinitida
 
Παχυσαρκία και μεταβολικό σύνδρομο
Παχυσαρκία και μεταβολικό σύνδρομοΠαχυσαρκία και μεταβολικό σύνδρομο
Παχυσαρκία και μεταβολικό σύνδρομο
 
μιηαιλιδου παγκρητιιο παιδιατρικο 2017
μιηαιλιδου παγκρητιιο παιδιατρικο 2017μιηαιλιδου παγκρητιιο παιδιατρικο 2017
μιηαιλιδου παγκρητιιο παιδιατρικο 2017
 

Semelhante a Como criar um http proxy dinamico com mule parte 1

Relatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunkRelatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunk
Jeison Barros
 
Web Services
Web ServicesWeb Services
Web Services
Igor Gonalves
 
Python 08
Python 08Python 08
Python 08
Bruno Catão
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Thyago Maia
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
Marcio Marinho
 
Cake Php
Cake PhpCake Php
Cake Php
Laura Lopes
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
ledsifes
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
Giovanny Valente
 
Python CGI
Python CGIPython CGI
Visão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da CloudflareVisão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da Cloudflare
Cloudflare
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
Amazon Web Services LATAM
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-php
Brenno Abreu
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
elliando dias
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, API
Nuno Pereira
 
Web service
Web serviceWeb service
Web service
Junior Moraes
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
Reinaldo Junior
 
Segurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasSegurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheiras
Bruno Luiz Pereira da Silva
 
Rest workshop
Rest workshopRest workshop
Rest workshop
Diogo Gomes
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
Guilherme Pereira Silva
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
Comunidade NetPonto
 

Semelhante a Como criar um http proxy dinamico com mule parte 1 (20)

Relatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunkRelatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunk
 
Web Services
Web ServicesWeb Services
Web Services
 
Python 08
Python 08Python 08
Python 08
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Cake Php
Cake PhpCake Php
Cake Php
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
Python CGI
Python CGIPython CGI
Python CGI
 
Visão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da CloudflareVisão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da Cloudflare
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-php
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, API
 
Web service
Web serviceWeb service
Web service
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
Segurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasSegurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheiras
 
Rest workshop
Rest workshopRest workshop
Rest workshop
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 

Mais de Jeison Barros

Pdfteste
PdftestePdfteste
Pdfteste
Jeison Barros
 
Introdução a RAML - parte 1
Introdução a RAML -  parte 1Introdução a RAML -  parte 1
Introdução a RAML - parte 1
Jeison Barros
 
O básico do uso de rest vs soap
O básico do uso de rest vs soapO básico do uso de rest vs soap
O básico do uso de rest vs soap
Jeison Barros
 
Restful considerada prejudicial - parte 1
Restful considerada prejudicial -  parte 1Restful considerada prejudicial -  parte 1
Restful considerada prejudicial - parte 1
Jeison Barros
 
Restful considerada prejudicial parte 2
Restful considerada prejudicial   parte 2Restful considerada prejudicial   parte 2
Restful considerada prejudicial parte 2
Jeison Barros
 
Estratégia api e design
Estratégia api e designEstratégia api e design
Estratégia api e design
Jeison Barros
 
Transformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonTransformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para json
Jeison Barros
 
Rest api vs SOAP
Rest api vs SOAPRest api vs SOAP
Rest api vs SOAP
Jeison Barros
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbc
Jeison Barros
 
Habilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosHabilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dados
Jeison Barros
 
Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2
Jeison Barros
 
Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1
Jeison Barros
 
Consumindo soap wsdl
Consumindo soap wsdlConsumindo soap wsdl
Consumindo soap wsdl
Jeison Barros
 
Começando com mulesoft e maven
Começando com mulesoft e mavenComeçando com mulesoft e maven
Começando com mulesoft e maven
Jeison Barros
 
Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2
Jeison Barros
 
Fluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplicationFluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplication
Jeison Barros
 
Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2
Jeison Barros
 
Substituindo o request message no mule
Substituindo o request message no muleSubstituindo o request message no mule
Substituindo o request message no mule
Jeison Barros
 
Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2
Jeison Barros
 

Mais de Jeison Barros (19)

Pdfteste
PdftestePdfteste
Pdfteste
 
Introdução a RAML - parte 1
Introdução a RAML -  parte 1Introdução a RAML -  parte 1
Introdução a RAML - parte 1
 
O básico do uso de rest vs soap
O básico do uso de rest vs soapO básico do uso de rest vs soap
O básico do uso de rest vs soap
 
Restful considerada prejudicial - parte 1
Restful considerada prejudicial -  parte 1Restful considerada prejudicial -  parte 1
Restful considerada prejudicial - parte 1
 
Restful considerada prejudicial parte 2
Restful considerada prejudicial   parte 2Restful considerada prejudicial   parte 2
Restful considerada prejudicial parte 2
 
Estratégia api e design
Estratégia api e designEstratégia api e design
Estratégia api e design
 
Transformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonTransformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para json
 
Rest api vs SOAP
Rest api vs SOAPRest api vs SOAP
Rest api vs SOAP
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbc
 
Habilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosHabilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dados
 
Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2
 
Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1
 
Consumindo soap wsdl
Consumindo soap wsdlConsumindo soap wsdl
Consumindo soap wsdl
 
Começando com mulesoft e maven
Começando com mulesoft e mavenComeçando com mulesoft e maven
Começando com mulesoft e maven
 
Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2
 
Fluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplicationFluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplication
 
Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2
 
Substituindo o request message no mule
Substituindo o request message no muleSubstituindo o request message no mule
Substituindo o request message no mule
 
Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2
 

Como criar um http proxy dinamico com mule parte 1

  • 1. Como criar um HTTP proxy dinamico com Mule – Parte 1 Principio O proxy encaminha a solicitação HTTP usando o contexto e as peças caminho relativo do URL de solicitação para determinar o servidor e a porta à qual o pedido deve ser encaminhado. No exemplo neste artigo um serviço web SOAP terá a ser implantado para ouvir a seguinte URL: http://localhost:8182/services/GreetingService No URL acima, o servidor ea porta é localhost: 8182, o contexto e as peças caminho relativo do URL é "serviços / GreetingService". O exemplo de programa será implantado para ouvir solicitações na seguinte URL: http://localhost:8981/dynamicHttpProxy/ A fim de invocar o GreetingService através do proxy HTTP, a URL do terminal será parecido com este: http://localhost:8981/dynamicHttpProxy/services/GreetingService Motivação A principal motivação para o proxy HTTP dinâmica é a capacidade de ser capaz de adicionar novos proxies HTTP com um mínimo de esforço e sem ter que reiniciar o proxy. Limitações do Programa Exemplo Falta do programa de exemplo para torná-lo utilizável em um ambiente de produção são: • Tratamento de erros. • Recuperação de configuração de banco de dados.
  • 2. No exemplo, um simples mapa é usado para armazenar o mapeamento entre o caminho relativo HTTP e o servidor de destino. Isso faz claro que não permitem modificar dinamicamente a configuração do proxy. • Suporte para verbos HTTP adicionais. No programa de exemplo apenas suporte para os verbos de HTTP GET e POST foram implementadas. É trivial para adicionar suporte para verbos HTTP adicionais, conforme necessário. • Manipulação de parâmetros HTTP. O programa de exemplo não considera parâmetros HTTP mas estes são considerados parte do caminho relativo HTTP. • Suporte para HTTPS. Há provavelmente coisas adicionais que se poderia considerar falta - sinta-se livre para adicionar sugestões nos comentários! Um serviço Proxy O exemplo de programa será implementado em um projeto da mula em SpringSource Tool Suite com o MuleStudio plug-in instalado. Qualquer IDE baseado em Eclipse com o MuleStudio plug-in instalado. Para ser ter um serviço de proxy, uma saudação-serviço SOAP simples é implementado usando um arquivo de configuração mula e uma classe Java. A configuração Mule contém a seguinte configuração: <?xml version="1.0" encoding="UTF-8"?> <mule xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation " xmlns:spring="http://www.springframework.org/schema/beans" xmlns:test="http://www.mulesoft.org/schema/mule/test"
  • 3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/sc hema/mule/cxf/current/mule-cxf.xsd http://www.springframework.org/schema/beans http://www.springfra mework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/ schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/test http://www.mulesoft.org/s chema/mule/test/current/mule-test.xsd"> <spring:beans> <spring:bean id="helloService" class="com.ivan.mule.dynamich ttpproxy.HelloService"/> </spring:beans> <flow name="GreetingFlow"> <inbound-endpoint address="http://localhost:8182/services/Gre etingService" exchange-pattern="request-response"/> <cxf:jaxws-service serviceClass="com.ivan.mule.dynamichttppr oxy.HelloService"/> <component> <spring-object bean="helloService"/> </component> </flow> </mule> A classe Java implementar o serviço se parece com isso:
  • 4. package com.ivan.mule.dynamichttpproxy; import java.util.Date; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; /** * SOAP web service endpoint implementation class that implements * a service that extends greetings. * * @author Ivan Krizsan */ @WebService public class HelloService { /** * Greets the person with the supplied name. * * @param inName Name of person to greet. * @return Greeting. */ @WebResult(name = "greeting") public String greet(@WebParam(name = "inName") final String in Name) { return "Hello " + inName + ", the time is now " + new Date(); } } Informações server Classe Bean
  • 5. As instâncias da classe informações feijão servidor contém informações sobre um servidor que para encaminhar solicitações para. package com.ivan.mule.dynamichttpproxy; /** * Holds information about a server which to forward requests to. * * @author Ivan Krizsan */ public class ServerInformationBean { private String serverAddress; private String serverPort; private String serverName; /** * Creates an instance holding information about a server with sup plied * address, port and name. * * @param inServerAddress * @param inServerPort * @param inServerName */ public ServerInformationBean(final String inServerAddress, final String inServerPort, final String inServerName) { serverAddress = inServerAddress; serverPort = inServerPort; serverName = inServerName;
  • 6. } public String getServerAddress() { return serverAddress; } public String getServerPort() { return serverPort; } public String getServerName() { return serverName; } }