Mule ESB + TOMCAT Интеграция веб-приложений

У меня есть веб-приложение Spring MVC, которое выполняет операции CRUD на сервере Tomcat. Могу ли я использовать Mule ESB в качестве обработчика запросов перед Tomcat. Например, пользователи запрашивают localhost:8181/user/create (Mule ESB Port) и Mule перенаправляют запрос на localhost:8080/user/create (Tomcat Server Port) и отправляют ответ обратно через mule. Я использую Mule ESB для веб-сервисов, но я не понимаю, как я могу использовать Mule ESB для запросов веб-приложений.

1 ответ

Вы можете использовать новый модуль HTTP, выпущенный в версии 3.6, и создать прокси, используя этот поток:

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:http="http://www.mulesoft.org/schema/mule/http"
      xsi:schemaLocation="
               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:listener-config name="proxyConfig" host="localhost" port="${proxyPort}" />
    <http:request-config name="requestConfig" host="localhost" port="${httpPort}" />
    <flow name="proxyTemplate">
        <http:listener config-ref="proxyConfig" path="/*" responseStreamingMode="AUTO" parseRequest="false" >
            <http:response-builder statusCode="#[message.inboundProperties['http.status']]" reasonPhrase="#[message.inboundProperties['http.reason']]" />
        </http:listener>

        <copy-properties propertyName="*" />
        <remove-property propertyName="http.*" />
        <copy-attachments attachmentName="*" />

        <set-property propertyName="X-Forwarded-For" value="#[message.inboundProperties['http.remote.address']]" />

        <http:request config-ref="requestConfig" method="#[message.inboundProperties['http.method']]" path="#[message.inboundProperties['http.request.path']]" parseResponse="false" >
            <http:request-builder>
                <http:query-params expression="#[message.inboundProperties['http.query.params']]" />
            </http:request-builder>
        </http:request>

        <copy-properties propertyName="*" />
        <remove-property propertyName="http.*" />
        <copy-attachments attachmentName="*" />
    </flow>

</mule>
Другие вопросы по тегам