Java的通信方式有很多,最快的是rmi,还有socket,webservice 之类;今天项目刚好要用rmi,socket 都需要防火墙单独的开放端口,想想还是用简单的 http 请求把;据说hessian 比webservice 快一点就顺便拿来做个例子。
废话不说了,他的官网地址下载地址是 http://hessian.caucho.com/ , 最新版本是4.0.7,包很小,功能很强大,据官网上说 还支持rmi。
先定义请求接口:
public interface IuploadifyInfo {
//接受文件详细信息
public String receiveInfo(List<UploadifyFile> uploadifyFiles);
}
服务端 实现:
public class UploadifyInfo extends HessianServlet implements IuploadifyInfo {
private static final long serialVersionUID = 7410494948359166445L;
@Override
public String receiveInfo(List<UploadifyFile> uploadifyFiles) {
if (UtilGet.listIsEmpty(uploadifyFiles)) {
// 接受文件详细消息
// System.out.println(uploadifyFiles);
}
return "";
}
}
然后配置监听请求(配置servlet)
<servlet> <servlet-name>uploadifys</servlet-name> <servlet-class>cn.test..bs.UploadifyInfo</servlet-class> </servlet> <servlet-mapping> <servlet-name>uploadifys</servlet-name> <url-pattern>/info</url-pattern> </servlet-mapping>
然后写客户端:
public class HessionUitil {
public void processInfo(List<UploadifyFile> uploadifyFiles) {
HessianProxyFactory factory = new HessianProxyFactory();
IuploadifyInfo h = null;
try {
h = (IuploadifyInfo) factory.create(IuploadifyInfo.class,"/info");
h.receiveInfo(uploadifyFiles);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
调用客户端 List<UploadifyFile> uploadifyFiles 这个list 信息就会被服务端拦截到打印出来。