0

我是 Mule 的新手,正在尝试 [in Mule] 设置一个 Web 服务器来“替换”现有的 Java 服务器——它只是代理 SOAP Web 服务。所以:

  1. Web 客户端 (js/html) 请求静态资源
  2. Mule Server 必须返回静态资源

或者

  1. Web 客户端使用路径以“api/”开头的 Jquery Ajax (json) 请求
  2. Mule Server 必须将请求转发到 Java 服务器(使用旧 API)

或者

  1. Web 客户端使用路径以“sapi/”开头的 Jquery Ajax 请求
  2. Mule 服务器必须将请求转换为 XML 并调用 SOAP 服务器(用于新的 api 调用)

我正在努力寻找一个好的起点:

  • 我玩过 Ajax 连接器(和端点)并且可以获得静态内容服务 - 但不确定 api 调用的去向(不想强制客户端应用程序使用 mule.js)
  • 我玩过 HTTP 端点,但无法获得静态内容(隐式 Content-Type 问题)

任何帮助将不胜感激...

4

1 回答 1

0
  • 用于http:static-resource-handler为您的静态内容提供服务:它应该为您处理内容类型。有关更多信息,请参阅:http: //www.mulesoft.org/documentation/display/current/HTTP+Transport+Reference#HTTPTransportReference-ServingStaticContent%28sinceMule3.2%29
  • 忘记 Ajax 连接器,您所需要的只是 HTTP 连接器。绑定一个 HTTP 端点,api另一个绑定sapi.
  • 转发请求时,请确保在api/. 请参阅下面的示例以了解通常如何完成此操作。

    <flow name="rawProxy">
        <http:inbound-endpoint
            address="http://localhost:${http.port}/rest-proxies/raw"
            exchange-pattern="request-response" />
        <copy-properties propertyName="*" />
        <http:outbound-endpoint address="http://localhost:${http.port}/rest/#[message.inboundProperties['http.relative.path']]?#[message.inboundProperties['http.query.string']]"
    exchange-pattern="request-response" />
        <response>
            <copy-properties propertyName="*" />
        </response>
    </flow>
    
  • 如果您作为 WSDL 调用的 SOAP API 则为它生成一个客户端,而不是转换为 XML,而是转换为它期望的请求对象。
于 2013-09-14T15:05:11.107 回答