Upload
jeison-barros
View
165
Download
3
Embed Size (px)
Citation preview
Mule transporte VM com o Exemplo HTTP
Este tutorial irá mostrar-lhe como usar VM transporte com HTTP
Connector no aplicativo baseado Mule.
O que é VM Transportes
O transporte VM não é senão um transporte na memória. Portanto, quando
uma mensagem tem de ser passada através de um ponto de extremidade
VM, isto é, a mensagem está a ser transferido a partir de uma extremidade
a outra extremidade na memória. Assim, o transporte VM pode ser usado
para a comunicação intra-JVM entre os fluxos de mula. Ele pode ser usado
somente em aplicação mula única e não pode ser utilizado para comunicar
entre dois ou mais pedidos de mula. Este transporte por padrão usa filas na
memória, mas pode, opcionalmente, ser configurado para usar filas
persistentes. No entanto, VM arquivo de persistência não funciona em
clusters.
Por padrão transporte VM é síncrono - mensagens passam pelo transporte
VM são entregues de um modo ponto-a-ponto.
Pré-requisitos
Mule Estúdio 3.x (AnyPoint Studio) (Download de
https://www.mulesoft.com/platform/studio)
Maven 3.2.1 (Download de
https://maven.apache.org/download.cgi?Preferred=ftp://mirror.reverse.net/p
ub/apache/)
JDK 1.7 (Download de
http://www.oracle.com/technetwork/java/javase/downloads/index.html)
Configurar JDK, Maven e Mule Estúdio
Passo 1. Primeiro instale o JDK
Passo 2. Adicione o diretório / bin JAVA_HOME para PATH do seu
sistema.
Passo 3. Depois de baixar Maven, extraí-lo para uma unidade
Passo 4. Adicione o diretório / bin M2_HOME ao PATH do seu sistema.
Passo 5. Faça o download e extrair Mule Studio para uma unidade
Passo 6. Agora iniciar Mule Estúdio clicando no ícone AnypointStudio exe
na pasta <física da unidade> / AnypointStudio
Passo 7. Uma vez iniciado, feche a página de inicialização
Passo 8. Na Mule Studio, vá para Janela -> Preferências. Expandir Java, em
seguida, clique em JREs Instalados. Adicionar JDK 1.7 e selecione-o. Em
expandiu Java, clique em Compiler e selecione o nível compilador como
1.7
Passo 9. Agora expandir AnyPoint Studio e clique em Configurações do
Maven. Em seguida, selecione apropriada inicial de instalação do Maven
utilizando o botão Browse.
Passo 10. Se você quiser, pode entrada padrão groupId para novos projetos,
ele vai salvar o seu tempo a cada momento em que você deseja criar um
novo projeto.
Criar projeto da mula em Mule Estúdio
Agora vamos ver como criar um novo projeto no Mule Studio (AnyPoint
Studio).
Passo 1. Em AnyPoint Studio, vá em File -> New -> Project Mule
Passo 2. Entrada Nome do projeto: mula-3, Runtime é, por padrão
selecionado, marque em Use Maven; aqui o artifactId é automaticamente
levantado a partir do nome do projeto :, o ID do grupo é levantado a partir
do padrão groupId para novos projetos e versão também é um valor padrão.
Passo 3. Clique em Avançar e verifique se o JDK, principalmente selecione
Usar JRE padrão (atualmente 'jdk1.7.0_x')
Passo 4. Clique em Next e clique em Finish.
Então, quando o projeto mula-3 é criado na AnyPoint Studio, a estrutura do
projeto parece seguir
Resultado Final no navegador
exemplo VM
O layout da configuração da VM no editor visual AnyPoint Estúdio
Neste exemplo , se você configurar um endpoint VM saída chamada vm : //
vm- caminho , mas não têm um ponto de extremidade de entrada
correspondente , Mule irá gerar um erro e explicar que esta mensagem não
pode ser encaminhado .
Aqui o transporte VM é configurado como uma troca de padrão de
solicitação-resposta .
Na captura de tela acima, temos dois fluxos de mula - vmFlow1 e vmFlow2
.
Em vmFlow1 temos HTTP e conectores VM . Aqui, o endereço para o
transporte VM é dado como endereço=”vm://vm-path” (equivalent to
path=”vm-path”), veja na configuração vm.xml abaixo.
Aqui conector HTTP age como um ponto de extremidade de entrada e VM
funciona como um ponto de extremidade de saída.
Quando você digita a URL http://localhost:8081/Hello no navegador, o
payload “Hello” é roteado para vm-path(or vm://vm-path).
No vmFlow2 nós temos VM connector, Setar Payload componente e
Logger componente. Aqui, o caminho de transporte de VM é dado como
caminho =”vm-path” (equivalent to address=”vm://vm-path”), veja a
configuração do vm.xml abaixo.
Aqui transporte atos VM como um ponto de extremidade de entrada. O
transporte VM recebe a carga útil a partir de vm://vm-path (or vm-path).
Definir componente Payload define a carga de entrada vindo de transporte
VM.
componente Logger exibe a carga proveniente de Set Payload no console.
Passo 1. Você pode mudar o nome do arquivo principal src / / app / mula -
3.xml como arquivo vm.xml .
Passo 2. Abra o arquivo vm.xml e clique em Configuração vista XML no
Editor
Passo 3. Modifique o arquivo vm.xml como mostrado abaixo
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:vm="http://www.mulesoft.org/schema/mule/vm"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking"
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"
version="EE-3.5.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/bean
s http://www.springframework.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/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/vm
http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd
http://www.mulesoft.org/schema/mule/ee/tracking
http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-
tracking-ee.xsd">
<vm:connector name="memory" />
<flow name="vmFlow1" doc:name="vmFlow1">
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
<http:inbound-endpoint exchange-pattern="request-response"
host="localhost" port="8081" doc:name="HTTP" />
<vm:outbound-endpoint exchange-pattern="request-response"
address="vm://vm-path" doc:name="VM" />
</flow>
<flow name="vmFlow2" doc:name="vmFlow2">
<vm:inbound-endpoint exchange-pattern="request-response"
path="vm-path" doc:name="VM" />
<set-payload value="#[message.payload]" doc:name="Set
Payload" />
<logger message="#[message.payload]" level="INFO"
doc:name="Logger" />
</flow>
</mule>
Na configuração vm.xml acima, você pode usar qualquer endereço ou
caminho ou ref no transporte VM.
Executando o aplicativo
Agora faça um clique direito sobre o arquivo stdio.xml ou no projeto mula
-3 e clique em Executar como -> Aplicação Mule . Então você vai ver algo
como abaixo na consola quando o aplicativo é executado
1
2
3
INFO 2016-06-21 08:49:14,478 [main] org.mule.DefaultMuleContext:
**********************************************************
************
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
* Application: mule-3 *
* OS encoding: Cp1252, Mule encoding: UTF-8 *
* *
* Agents Running: *
* DevKit Extension Information *
* Batch module default engine *
* Clustering Agent *
* JMX Agent *
**********************************************************
************
INFO 2016-06-21 08:49:14,478 [main]
org.mule.module.launcher.MuleDeploymentService:
+++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++
+ Started app 'mule-3' +
+++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++
INFO 2016-06-21 08:49:14,481 [main]
org.mule.module.launcher.DeploymentDirectoryWatcher:
+++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++
+ Mule is up and kicking (every 5000ms) +
+++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++
Console output
1
2
3
INFO 2016-06-21 08:50:04,393 [[mule-
3].connector.http.mule.default.receiver.02]
org.mule.lifecycle.AbstractLifecycleManager: Initialising:
'memory.dispatcher.32653765'. Object is: VMMessageDispatcher
INFO 2016-06-21 08:50:04,394 [[mule-
3].connector.http.mule.default.receiver.02]
org.mule.lifecycle.AbstractLifecycleManager: Starting:
'memory.dispatcher.32653765'. Object is: VMMessageDispatcher
INFO 2016-06-21 08:50:04,443 [[mule-
3].connector.http.mule.default.receiver.02]
org.mule.api.processor.LoggerMessageProcessor: /vm-connector