1.下载Hessiancsharp.dll

2.新建一个c#窗体程序,然后在添加一个类库

3.添加一个接口类,接口中的方法名和参数与java中的服务方法名和参数保持一致

  1. public partial interface HessianManager
  2. {
  3. /// <summary>
  4. ///
  5. /// </summary>
  6. /// <param name="method">方法名</param>
  7. /// <param name="operate">操作(添加、删除、修改)</param>
  8. /// <param name="json">json数据</param>
  9. /// <returns></returns>
  10. string synchronizeData(string method, string operate, string json);
  11.  
  12. string sayHello(string msg);
  13. }

4.引用Hessiancsharp.dll

5.通过hessian调用java

  1. public partial class frmHessian : Form
  2. {
  3. string url = ConfigurationManager.AppSettings["url"].ToString();
  4.  
  5. CHessianProxyFactory factory = new CHessianProxyFactory();
  6. HessianManager hessianClient = null;
  7.  
  8. public frmHessian()
  9. {
  10. InitializeComponent();
  11. hessianClient = (HessianManager)factory.Create(typeof(HessianManager), url);
  12. }
  13.  
  14. /// <summary>
  15. /// 同步供应商
  16. /// </summary>
  17. /// <param name="sender"></param>
  18. /// <param name="e"></param>
  19. private void btnSynSupplier_Click(object sender, EventArgs e)
  20. {
  21. List<Supplier> supplists = new List<Supplier>();
  22. DataTable dt = DbHelperSQL.Query("SELECT * FROM dbo.Sys_Supplier WHERE ss_State=1").Tables[];
  23.  
  24. foreach (DataRow item in dt.Rows)
  25. {
  26. Supplier sup = new Supplier();
  27. sup.bbbpSn = item["ss_SupplierNo"].ToString();
  28. sup.bbbpId = item["ss_SupplierNo"].ToString();
  29. sup.bbbpBbbrId = ;
  30. sup.bbbpName = item["ss_SupplierName"].ToString();
  31. sup.bbbpContact = item["ss_Contact"].ToString();
  32. sup.bbbpContactTel = item["ss_Tel"].ToString();
  33. sup.bbbpContactPhone = item["ss_Phone"].ToString();
  34. sup.bbbpContactAddress = item["ss_Adress"].ToString();
  35. sup.bbbpState = Convert.ToInt32(item["ss_State"]) == ? "有效" : "无效";
  36. sup.bbbpLocationid = ; //item["sp_PurchaserNo"] == DBNull.Value ? 5001 : Convert.ToInt32(item["sp_PurchaserNo"]);
  37. sup.bbbpYingfu = ;
  38. sup.bbbpIds = ",1,";
  39. sup.bbbpBank = item["ss_Bank"].ToString();
  40. sup.bbbpBankNumber = item["ss_BankAccount"].ToString();
  41. sup.bbbpGongyingjiezhiDate = string.Format("{0:yyyy-MM-dd HH:mm:ss}", item["ss_BusiLicexpireTime"]);
  42. sup.bbbpFaxNumber = item["ss_Fax"].ToString();
  43. supplists.Add(sup);
  44. }
  45. string msg = hessianClient.synchronizeData("synBusinessParter", "add", JsonHelper.SerializeObject(supplists));
  46.  
  47. Application.DoEvents();
  48. MessageBox.Show("同步成功!");
  49. }
  50. }

参考:http://hessian.caucho.com/

https://sourceforge.net/projects/hessiancsharp/

http://www.cnblogs.com/lxsfg/archive/2008/08/27/1277777.html

C# 通过 Hessian服务调用java的更多相关文章

  1. java使用netty模拟实现一个类dubbo的分布式服务调用框架

    本文较长,如果想直接看代码可以查看项目源码地址: https://github.com/hetutu5238/rpc-demo.git 要想实现分布式服务调用框架,我们需要了解分布式服务一般需要的功能 ...

  2. Android(java)学习笔记229:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)

    1.接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2.利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.jav ...

  3. Android(java)学习笔记228:服务(service)之绑定服务调用服务里面的方法

    1.绑定服务调用服务里面的方法,图解: 步骤: (1)在Activity代码里面绑定 bindService(),以bind的方式开启服务 :                     bindServ ...

  4. Java进阶(三十一) Web服务调用

    Java进阶(三十一) Web服务调用 前言 有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下: https://www.evernote.com/shard/s744/sh/c37cd5 ...

  5. Android(java)学习笔记172:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)

    1. 接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2. 利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.j ...

  6. Android(java)学习笔记171:服务(service)之绑定服务调用服务里面的方法

    1.绑定服务调用服务里面的方法,图解: 步骤: (1)在Activity代码里面绑定 bindService(),以bind的方式开启服务 :                     bindServ ...

  7. 使用DWR实现JS调用服务端Java代码

    DWR简介 DWR全称Direct Web Remoting,是一款非常优秀的远程过程调用(Remote Procedure Call)框架,通过浏览器提供的Ajax引擎实现在前端页面的JS代码中调用 ...

  8. Hessian服务端和客户端示例

    一.服务端 1.创建web项目,建立客户端调用的hessian接口和实现类. 接口: package com.ymx.hessian.service; import com.ymx.hessian.s ...

  9. Thrift实现C#调用Java开发步骤详解

    概述 Thrift实现C#调用Java开发步骤详解 详细 代码下载:http://www.demodashi.com/demo/10946.html Apache Thrift 是 Facebook ...

随机推荐

  1. 51NOD 1371填数字

    传送门 分析 此题关键在于想出dp[i][j][k]代表考虑到第i行,还能放1的的共有j列,还能放2的共有k行.之后就枚举每一行是没有还是1个1还是2个1还是1个2,然后转移即可. 代码 #inclu ...

  2. SPOJ LCMSUM - LCM Sum

    题意是求: $\sum_{i = 1}^{n}lcm(i, n)$ $= \sum_{i = 1}^{n}\frac{ni}{gcd(i, n)}$ $= n\sum_{i = 1}^{n}\frac ...

  3. vim尝试

    http://3502990.blog.51cto.com/3492990/985750

  4. 关于eclipse导入maven项目

    1:删除其他的配置文件,只需要源码 和 pom文件 2:导入项目,再修改几个地方: 2.1: 所选项目右键- properties - Project Facet,勾上 Dynamic Web Mod ...

  5. 原子变量与CAS算法小结

    CAS算法 CAS(compare-and-swap)是一种硬件对并发的支持,针对多处理器操作而设计的处理器中的一种特殊指令,用于管理对共享数据的并发访问. CAS是一种无锁非阻塞算法的实现. CAS ...

  6. JAVA进阶----ThreadPoolExecutor机制(转)

    http://825635381.iteye.com/blog/2184680 ThreadPoolExecutor机制 一.概述 1.ThreadPoolExecutor作为java.util.co ...

  7. Python脚本开发练习

    打印乘法口诀表 #!/usr/bin/python #coding=utf-8 print("Hello,World....") print("你好,欢迎来到Python ...

  8. 2019.2.14 考试T1 FFT

    \(\color{#0066ff}{ 题目描述 }\) 衡水二中的机房里经常有人莫名其妙地犇雷,leizi很生气,决定要找出那个犇雷的人 机房有n个人,每个人都认为机房里有两个人可能会犇雷,其中第i个 ...

  9. CF877E Danil and a Part-time Job 线段树维护dfs序

    \(\color{#0066ff}{题目描述}\) 有一棵 n 个点的树,根结点为 1 号点,每个点的权值都是 1 或 0 共有 m 次操作,操作分为两种 get 询问一个点 x 的子树里有多少个 1 ...

  10. EOS 修改文件名称与文件夹名称

    最近有一个需求,需要修改EOS名称,将所有文件里面的EOS改为UOS,文件夹名称也需要修改,然后重新构建项目,于是写了一个小程序进行修改.如果有相同项目类似的修改,可以在下面这个程序稍做修改就可以了. ...