使用MULE接收并处理HTTP请求
2011-01-10 10:37
295 查看
一:插件安装
Mule插件地址:
mule - http://dist.muleforge.org/mule-ide/updates/3.4/
二:配置mule安装目录
Preferences->Mule->Mule Distributions
三:新建Mule工程
mule-config.xml配置文件
com.test.SampleMuleRequestDto
com.test.SampleMuleRequestTransformer
com.test.SimpleProcessor
Mule插件地址:
mule - http://dist.muleforge.org/mule-ide/updates/3.4/
二:配置mule安装目录
Preferences->Mule->Mule Distributions
三:新建Mule工程
mule-config.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> ~~ <spring:beans> <spring:bean class="com.test.SimpleProcessor"></spring:bean> </spring:beans> <custom-transformer name="SampleMuleRequestTransformer" class="com.test.SampleMuleRequestTransformer"/> <model name="Sample"> <service name="httpReciver4"> <inbound> <inbound-endpoint address="http://localhost:8086/test.html" synchronous="true" transformer-refs="SampleMuleRequestTransformer"> </inbound-endpoint> </inbound> <component> <spring-object bean="com.test.SimpleProcessor"></spring-object> </component> </service> </model> </mule>
com.test.SampleMuleRequestDto
package com.test; public class SampleMuleRequestDto { private String bodyXml; private String clientIp; public String getBodyXml() { return bodyXml; } public void setBodyXml(String bodyXml) { this.bodyXml = bodyXml; } public String getClientIp() { return clientIp; } public void setClientIp(String clientIp) { this.clientIp = clientIp; } }
com.test.SampleMuleRequestTransformer
package com.test; import java.io.IOException; import java.io.InputStream; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.mule.api.MuleMessage; import org.mule.api.transformer.TransformerException; import org.mule.transformer.AbstractMessageAwareTransformer; import org.mule.transport.http.HttpMessageAdapter; import org.mule.util.IOUtils; public class SampleMuleRequestTransformer extends AbstractMessageAwareTransformer { private static Log log = LogFactory .getLog(SampleMuleRequestTransformer.class); @Override public Object transform(MuleMessage message, String outputEncoding) throws TransformerException { HttpMessageAdapter adapter = (HttpMessageAdapter) message.getAdapter(); String context = ""; try { context = convertRequestToString(adapter.getPayload(), outputEncoding); } catch (IOException e) { log.error("get request error", e); return "get request error"; } String ip = getIp(adapter); SampleMuleRequestDto dto = new SampleMuleRequestDto(); dto.setBodyXml(context); dto.setClientIp(ip); return dto; } private String getIp(HttpMessageAdapter adapter) { String address = (String) adapter .getProperty("MULE_REMOTE_CLIENT_ADDRESS"); String ip = address.substring(1, address.indexOf(":")); return ip; } private String convertRequestToString(Object src, String encoding) throws IOException { String srcString = null; if (src instanceof InputStream) { InputStream input = (InputStream) src; try { srcString = IOUtils.toString(input, encoding); } catch (IOException iox) { throw iox; } finally { IOUtils.closeQuietly(input); } } else { srcString = src.toString(); } return srcString; } }
com.test.SimpleProcessor
package com.test; public class SimpleProcessor { public String process(SampleMuleRequestDto context) { System.out.println(context); String responseXml="test"; return responseXml; } public String error(String message) { return message; } }
相关文章推荐
- HTTP头部详解及使用Java套接字处理HTTP请求
- 使用WX-SDK开发微信公众号(一) 接收处理来自微信用户的消息
- 使用Servlet处理HTTP请求
- iOS9 项目因使用http请求导致失败怎么处理
- Android Handler Message 在使用多个Handler时,接收不到消息的处理办法
- 使用URLConnection处理http请求
- 使用Servlet处理HTTP请求
- 服务器使用环形缓冲区处理接收数据
- 使用CEF类库处理HTTP请求
- 转:ASP.NET使用管道模型(PipleLines)处理HTTP请求
- 使用Servlet处理http请求
- HTTP头部详解及使用Java套接字处理HTTP请求
- 使用servlet处理HTTP请求
- jQuery使用Base64 生成图片预览和java后台不同的接收处理方式
- HTTP头部详解及使用Java套接字处理HTTP请求
- IOS 构造和使用TableView(基于storyboard) (二)接收和处理Table View事件
- 使用CEF类库处理HTTP请求
- android接收短信(SmsMessage.createFromPdu((byte[])obj)不推荐使用的处理方法)
- 爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,loads,dump,load方法介绍
- android接收短信(SmsMessage.createFromPdu((byte[])obj)不推荐使用的处理方法)