打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#使用Hessian调用JAVA的函数
Hessian其实很像web service,只不过它的协议不是SOAP,而是它自己规定的binary协议。Hessian的server端提供一个servlet基类,client端获得一

个service接口(也就是stub)之后调用上面的方法,stub将方法调用marshal之后通过HTTP传到server,server借助reflection调用service方法。

在itbaby目录下写了两个类PlusAPI和PlusService

PlusAPI的CODE如下:
Java代码  
  1. package itbaby;  
  2. public interface PlusAPI  
  3. {  
  4.     public String Plus2Str(int A,int B);  
  5. }  


PlusService的CODE如下:
Java代码  
  1. package itbaby;  
  2. public class PlusService implements PlusAPI  
  3. {  
  4.     public String Plus2Str(int A,int B)  
  5.     {  
  6.         int iSum = A + B;  
  7.         String sSum = Integer.toString(iSum);  
  8.         return sSum;  
  9.     }  
  10. }  


在WEB-INF目录下建了个web.xml文件
Xml代码  
  1. <web-app xmlns="http://caucho.com/ns/resin">  
  2.     <servlet servlet-name="plus" servlet-class="com.caucho.hessian.server.HessianServlet">  
  3.         <init-param service-class="itbaby.PlusService"/>  
  4.         <init-param api-class="itbaby.PlusAPI"/>  
  5.     </servlet>  
  6.     <servlet-mapping url-pattern="/itbabywebsvc/plus" servlet-name="plus"/>  
  7. </web-app>  


Html代码  
  1. <%@ page import="com.caucho.hessian.client.HessianProxyFactory" %>  
  2. <%@ page import="itbaby.PlusAPI" %>  
  3. <%  
  4. HessianProxyFactory factory = new HessianProxyFactory();  
  5.   
  6. // http://localhost:8080/itbabywebsvc/plus  
  7. String url = ("http://" +  
  8.               request.getServerName() + ":" + request.getServerPort() +  
  9.               request.getContextPath() + "/itbabywebsvc/plus");  
  10.   
  11. PlusAPI plus = (PlusAPI) factory.create(PlusAPI.class, url);  
  12.   
  13.   
  14. out.println("100 + 50 =  " + plus.Plus2Str(100,50)+"<br>");  
  15. out.println("150 + 200 =  " + plus.Plus2Str(150,200)+"<br>");  
  16. %>  


运行结果输出:
100 + 50 = 150
150 + 200 = 350
表示两个类运行正常

开始写C#的客户端调用,启动VS.Net2003,新建一个Windows应用程序,当然你也可以使用ASP.NET,在默认的Form1上添加一个Button1的按钮.
然后添加一个引用HessianCSharp.DLL

添加一个类文件,命名为:PlusAPI.cs,CODE如下:
C#代码  
  1. using System;  
  2. namespace HsnTest  
  3. {  
  4.  public interface PlusAPI  
  5.  {  
  6.   string Plus2Str(int A,int B);  
  7.  }  
  8. }  


在Button1的Click中添加如下CODE:
C#代码  
  1. using hessiancsharp.client;  
  2. private void button1_Click(object sender, System.EventArgs e)  
  3. {  
  4.     CHessianProxyFactory factory = new CHessianProxyFactory();  
  5.     string url="http://localhost:8080/itbabywebsvc/plus";  
  6.     PlusAPI test = (PlusAPI)factory.Create(typeof(PlusAPI), url);  
  7.     string sValue = "5 + 10 =" + test.Plus2Str(5,10);  
  8.     MessageBox.Show(sValue );  
  9.   

(###)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
spring和hessian整合
Hessian
Java面试题集
用spirng和hessian构建分布式应用(远程接口)的方法[原] - Spring -...
Spring HTTP Invoker使用介绍
Java学习之Hessian通信基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服