Статьи

Демонтаж мула, пример компонента мула

Компонент — это программа, которая имеет некоторую часть логики, которую мы можем использовать в потоке мула. Для компонента мы можем использовать язык программирования, такой как Java, язык выражений, сценарий Java, Python и т. Д.

Создайте поток мула, добавьте к нему конечную точку http с помощью приведенной ниже конфигурации

Хост: localhost

Порт: 8082 (порт должен быть уникальным в потоках)

Создайте класс Java в папке src / main / java проекта mule

public class PrintPayload {
     public void method1(String args) {
         System.out.println("String as args");
         System.out.println(args);
     }
     public void method2(byte[] values) {
         System.out.println("byte as args");
         System.out.println(values);
     }
}

В потоке добавьте Java-компонент, обратитесь к классу PrintPayload в свойстве name: свойства компонента Java.

Добавить строку в преобразователь bytearray

Снова добавьте компонент Java, обратитесь к классу PrintPayload в свойстве имени класса.

Поток будет выглядеть ниже

И поток будет иметь следующую конфигурацию.

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" 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.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans 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">
      <flow name="ComponentFlow1" doc:name="ComponentFlow1">
          <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" doc:name="HTTP"/>
          <component class="com.classes.PrintPayload" doc:name="Java"/>
          <string-to-byte-array-transformer doc:name="String to Byte Array"/>
          <component class="com.classes.PrintPayload" doc:name="Java"/>
      </flow>
</mule>

Запустите приложение.

В браузере нажмите на ссылку:

HTTP: // локальный: 8082 / имя = кася

вы получите следующий вывод:

String as args

/?name=kasi

byte as args

[B@23a1f067

Mule вызывает соответствующий метод в зависимости от типа полезной нагрузки.