JAVA创建Hessian服务只需四步
1。创建服务接口
2。使用HessianProxyFactory创建客户端
3。服务器端实现服务接口
4。配置Servlet
下面将用将使用Netbeans6.8+Hessian4.0.2,经过以上四步创建一个简单的远程方法调用示例
一、创建项目
分别创建一个名为HessianServer的JavaWeb项目和一个名为HessianClient的Java项目,
将HessianServer设为主项目(只是方便一点,不设也无所谓)
HessianServer上下文路径为/HessianServer(默认路径)!!!
将hessian-4.0.2.jar分别添加至以上项目的Classpath中 下载地址http://hessian.caucho.com/
二、创建Hessian服务示例
1.创建服务接口
具体服务通过此服务器端此接口的实现类来提供,客户端通过此接口来调用实现的服务,所以HessianServer和HessianClient中都要有此接口
Java代码
package org.migle.hessian;
/**
*Hessian服务接口
* @version 0.1 2022-05-03
*
*/
public interface Hello {
public String sayHello(String smt);
public void printHello(String smt);
}
package org.migle.hessian;
/**
*Hessian服务接口
* @version 0.1 2022-05-03
*
*/
public interface Hello {
public String sayHello(String smt);
public void printHello(String smt);
}
2.使用HessianProxyFactory创建客户端
Java代码
package org.migle.hessianclient;
import com.caucho.hessian.client.HessianProxyFactory;
import java.net.MalformedURLException;
import org.migle.hessian.Hello;
/**
*Hessian客户端
* @
* @version 0.1 2022-05-03
*/
public class Main {
public static void main(String[] args) throws MalformedURLException {
String url = "http://localhost/HessianServer/hessian";
HessianProxyFactory factory = new HessianProxyFactory();
Hello d = (Hello) factory.create(Hello.class, url);
System.out.println(d.sayHello("migle"));//打印从服务器端获取的字符串
d.printHello("Hessian"); //在服务器端控制台打印 "Hello Hessian"
}
}
package org.migle.hessianclient;
import com.caucho.hessian.client.HessianProxyFactory;
import java.net.MalformedURLException;
import org.migle.hessian.Hello;
/**
*Hessian客户端
* @version 0.1 2022-05-03
*/
public class Main {
public static void main(String[] args) throws MalformedURLException {
String url = "http://localhost/HessianServer/hessian";
HessianProxyFactory factory = new HessianProxyFactory();
Hello d = (Hello) factory.create(Hello.class, url);
System.out.println(d.sayHello("migle"));//打印从服务器端获取的字符串
d.printHello("Hessian"); //在服务器端控制台打印 "Hello Hessian"
}
}
3.服务器端的服务接口实现
服务接口的实现可以是扩展自HessianServlet,也可以是直接一个POJO的实现来回避依赖于HessianServlet
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>hessian</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>service-class</param-name>
<param-value>org.migle.hessian.impl.HelloImpl</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>hessian</servlet-name>
<url-pattern>/hessian</url-pattern>
</servlet-mapping>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>hessian</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>service-class</param-name>
<param-value>org.migle.hessian.impl.HelloImpl</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>hessian</servlet-name>
<url-pattern>/hessian</url-pattern>
</servlet-mapping>
</web-app>
4.Servet配置
Java代码
package org.migle.hessian.impl;
import org.migle.hessian.Hello;
/**
* 服务接口的具体实现
* @author
* @version v0.1 2022-05-03
*/
public class HelloImpl implements Hello {
public String sayHello(String smt) {
return smt != null ? "hello " + smt : "hello hessian";
}
public void printHello(String smt) {
System.out.println("Hello " + smt);
}
}
package org.migle.hessian.impl;
import org.migle.hessian.Hello;
/**
* 服务接口的具体实现
* @author
* @version v0.1 2022-05-03
*/
public class HelloImpl implements Hello {
public String sayHello(String smt) {
return smt != null ? "hello " + smt : "hello hessian";
}
public void printHello(String smt) {
System.out.println("Hello " + smt);
}
}
Hessian基本Http以二进行方式传输数据,不依赖于特定的Servelt引擎,使用简单,没有复杂的配置,根本不需要什么插件之类的来配合开发。
相当小巧,Hessian4.0.2只有不到340KB,Hessian3只有不到300KB。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。