设置Mule web服务器和REST到SOAP代理

设置Mule web服务器和REST到SOAP代理,mule,Mule,我是Mule的新手,正在尝试[在Mule中]设置一个web服务器来“替换”现有的Java服务器——它只是SOAP web服务的代理。 因此: Web客户端(js/html)请求静态资源 Mule服务器必须返回静态资源 或 Web客户端使用Jquery Ajax(json)请求,路径以“api/”开头 Mule服务器必须将请求转发到Java服务器(使用旧API) 或 Web客户端使用Jquery Ajax请求,路径以“sapi/”开头 Mule服务器必须将请求转换为XML并调用SOAP服务器(对于

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

  • Web客户端(js/html)请求静态资源
  • Mule服务器必须返回静态资源
  • Web客户端使用Jquery Ajax(json)请求,路径以“api/”开头
  • Mule服务器必须将请求转发到Java服务器(使用旧API)
  • Web客户端使用Jquery Ajax请求,路径以“sapi/”开头
  • Mule服务器必须将请求转换为XML并调用SOAP服务器(对于新的api调用)
  • 我正在努力寻找一个好的起点:

    • 我使用过Ajax连接器(和端点),可以获得静态内容,但不确定api调用的去向(不想强制客户端应用程序使用mule.js)
    • 我已经使用了HTTP端点,但无法提供静态内容(隐式内容类型问题)
    任何帮助都将不胜感激……

    • 使用
      http:static resource handler
      为您的静态内容提供服务:它应该为您处理内容类型。有关更多信息,请参阅:
    • 忘记Ajax连接器吧,您只需要HTTP连接器。在
      api
      上绑定一个HTTP端点,在
      sapi
      上绑定另一个HTTP端点
    • 转发请求时,请确保在
      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>
      
      
      
    • 如果您正在调用的SOAP API是WSDL,则为其生成一个客户端,而不是转换为XML,而是转换为它所期望的请求对象