Spring发布多协议的远程服务最简单办法

Spring发布多协议的远程服务其实比较简单,感觉Spring这方面已经做的好了,自己没必要再去搞些什么服务池。
[b]1.ServiceExporter[/b]

[code]public class ServiceExporter extends RemoteExporter
implements Controller, InitializingBean {


/**
*访问协议属性
*/
public static final String REMOTE_EXPORTER = "RemoteExporter";

/**
*访问协议hession
*/
public static final String HESSIAN_SERVICE_EXPORTER = "HessianServiceExporter";
HessianServiceExporter hessian=new HessianServiceExporter();
/**
*访问协议HttpInvoker
*/
public static final String HTTP_INVOKER_SERVICE_EXPORTER = "HttpInvokerServiceExporter";
HttpInvokerServiceExporter httpInvoker=new HttpInvokerServiceExporter();

/**
*访问协议Burlap
*/
public static final String BURLAP_SERVICE_EXPORTER = "BurlapServiceExporter";
BurlapServiceExporter burlap=new BurlapServiceExporter();

public void setService(Object service) {
super.setService(service);
hessian.setService(service);
httpInvoker.setService(service);
burlap.setService(service);
}

public void setServiceInterface(Class serviceInterface) {
super.setServiceInterface(serviceInterface);
hessian.setServiceInterface(serviceInterface);
httpInvoker.setServiceInterface(serviceInterface);
burlap.setServiceInterface(serviceInterface);
}



public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception{
//检查访问协议属性
String remoteExporter = request.getHeader(ServiceExporter.REMOTE_EXPORTER);

// 访问协议Hessian
if(remoteExporter==null) {
hessian.handleRequest(request,response);
return null;
}

//访问协议HttpInvoker
if(remoteExporter.equalsIgnoreCase(ServiceExporter.HTTP_INVOKER_SERVICE_EXPORTER))
httpInvoker.handleRequest(request,response);

//访问协议Burlap
else if(remoteExporter.equalsIgnoreCase(ServiceExporter.BURLAP_SERVICE_EXPORTER))
burlap.handleRequest(request,response);

//访问协议Hessian
else
hessian.handleRequest(request,response);

return null;

}

public void afterPropertiesSet() throws Exception {
hessian.afterPropertiesSet();
burlap.afterPropertiesSet();
httpInvoker.afterPropertiesSet();
}[/code]

[b]2.把接口发布为多协议远程服务[/b]
[code]<bean name="/log/BusinessLogMessageService" class="bpo.ServiceExporter">
<property name="service" ref="log.BusinessLogMessageBPOTx"/>
<property name="serviceInterface" value="log.ILogMessageService"/>
</bean> [/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值