Java使用Hessian远程方法调用

        <dependency>
            <groupId>com.caucho</groupId>
            <artifactId>hessian</artifactId>
            <version>4.0.38</version>
        </dependency>
/**
 * Copyright (C),HTF<br>
 * 服务接口
 *
 * @author muzhongjiang
 * @date 2014年8月5日
 */
public interface BasicService {

    public void setServiceName(String serverName);

    public String getServiceName();

    public User createUser();

}
/**
 * Copyright (C),HTF<br>
 * 服务实现类
 *
 * @author muzhongjiang
 * @date 2014年8月5日
 */
public class BasicServiceImpl implements BasicService {  

    private String serviceName;  

    @Override
    public void setServiceName(String serverName) {
        this.serviceName = serverName;
    }  

    @Override
    public String getServiceName() {
        return this.serviceName;
    }  

    @Override
    public User createUser() {
        return new User("zhangsan", "123456");
    }
}  
import java.net.MalformedURLException;

import org.junit.Before;
import org.junit.Test;

import com.caucho.hessian.client.HessianProxyFactory;

public class HessianTest {  

    private BasicService basicService;  

    @Before
    public void init() throws MalformedURLException {
        HessianProxyFactory factory = new HessianProxyFactory();
        String url = "http://localhost:8080/HessianServer/basic";
        basicService = (BasicService)factory.create(BasicService.class, url);
    }  

    @Test
    public void testBasic() {
        basicService.setServiceName("BasicService");
        System.out.println(basicService.getServiceName());  

        System.out.println(basicService.createUser().getUsername());
        System.out.println(basicService.createUser().getPassword());
    }
}  
import java.io.Serializable;

public class User implements Serializable {
    private static final long serialVersionUID = -7163479978658496547L;

    private String username;

    private String password;

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User [username=" + username + ", password=" + password + "]";
    }

}

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>
        <servlet-name>basic</servlet-name>
        <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
        <init-param>
            <param-name>service-class</param-name>
            <param-value>com.loujinhe.service.impl.BasicServiceImpl</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>basic</servlet-name>
        <url-pattern>/basic</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
        

Java使用Hessian远程方法调用

时间: 2024-08-07 00:52:40

Java使用Hessian远程方法调用的相关文章

RMI - Java远程方法调用

一.入门篇 Java RMI指的是远程方法调用(Remote Method Invocation). 它是一种机制, 能够让不同操作系统之间程序实现方法调用. 比如: 一台电脑上的Java程序可以通过RMI调用另一台电脑上的方法(EJB底层就是使用RMI). 二.RMI和webservice RMI是在TCP协议上传递可序列化的Java对象, 只能用在Java虚拟机上, 客户端和服务端必须都是Java. webservice是在http协议上传递xml文件, 它与语言和平台无关, 可以在异构系统

spring整合RMI - Java远程方法调用

一. 开篇语 在上一篇RMI - Java远程方法调用博文中使用的是JDK原生类进行远程方法调用, 本篇文章使用spring提供的API对RMI进行整合, 希望能给您带来帮助. 二. 核心API 1. 客户端: 客户端的核心是RmiProxyFactoryBean, 它包含两个属性serviceUrl(远程调用地址), serviceInterface(远程调用接口) 2. 服务端: RmiServiceExporter把spring管理的Bean输出成一个RMI服务, 通过把Bean包装在一个

XML-RPC远程方法调用

一.简介 XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用. 它是一套允许运行在不同操作系统.不同环境的程序实现基于Internet过程调用的规范和一系列的实现. 这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式. Xml-Rpc的定义尽可能的保持了简单,但同时能够传送.处理.返回复杂的数据结构. xml rpc使用http协议做为传输协议的rpc机制,使用xml文本的方式传输命令和数据. 一个rpc系统,必然包括2个部分: 1

74.JAVA编程思想——远程方法

74.JAVA编程思想--远程方法 为通过网络执行其他机器上的代码,传统的方法不仅难以学习和掌握,也极易出错.思考这个问题最佳的方式是:某些对象正好位于另一台机器,我们可向它们发送一条消息,并获得返回结果,就象那些对象位于自己的本地机器一样.Java 1.1 的"远程方法调用"(RMI)采用的正是这种抽象.将引导大家经历一些必要的步骤,创建自己的RMI 对象. 1     远程接口概念 RMI 对接口有着强烈的依赖.在需要创建一个远程对象的时候,我们通过传递一个接口来隐藏基层的实施细节

RMI远程方法调用

RMI远程方法调用:适用于 客户端 调用 服务器 内的方法:(Kotlin 语言编写) 如果业务为二个服务器之间的通信,还是得用消息队列的形式,因为RMI 不适合 双向 调用 下面介绍RMI 的使用方法: 1,服务器端代码: 定义接口(此接口放入服务端和客户端公用的模块 或者打成jar给服务器/客户端使用) 1 interface RmiService { 2 3 /** 4 * 订单发货 5 * @param saleItemId BTB订单项 itemId 6 * @param shipme

Java学习笔记之RMI远程方法调用

RMI 应用通常有两个分开的程序组成,一个服务端程序和一个客户端程序.一个典型的服务端程序创建一些远程对象,使得对这些远程对象的引用可以被访问,等待客户端调用这些远程对象提供的方法.一个典型的客户端程序获取远程引用,指向一个或者多个服务端上的远程对象,然后调用这些远程对象所提供的方法.通常我们称这为分布式对象应用程序. 3.1 RMI的工作方式 分布式对象应用程序需要做的事情: l 查找(定位)远程对象. 应用程序可以使用各种不同的机制取得远程对象的引用.比如应用程序可以通过 RMI 提供的简单

Java RMI远程方法调用

参考: 利用java-RMI进行大文件传输 RMI远程方法调用的简单方法和实例 RMI是类似RPC的一种远程方法调用协议,比RPC类型的WebService更简单,也可以跨进程访问 先来创建一个model或者javaBean,注意,该类必须实现序列化Serializable  public class Person implements Serializable {     private int id;     private String name;     private int age;

转载:RMI 远程方法调用

Java 分布式处理技术 1.1 RMI 的基本概念 1.1.1 什么是RMI RMI(Remote Method Invocation) 远程方法调用是一种计算机之间对象互相调用对方函数,启动对方进程的一种机制,使用这种机制,某一台计算机上的对象在调用另外一台计算机上的方法时,使用的程序语法规则和在本地机上对象间的方法调用的语法规则一样. 1.1.2 RMI 的用途 1. 分布式体系结构 我们为什么要使用分布式计算呢? ?         当我们想与多个用户或客户机共享一个中央资源(如一个数据

简谈 JavaScript、Java 中链式方法调用大致实现原理

相信,在 JavaScript .C# 中都见过不少链式方法调用,那么,其中实现该类链式调用原理,大家有没有仔细思考过?其中 JavaScript 类库:jQuery 中就存在大量例子,而在 C# 中,其中 lambda 表达式的大量使用以及扩展方法的新增,使链式调用也见的不少. 首先,就谈谈 JavaScript 中链式调用,其实,也是就是运用之前提及的 this . var Person=function(name,age){ this.Name=name; this.Age=age; };