Hessian其实很像web service,只不过它的协议不是SOAP,而是它自己规定的binary协议。Hessian的server端提供一个servlet基类,client端获得一
个service接口(也就是stub)之后调用上面的方法,stub将方法调用marshal之后通过HTTP传到server,server借助reflection调用service方法。
在itbaby目录下写了两个类PlusAPI和PlusService
PlusAPI的CODE如下:
package itbaby;
public interface PlusAPI
{
public String Plus2Str(int A,int B);
}
PlusService的CODE如下:
package itbaby;
public class PlusService implements PlusAPI
{
public String Plus2Str(int A,int B)
{
int iSum = A + B;
String sSum = Integer.toString(iSum);
return sSum;
}
}
在WEB-INF目录下建了个web.xml文件
<web-app xmlns="http://caucho.com/ns/resin">
<servlet servlet-name="plus" servlet-class="com.caucho.hessian.server.HessianServlet">
<init-param service-class="itbaby.PlusService"/>
<init-param api-class="itbaby.PlusAPI"/>
</servlet>
<servlet-mapping url-pattern="/itbabywebsvc/plus" servlet-name="plus"/>
</web-app>
<%@ page import="com.caucho.hessian.client.HessianProxyFactory" %>
<%@ page import="itbaby.PlusAPI" %>
<%
HessianProxyFactory factory = new HessianProxyFactory();
// http://localhost:8080/itbabywebsvc/plus
String url = ("http://" +
request.getServerName() + ":" + request.getServerPort() +
request.getContextPath() + "/itbabywebsvc/plus");
PlusAPI plus = (PlusAPI) factory.create(PlusAPI.class, url);
out.println("100 + 50 = " + plus.Plus2Str(100,50)+"<br>");
out.println("150 + 200 = " + plus.Plus2Str(150,200)+"<br>");
%>
运行结果输出:
100 + 50 = 150
150 + 200 = 350
表示两个类运行正常
开始写C#的客户端调用,启动VS.Net2003,新建一个Windows应用程序,当然你也可以使用ASP.NET,在默认的Form1上添加一个Button1的按钮.
然后添加一个引用HessianCSharp.DLL
添加一个类文件,命名为:PlusAPI.cs,CODE如下:
using System;
namespace HsnTest
{
public interface PlusAPI
{
string Plus2Str(int A,int B);
}
}
在Button1的Click中添加如下CODE:
using hessiancsharp.client;
private void button1_Click(object sender, System.EventArgs e)
{
CHessianProxyFactory factory = new CHessianProxyFactory();
string url="http://localhost:8080/itbabywebsvc/plus";
PlusAPI test = (PlusAPI)factory.Create(typeof(PlusAPI), url);
string sValue = "5 + 10 =" + test.Plus2Str(5,10);
MessageBox.Show(sValue );
}
分享到:
相关推荐
在.NET开发环境中,C#是一种常用的编程语言,而Hessian是一种二进制的远程方法调用(Remote Method ...通过理解Hessian协议的原理和使用方式,以及如何在C#中集成和配置,你可以创建出性能优异的远程调用解决方案。
一个简单的例子学习hessian服务:服务端为Java,客户端为C#。 先要准备好C#和Java的第三方类库:http://hessian.caucho.com/ Hssiancharp.dll hessian-4.0.37.jar Hessian服务端(java) 打开eclipse...
描述中提到的“.Net使用Hessian调用JAVA的函数”,意味着这个压缩包可能包含了C#代码,这些代码实现了通过Hessian协议调用Java服务端的方法。这通常涉及到序列化和反序列化对象,以及处理跨语言的接口调用。 在标签...
在IT行业中,跨平台通信是常见的需求,而Hessian作为一种二进制协议,因其轻量级、高效的特点,被广泛用于Java和C#等不同语言之间的远程调用(RPC)和数据交换。本文将深入探讨Hessian在Java服务端与C#客户端之间的...
Java Hessian远程调用是一种高效的、轻量级的RPC(Remote Procedure Call)解决方案,它允许Java应用程序通过网络进行跨语言的通信。Hessian是BEA Systems开发的一种二进制Web服务协议,它提供了序列化和远程方法...
- 在C#端,我们需要一个Hessian客户端库,例如`Hessian.NET`,它实现了Hessian协议,使得C#可以调用Java服务。 - 创建一个代理类,该类与Java服务端的接口相对应,以便在C#代码中调用这些方法。 - 使用Hessian...
- Java客户端会通过Hessian库与服务器端建立连接,调用服务端暴露的方法。 - 客户端代码需要知道服务器的URL以及要调用的服务接口。Hessian库会自动处理序列化和反序列化,使得客户端可以像调用本地方法一样调用...
Flex-Hessian-Java实例是一个关于使用Flex客户端与Java服务器之间进行高效远程调用的实践案例。这个压缩包包含了实现这一技术所需的关键组件和文件。Flex是Adobe开发的一种开放源码的富互联网应用(RIA)开发框架,...
标题中的“用Hessian C#桌面程序调用J2EE后台服务”涉及到的是跨平台通信技术,特别是使用Hessian协议来实现C#客户端与Java(J2EE)服务器之间的交互。Hessian是一种二进制的远程过程调用(RPC)协议,由BEA Systems...
本文将详细介绍如何在Android客户端中使用Hessian与Java服务端进行通讯。 **一、Hessian概述** Hessian是由Caucho公司开发的一种基于HTTP的二进制RPC协议。它的主要优点包括: 1. **压缩传输**: Hessian采用二进制...
本资源中包含Hessian协议的C#版源代码,由于.NET版本不同可能会引发不兼容问题,使用Hessian协议时最好根据实际情况用相应的.NETFramework编译生成.DLL文件后再引入到项目中使用。编译的方法,例如:使用Visual...
通过这个小例,你可以学习到如何在Java Web环境中设置和使用Hessian服务,包括服务的创建、发布以及客户端的调用。这将帮助你在实际项目中实现高效的跨网络通信,尤其是在对性能有较高要求的情况下。同时,理解...
3. 使用Hessian工具发布服务:通过HessianServlet或者HessianProxyFactory将服务绑定到一个URL,使服务可以被远程调用。 HessianClient文件则是客户端的实现,负责调用服务端的方法。客户端需要知道服务的URL以及...
Hessian是Apache项目下的一个轻量级的RPC(Remote Procedure Call,远程过程调用)框架,它提供了一种高效的二进制协议,用于在网络之间传递Java对象。下面我们将详细介绍Hessian的实现原理以及如何在实际开发中运用...
基于java实现hessian进行服务器之间数据交互demo项目 实现功能: 1.基于spring 2.5.6+hessian3.1.6带有签名安全机制 2.基于servlet代理机制实现HessianServlet,进行简单IP地址校验功能!
Java的Hessian库通常集成在如Resin这样的应用服务器中,例如提供的链接所示的Resin 3.1和4.0版本的文档和API参考,可以帮助开发者深入理解如何在Java和Python之间建立和使用Hessian接口。通过这些接口,开发者可以...
4. **客户端调用**:客户端可以选择与Spring集成,通过Spring的`ApplicationContext`获取代理对象,或者直接使用Hessian工具生成代理。 **安全机制** Hessian提供了基于X.509证书的加密和签名机制,这包括`X509...