天天看點

Hessian---簡單例子

在進行基于Hessian的項目開發時,應當注意以下幾點:

▲JAVA伺服器端必須具備以下幾點:

·包含Hessian的jar包

·設計一個接口,用來給用戶端調用

·實作該接口的功能

·配置web.xml,配好相應的servlet

·由于使用二進制RPC協定傳輸資料,對象必須進行序列化,實作Serializable 接口

·對于複雜對象可以使用Map的方法傳遞

▲用戶端必須具備以下幾點:

·java用戶端包含Hessian.jar的包。C#中引用hessianCSharp.dll

·具有和伺服器端結構一樣的接口。包括命名空間都最好一樣

·利用HessianProxyFactory調用遠端接口。

一、服務端【TestHessainServices】

1、接口

package app.demo;

public interface BasicAPI {
	public void setTest(String test);
	public String hello();
	public User getUser();
}
           

2、實體類

package app.demo;

public interface BasicAPI {
	public void setTest(String test);
	public String hello();
	public User getUser();
}
           

3、services

package app.demo;


/**
 * @author 
 * @建立時間:205-4-15
 * @作用: hessian服務端
 * 釋出在伺服器上,為用戶端提供接口*/
public class BasicService implements BasicAPI {
	private String params = "測試,成功!!!";

	@Override
	public void setTest(String test) {
		params = test;
		System.out.println("set greeting success:"+params);

	}

	@Override
	public String hello() {
		return params;
		
	}

	@Override
	public User getUser() {
		return new User("小明", "123456");
		
	}

}
           

4、web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>	
  
  <!-- hessain配置 -->
  <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>app.demo.BasicService</param-value>
	</init-param>
  </servlet>
  <servlet-mapping>
	<servlet-name>hello</servlet-name>
	<url-pattern>/hello</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
           

二、用戶端【TestHessianClient】

1、接口和服務端一樣

2、實體類和服務端一樣

3、services

package app.demo;

import com.caucho.hessian.client.HessianProxyFactory;

/**
 * @author 
 * @建立時間:205-4-15
 * @作用: hessian用戶端
 * 用戶端調用服務端的接口*/
public class BasicClient {
	public static void main(String[] args) throws Exception
	{
		//   http://localhost:8081/TestHessainServices/-------釋出在tomcat伺服器上-----hello服務端上的web.xml配置servlet名字
		String url ="http://localhost:8081/TestHessainServices/hello";
		HessianProxyFactory factory = new HessianProxyFactory();
		BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class, url);
		System.out.println("測試1:" + basic.hello());
		System.out.println("測試2:" + basic.getUser().getUserName());
		System.out.println("測試3:" + basic.getUser().getPassword());
		basic.setTest("測試");
		System.out.println("測試4:" + basic.hello());
		
	}
}