`
duanfei
  • 浏览: 733714 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

C#使用Hessian调用JAVA的函数

    博客分类:
  • J2EE
阅读更多
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 );

}
分享到:
评论

相关推荐

    C#中Hessian的使用例子

    在.NET开发环境中,C#是一种常用的编程语言,而Hessian是一种二进制的远程方法调用(Remote Method ...通过理解Hessian协议的原理和使用方式,以及如何在C#中集成和配置,你可以创建出性能优异的远程调用解决方案。

    Java和c#使用hessian通信

    一个简单的例子学习hessian服务:服务端为Java,客户端为C#。  先要准备好C#和Java的第三方类库:http://hessian.caucho.com/  Hssiancharp.dll  hessian-4.0.37.jar  Hessian服务端(java)  打开eclipse...

    HessianCSharp_Test.rar_Hessian java

    描述中提到的“.Net使用Hessian调用JAVA的函数”,意味着这个压缩包可能包含了C#代码,这些代码实现了通过Hessian协议调用Java服务端的方法。这通常涉及到序列化和反序列化对象,以及处理跨语言的接口调用。 在标签...

    hessian java +c# 数据测试

    在IT行业中,跨平台通信是常见的需求,而Hessian作为一种二进制协议,因其轻量级、高效的特点,被广泛用于Java和C#等不同语言之间的远程调用(RPC)和数据交换。本文将深入探讨Hessian在Java服务端与C#客户端之间的...

    java+hessian 远程调用

    Java Hessian远程调用是一种高效的、轻量级的RPC(Remote Procedure Call)解决方案,它允许Java应用程序通过网络进行跨语言的通信。Hessian是BEA Systems开发的一种二进制Web服务协议,它提供了序列化和远程方法...

    C#调用JAVA案例

    - 在C#端,我们需要一个Hessian客户端库,例如`Hessian.NET`,它实现了Hessian协议,使得C#可以调用Java服务。 - 创建一个代理类,该类与Java服务端的接口相对应,以便在C#代码中调用这些方法。 - 使用Hessian...

    hessian php与java通讯demo源码

    - Java客户端会通过Hessian库与服务器端建立连接,调用服务端暴露的方法。 - 客户端代码需要知道服务器的URL以及要调用的服务接口。Hessian库会自动处理序列化和反序列化,使得客户端可以像调用本地方法一样调用...

    flex-hessian-java实例.rar

    Flex-Hessian-Java实例是一个关于使用Flex客户端与Java服务器之间进行高效远程调用的实践案例。这个压缩包包含了实现这一技术所需的关键组件和文件。Flex是Adobe开发的一种开放源码的富互联网应用(RIA)开发框架,...

    用hessian c#桌面程序调用J2EE后台服务

    标题中的“用Hessian C#桌面程序调用J2EE后台服务”涉及到的是跨平台通信技术,特别是使用Hessian协议来实现C#客户端与Java(J2EE)服务器之间的交互。Hessian是一种二进制的远程过程调用(RPC)协议,由BEA Systems...

    【Android】使用Hessian与Java服务端通讯

    本文将详细介绍如何在Android客户端中使用Hessian与Java服务端进行通讯。 **一、Hessian概述** Hessian是由Caucho公司开发的一种基于HTTP的二进制RPC协议。它的主要优点包括: 1. **压缩传输**: Hessian采用二进制...

    Hessian协议的C#源代码

    本资源中包含Hessian协议的C#版源代码,由于.NET版本不同可能会引发不兼容问题,使用Hessian协议时最好根据实际情况用相应的.NETFramework编译生成.DLL文件后再引入到项目中使用。编译的方法,例如:使用Visual...

    hessian小例(java)

    通过这个小例,你可以学习到如何在Java Web环境中设置和使用Hessian服务,包括服务的创建、发布以及客户端的调用。这将帮助你在实际项目中实现高效的跨网络通信,尤其是在对性能有较高要求的情况下。同时,理解...

    Hessian调用

    3. 使用Hessian工具发布服务:通过HessianServlet或者HessianProxyFactory将服务绑定到一个URL,使服务可以被远程调用。 HessianClient文件则是客户端的实现,负责调用服务端的方法。客户端需要知道服务的URL以及...

    hessian实现远程调用

    Hessian是Apache项目下的一个轻量级的RPC(Remote Procedure Call,远程过程调用)框架,它提供了一种高效的二进制协议,用于在网络之间传递Java对象。下面我们将详细介绍Hessian的实现原理以及如何在实际开发中运用...

    基于java的Hessian实现

    基于java实现hessian进行服务器之间数据交互demo项目 实现功能: 1.基于spring 2.5.6+hessian3.1.6带有签名安全机制 2.基于servlet代理机制实现HessianServlet,进行简单IP地址校验功能!

    Hessian 接口 Java Python.docx

    Java的Hessian库通常集成在如Resin这样的应用服务器中,例如提供的链接所示的Resin 3.1和4.0版本的文档和API参考,可以帮助开发者深入理解如何在Java和Python之间建立和使用Hessian接口。通过这些接口,开发者可以...

    Hessian 使用小结

    4. **客户端调用**:客户端可以选择与Spring集成,通过Spring的`ApplicationContext`获取代理对象,或者直接使用Hessian工具生成代理。 **安全机制** Hessian提供了基于X.509证书的加密和签名机制,这包括`X509...

Global site tag (gtag.js) - Google Analytics