httpInvoker提供远程服务调用总结(二)
2013-04-24 16:30
393 查看
以下实例在只需在客户端部署一个JAR包,JAR中包含共同接口,传送的对象类,对象解析bfo类、包含可外调用信息的配置文件及文件解析类。其中配置文件包含的调用信息包括名称、类型(bean类或静态类)、类名或者Bean名、方法名、参数个数及类型。客户端通过指定配置文件中的名称,传入参数就可以随意调用配置文件中定义好的接口。当然服务器端接收传送过来的类名或者beean名、方法名、参数类型、参数值就可以执行产生结果返回给客户端。客户端获取对象解析并自行处理。
服务器端:
对外服务接口
public interface RideService {
/**
* 多个方法调用时,如果某个方法调用出错,则继续调用其他方法.
*/
int IEC = 0;
/**
* 多个方法调用时,如果某个方法调用出错,则停止调用其他方法.
*/
int IES = 1;
/**
* 客户端远程调用的方法.
* @param service 服务
* @param params 参数
*
* @return 方法返回值
*/
Object invoke(RemoteService service, Object[] params);
/**
* 多个方法调用.
* @param services 每个元素是一个RemoteService.
* @param flag 控制标志
* @return
*/
Object invokeM(List services, int flag);
}
对外服务接口实现RideServiceImpl提供调用服务的执行,并提供返回对象。
客户端
提供给客户端接口,用于远程调用
public interface HttpService {
/**
* 客户端远程调用的方法.
* @param serviceName 服务名(方法名)
* @param params 方法的参数
* @return 方法返回值
*/
RemoteRes invoke(String serviceName, Object[] params);
/**
* 远程调用多个方法.
* @param services multi services names
* @param params each element is a Object[] parameter
* @return list
*/
public List invokeM(String[] services, Object[][] params);
}
提供给客户端接口的实现,包括解析配置文件获取调用信息及发出远程调用请求(如rideService. invokeM(serviceList, RideService.IES))
public
class HttpServiceImpl implements
HttpService
包含远程调用服务相关信息的配置文件
<remote-services>
<!-- admin -->
<service name="admin_getSessionData" type="0"><!-- a spring bean's method -->
<bean>applicationData</bean>
<method-name>getSession</method-name>
<param-count>1</param-count>
<param-list>
<value>java.lang.String</value>
</param-list>
</service>
<service name="admin_flushAllMenuInfo" type="2"><!-- class's static method -->
<bean>cn.ccb.ride.admin.util.context.ContextFactory</bean>
<method-name>flushAllMenuInfo</method-name>
<param-count>0</param-count>
</service>
</remote-services>
配置文件解析类RemoteServiceConfig
当然以上介绍的是最主要的类,其他接收对象类等,本文暂且不予说明。
服务器端:
对外服务接口
public interface RideService {
/**
* 多个方法调用时,如果某个方法调用出错,则继续调用其他方法.
*/
int IEC = 0;
/**
* 多个方法调用时,如果某个方法调用出错,则停止调用其他方法.
*/
int IES = 1;
/**
* 客户端远程调用的方法.
* @param service 服务
* @param params 参数
*
* @return 方法返回值
*/
Object invoke(RemoteService service, Object[] params);
/**
* 多个方法调用.
* @param services 每个元素是一个RemoteService.
* @param flag 控制标志
* @return
*/
Object invokeM(List services, int flag);
}
对外服务接口实现RideServiceImpl提供调用服务的执行,并提供返回对象。
客户端
提供给客户端接口,用于远程调用
public interface HttpService {
/**
* 客户端远程调用的方法.
* @param serviceName 服务名(方法名)
* @param params 方法的参数
* @return 方法返回值
*/
RemoteRes invoke(String serviceName, Object[] params);
/**
* 远程调用多个方法.
* @param services multi services names
* @param params each element is a Object[] parameter
* @return list
*/
public List invokeM(String[] services, Object[][] params);
}
提供给客户端接口的实现,包括解析配置文件获取调用信息及发出远程调用请求(如rideService. invokeM(serviceList, RideService.IES))
public
class HttpServiceImpl implements
HttpService
包含远程调用服务相关信息的配置文件
<remote-services>
<!-- admin -->
<service name="admin_getSessionData" type="0"><!-- a spring bean's method -->
<bean>applicationData</bean>
<method-name>getSession</method-name>
<param-count>1</param-count>
<param-list>
<value>java.lang.String</value>
</param-list>
</service>
<service name="admin_flushAllMenuInfo" type="2"><!-- class's static method -->
<bean>cn.ccb.ride.admin.util.context.ContextFactory</bean>
<method-name>flushAllMenuInfo</method-name>
<param-count>0</param-count>
</service>
</remote-services>
配置文件解析类RemoteServiceConfig
当然以上介绍的是最主要的类,其他接收对象类等,本文暂且不予说明。
相关文章推荐
- httpInvoker提供远程服务调用总结(三)
- httpInvoker提供远程服务调用总结(一
- httpInvoker提供远程服务调用总结(一)
- WebService学习总结(四)——调用第三方提供的webService服务
- WebService学习总结(四)——调用第三方提供的webService服务
- WebService学习总结(四)——调用第三方提供的webService服务
- WebService学习总结(四)——调用第三方提供的webService服务
- WebService学习总结(四)——调用第三方提供的webService服务
- WebService学习总结(三)——调用第三方提供的webService服务
- WebService学习总结(四)——调用第三方提供的webService服务
- WebService学习总结(四)——调用第三方提供的webService服务
- WebService学习总结(四)——调用第三方提供的webService服务(还未学习到,先保留着)
- SpringCloud03 Ribbon知识点、 Feign知识点、利用RestTemplate+Ribbon调用远程服务提供的资源、利用feign调用远程服务提供的资源、熔断
- WebService学习总结——调用第三方提供的webService服务
- 本地提供/调用服务与远程提供/调用服务(dubbo)的区别比较
- WebService学习总结(四)——调用第三方提供的webService服务
- WebService学习总结(四)——调用第三方提供的webService服务
- WebService学习总结(四)——调用第三方提供的webService服务
- WebService学习总结(四)——调用第三方提供的webService服务,使用cxf
- 用于 J2ME 的 Web 服务 API 进行远程服务调用 API