6
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

Mule transporte vm com o exemplo http

Embed Size (px)

Citation preview

Page 1: Mule transporte vm com o exemplo http

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

Page 2: Mule transporte vm com o exemplo http

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

Page 3: Mule transporte vm com o exemplo http

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).

Page 4: Mule transporte vm com o exemplo http

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

Page 5: Mule transporte vm com o exemplo http

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:

**********************************************************

************

Page 6: Mule transporte vm com o exemplo http

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