现在的位置: 首页 > 综合 > 正文

Java 远程调用 Hessian 简例

2012年09月10日 ⁄ 综合 ⁄ 共 2044字 ⁄ 字号 评论关闭

<servlet> 
  <servlet-name>hessianService</servlet-name> 
  <!-- 注意这里,这是hessian提供的 --> 
  <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> 
  <init-param> 
      <param-name>service-class</param-name> 
      <!-- 实例化后调用的类 --> 
      <param-value>guilinsoft.ddsx.api.WdpfImpl</param-value> 
  </init-param> 
  <load-on-startup>1</load-on-startup> 
</servlet> 
      
<servlet-mapping> 
  <servlet-name>hessianService</servlet-name> 
  <url-pattern>/hessianService</url-pattern> 
</servlet-mapping>

感谢:绿悠悠


项目中需要实时监控设备的当前状态,而服务器又在远程,so,在网上找到了强大的Hessian,哈哈,之前我一直以为它是session的扩展..汗,看了看它的官网,有点晕,主要是它的配置文件没明白,然后又在oschina中找到了绿悠悠同学分享的实例.哦也..运行调用成功,趁热记录一番。

模拟二个项目,Demo(服务器),client(客户端)

GreetingAPI是接口,而GreetingServlet是接口的实现...名字没起好..

package example;
  
public interface GreetingAPI {
  
 public String hello();
 public String ok();
 public String no();
}
package example;
  
  
public class GreetingServlet  implements GreetingAPI {
  
 private static final long serialVersionUID = 1L;
 private String _greeting="Hello,would!";
   
 public String hello() {
  return _greeting;
 }
 public String ok(){
  return "this is greetingServlet method ok!!";
 }
  
 public void set_greeting(String greeting) {
  _greeting = greeting;
 }
 public String no() {
  return "this is greetingServlet method NO!!";
 }
  
}

注意,包名需要与服务器一致哦,不然实例它时,它会报出找不到的异常。GreetingAPI.java的内容跟服务器端的一致

package example;
  
import java.net.MalformedURLException;
  
import com.caucho.hessian.client.HessianProxyFactory;
import com.jzero.util.MPrint;
  
  
  
public class test {
  
 public static void main(String[] args) {
  String url="http://localhost:8080/Demo/hessianService";
  HessianProxyFactory factory=new HessianProxyFactory();
  try {
   GreetingAPI api=(GreetingAPI) factory.create(url);
   MPrint.print(api.hello());
   MPrint.print(api.ok());
   MPrint.print(api.no());
  } catch (MalformedURLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

-------【程序调试打印数据:Hello,would!】-------
-------【程序调试打印数据:this is greetingServlet method ok!!】-------
-------【程序调试打印数据:this is greetingServlet method NO!!】-------


来源:Java 远程调用 Hessian 简例

-----------广告区

休闲豆,IT资讯,IT新闻资讯,电影BT下载,高清电影下载,电影下载,单机游戏下载,游戏下载,电子书下载,电子书PDF下载​

【上篇】
【下篇】

抱歉!评论已关闭.