Java 远程调用之Hessian简例

1. [代码]1.服务接口(Hello.java)

package server;
 
public interface Hello {
  String hello(String name);
}
2. [代码]2.接口实现(HelloImpl.java)

package server;
 
public class HelloImpl implements Hello{
  public String hello(String name) {
      return "hello,"+name+"! 欢迎学习Hessian";
  }
}
3. [代码]服务端配置(web.xml)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
  xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>http://www.huiyi8.com/hunsha/?
    <servlet-name>hessianService</servlet-name>
    <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
    <init-param>婚纱摄影
      <param-name>service-class</param-name>
      <param-value>server.HelloImpl</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>
</web-app>
4. [代码]4.客户端代码(RomoteTest.java)    
package client;
 
import java.net.MalformedURLException;
import server.Hello;
import com.caucho.hessian.client.HessianProxyFactory;
 
public class RomoteTest {
  public static void main(String[] args) {
    //hessian服务的url 其中hessian-v1是项目名
    String url = "http://192.168.1.104:8081/hessian-v1/hessianService";
    //创建HessianProxyFactory实例
    HessianProxyFactory factory = new HessianProxyFactory();
    //获得Hessian服务的远程引用
    try {
      Hello hello = (Hello)factory.create(Hello.class,url);
      System.out.println(hello.hello("kingtoon"));
    } catch (MalformedURLException e) {
      e.printStackTrace();
    }
  }
}

Java 远程调用之Hessian简例

时间: 2024-12-29 17:17:54

Java 远程调用之Hessian简例的相关文章

分布式服务架构之java远程调用技术浅析

分布式服务架构之java远程调用技术浅析     在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI.MINA.ESB.Burlap.Hessian.SOAP.EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来一探究竟,抛砖引玉,欢迎大家提供更多的实现远程通讯

java远程调用(rmi)常见的两个错误

java的 rmi远程调用给分布式编程带来极大的方便,在使用rmi过程中若遇到以下两个问题,可以尝试如下的解决方法 错误 1 : java.rmi.server.ExportException : remote object implements illegal remote interface; nested exception is : java.lang.IllegalArgumentException : illegal remote method encountered : , 解决方

Java[2] 分布式服务架构之java远程调用技术浅析(转http://www.uml.org.cn/zjjs/201208011.asp)

转自:http://www.uml.org.cn/zjjs/201208011.asp 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI.MINA.ESB.Burlap.Hessian.SOAP.EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来一探究竟,抛

java远程调用rmi入门实例

RMI是Java的一组拥护开发分布式应用程序的API.RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol).简单地说,这样使原先的程序在同一操作系统的方法调用.变成了不同操作系统之间程序的方法调用.因为J2EE是分布式程序平台.它以RMI机制实现程序组件在不同操作系统之间的通信. 比方,一个EJB能够通过RMI调用Web上还有一台机器上的EJB远程方法. 用例server端结构大概如此 首先定义要传送的实

Java远程调用

一.  概念: RMI全称是Remote Method Invocation-远程方法调用,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方案之一.它支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象的无缝远程调用. 二.原理: 方法调用从客户端对象经占位程序(Stub),远程引用层,和传输层向下传递给主机,然后再次经传输层,向上穿过远程调用层和骨干层,到达服务器对象. 占位程序扮演者远程服务器对象的代理角色,使该对象可被客户激活.远程

java 远程调用 shell

import java.io.BufferedReader; import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.nio.charset.Charset;import java

RPC远程调用 之 Hessian

Hessian将网络传输的对象转换为二进制流通过Http进行传递,不过它是使用自己的序列化机制实现的编组与反编组,其支持的数据类型是有限制的,不支持复杂的对象.Hessian的优点是可以透过防火墙. Hessian也是轻量级的 ws服务,好处是不需要关心过程,调用时就像调用本地一样,毕竟是RMI,http的话,需要自己做好对象的解析  --------方便 以spring boot整合hessian为例 首先 服务端 和 客户端 添加hessian依赖 <dependency> <gro

java 远程调用 RPC

1. 概念 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式.如RMI(远程方法调用).Hessian.Http invoker等.RPC是与语言无关的.直观说法就是A通过网络调用B的过程方法.也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据. 1.首先要解决寻址的

java远程调用RMI

1.RMI RMI是个典型的为java定制的远程通信协议,我们都知道,在single vm中,我们可以通过直接调用java object instance来实现通信,那么在远程通信时,如果也能按照这种方式当然是最好了,这种远程通信的机制成为RPC(Remote Procedure Call),RMI正是朝着这个目标而诞生的. 来看下基于RMI的一次完整的远程通信过程的原理: 1. 客户端发起请求,请求转交至RMI客户端的stub类: 2. stub类将请求的接口.方法.参数等信息进行序列化: 3