hessian是一个轻量级的二进制webservices
1.自定义对像必须要实现Serializable接口, 这样才可被序列/反序列,要不能会抛异常
public class Book implements Serializable{
private int id;
private String name;
private double price;
// getters and setters......
}
2.一个接口
public interface Service {
public String sayHello();
public List getAllBooks();
public Book getBook();
}
3.实现自定义的接口
public class ServiceImpl implements Service {
public String sayHello() {
return "this is a simple test";
}
public List<Book> getAllBooks() {
List<Book> bookList = new ArrayList<Book>();
for (int i = 0; i < 30; i++) {
Book book = new Book();
book.setId(i);
book.setName("name_" + i);
book.setPrice(20 * i);
bookList.add(book);
}
return bookList;
}
public Book getBook() {
Book book = new Book();
book.setId(1);
book.setName("book_name");
book.setPrice(123.0);
return book;
}
}
4. 在web.xml文件中配置hessian
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>
com.caucho.hessian.server.HessianServlet
</servlet-class>
<init-param>
<param-name>service-class</param-name>
<param-value>com.test.hessian.ServiceImpl</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
5.如果实现类实现类自定义的接口 并从HessianServlet继承。
public class WSServlet extends HessianServlet implements Service {
public String sayHello() {
return "this is a simple test";
}
public List<Book> getAllBooks() {
List<Book> bookList = new ArrayList<Book>();
for (int i = 0; i < 30; i++) {
Book book = new Book();
book.setId(i);
book.setName("name_" + i);
book.setPrice(20 * i);
bookList.add(book);
}
return bookList;
}
public Book getBook() {
Book book = new Book();
book.setId(1);
book.setName("book_name");
book.setPrice(123.0);
return book;
}
}
那么在web.xml文件中既可以这样配置
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>
com.test.hessian.WSServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
6.编写客户端
public class Client {
@SuppressWarnings("unchecked")
public static void main(String args[]){
//发布的服务的url
String url="http://localhost:8080/hessian/hello";
//生成工厂
HessianProxyFactory factory = new HessianProxyFactory();
try {
//生成服务对像
Service service = (Service)factory.create(Service.class, url);
System.out.println(service.sayHello());
//调用java对像
Book book = service.getBook();
System.out.println(book.getName());
long startTime = System.currentTimeMillis();
List<Book> books = service.getAllBooks();
int length = books.size();
for(int i=0; i<length; i++){
Book b = books.get(i);
System.out.println("id="+b.getId()+",name="+b.getName()+",price="+b.getPrice());
}
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
7.hessian在处理大量数据的时候性能很低
分享到:
相关推荐
Hessian是一种二进制的远程过程调用(RPC)协议,它旨在提供高效的、轻量级的服务交互方式,特别是在Java和.NET之间。Hessian在处理Web服务时,能够减少网络传输的数据量,提高服务调用的性能。 描述中提到的“NULL...
Hessian是一种二进制Web服务协议,它提供了一种高效的序列化和远程调用机制,常用于分布式系统中。在本项目中,我们探讨的是基于C#实现的Hessian服务端和客户端,已经在IIS环境下进行了测试并成功通过。 1. **...
在OSGI和SpringDM环境中,Hessian可以被用来创建轻量级的远程服务,使得不同bundle或不同系统之间能够便捷地通信。 结合这三个技术,我们可以创建一个高度模块化的、动态的Java应用,其中各个组件(即OSGI bundle)...
在Web服务领域,Hession是一个高效、轻量级的二进制RPC框架,主要用于Java与Java之间或Java与其他语言之间的远程调用。它能够快速地序列化和反序列化Java对象,使得网络通信更加高效。本主题将深入探讨Hession的基本...
其次,Hessian是一种二进制Web服务协议,由Caucho公司开发。Hessian的目标是提供快速、轻量级的远程调用机制。与REST相比,Hessian的数据交换格式是二进制的,这使得它在网络传输中更加高效。Hessian服务可以透明地...
Caucho Hessian是另一种轻量级的二进制RPC协议,因其二进制格式,特别适合于高性能的数据传输,尤其是在网络带宽有限的场景下。 这些工具和技术共同构成了Web Service开发的重要组成部分,为构建、发布、发现和集成...
Hessian和Burlap是二进制和文本的RPC协议,它们提供了轻量级的远程调用解决方案,适合对性能要求较高的场景。 JMS(Java Message Service)是Java平台的消息队列标准,它允许应用程序之间异步发送和接收消息,适用...
3. **Hessian**:这是一个轻量级的二进制Web服务协议,它提高了服务调用的效率,减少了网络传输的数据量。在分布式事务中,Hessian的使用可以降低延迟,提高性能。 4. **QDTC**:根据上下文,这可能是一个快速的...
1. **Hessian**:这是一种轻量级的二进制RPC协议,它简化了跨语言的远程调用。Hessian提供了一个简单的HTTP封装,使得远程调用看起来就像是本地方法调用。它减少了数据序列化和反序列化的开销,但可能不支持所有Java...
4. **Hessian服务**:Hessian是一种轻量级的二进制Web服务协议,它可以提供比标准SOAP更快、更小的序列化格式。Spring支持Hessian服务,使得Flex可以通过HTTP直接调用Spring Bean的方法,实现远程调用。 5. **集成...
- Hessian和Burlap是轻量级的RPC(远程过程调用)框架,支持二进制和XML序列化。 - JMS(Java Message Service)通过消息队列实现进程间的异步通信。 - JAX-RPC和Web Services(如SOAP)提供了基于HTTP的远程调用...
与Hessian接口实例相比,这可能意味着它涉及了HTTP协议下的SOAP服务,因为Hessian通常用于轻量级的二进制RPC通信,而Axis2支持多种协议,包括SOAP、RESTful等。 描述中提到“可以直接下载运行”,这意味着提供的...