C# 通过 Hessian服务调用java
2.新建一个c#窗体程序,然后在添加一个类库
3.添加一个接口类,接口中的方法名和参数与java中的服务方法名和参数保持一致
public partial interface HessianManager
{
/// <summary>
///
/// </summary>
/// <param name="method">方法名</param>
/// <param name="operate">操作(添加、删除、修改)</param>
/// <param name="json">json数据</param>
/// <returns></returns>
string synchronizeData(string method, string operate, string json); string sayHello(string msg);
}
4.引用Hessiancsharp.dll
5.通过hessian调用java
public partial class frmHessian : Form
{
string url = ConfigurationManager.AppSettings["url"].ToString(); CHessianProxyFactory factory = new CHessianProxyFactory();
HessianManager hessianClient = null; public frmHessian()
{
InitializeComponent();
hessianClient = (HessianManager)factory.Create(typeof(HessianManager), url);
} /// <summary>
/// 同步供应商
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSynSupplier_Click(object sender, EventArgs e)
{
List<Supplier> supplists = new List<Supplier>();
DataTable dt = DbHelperSQL.Query("SELECT * FROM dbo.Sys_Supplier WHERE ss_State=1").Tables[]; foreach (DataRow item in dt.Rows)
{
Supplier sup = new Supplier();
sup.bbbpSn = item["ss_SupplierNo"].ToString();
sup.bbbpId = item["ss_SupplierNo"].ToString();
sup.bbbpBbbrId = ;
sup.bbbpName = item["ss_SupplierName"].ToString();
sup.bbbpContact = item["ss_Contact"].ToString();
sup.bbbpContactTel = item["ss_Tel"].ToString();
sup.bbbpContactPhone = item["ss_Phone"].ToString();
sup.bbbpContactAddress = item["ss_Adress"].ToString();
sup.bbbpState = Convert.ToInt32(item["ss_State"]) == ? "有效" : "无效";
sup.bbbpLocationid = ; //item["sp_PurchaserNo"] == DBNull.Value ? 5001 : Convert.ToInt32(item["sp_PurchaserNo"]);
sup.bbbpYingfu = ;
sup.bbbpIds = ",1,";
sup.bbbpBank = item["ss_Bank"].ToString();
sup.bbbpBankNumber = item["ss_BankAccount"].ToString();
sup.bbbpGongyingjiezhiDate = string.Format("{0:yyyy-MM-dd HH:mm:ss}", item["ss_BusiLicexpireTime"]);
sup.bbbpFaxNumber = item["ss_Fax"].ToString();
supplists.Add(sup);
}
string msg = hessianClient.synchronizeData("synBusinessParter", "add", JsonHelper.SerializeObject(supplists)); Application.DoEvents();
MessageBox.Show("同步成功!");
}
}
参考:http://hessian.caucho.com/
https://sourceforge.net/projects/hessiancsharp/
http://www.cnblogs.com/lxsfg/archive/2008/08/27/1277777.html
C# 通过 Hessian服务调用java的更多相关文章
- java使用netty模拟实现一个类dubbo的分布式服务调用框架
本文较长,如果想直接看代码可以查看项目源码地址: https://github.com/hetutu5238/rpc-demo.git 要想实现分布式服务调用框架,我们需要了解分布式服务一般需要的功能 ...
- Android(java)学习笔记229:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)
1.接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2.利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.jav ...
- Android(java)学习笔记228:服务(service)之绑定服务调用服务里面的方法
1.绑定服务调用服务里面的方法,图解: 步骤: (1)在Activity代码里面绑定 bindService(),以bind的方式开启服务 : bindServ ...
- Java进阶(三十一) Web服务调用
Java进阶(三十一) Web服务调用 前言 有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下: https://www.evernote.com/shard/s744/sh/c37cd5 ...
- Android(java)学习笔记172:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)
1. 接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2. 利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.j ...
- Android(java)学习笔记171:服务(service)之绑定服务调用服务里面的方法
1.绑定服务调用服务里面的方法,图解: 步骤: (1)在Activity代码里面绑定 bindService(),以bind的方式开启服务 : bindServ ...
- 使用DWR实现JS调用服务端Java代码
DWR简介 DWR全称Direct Web Remoting,是一款非常优秀的远程过程调用(Remote Procedure Call)框架,通过浏览器提供的Ajax引擎实现在前端页面的JS代码中调用 ...
- Hessian服务端和客户端示例
一.服务端 1.创建web项目,建立客户端调用的hessian接口和实现类. 接口: package com.ymx.hessian.service; import com.ymx.hessian.s ...
- Thrift实现C#调用Java开发步骤详解
概述 Thrift实现C#调用Java开发步骤详解 详细 代码下载:http://www.demodashi.com/demo/10946.html Apache Thrift 是 Facebook ...
随机推荐
- [译]Javascipt中的Strings
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- c#委托与事件、消息、WndProc用法(转)
c#委托与事件 心得 c#用委托来实现事件通知机制.委托相当与c++函数指针.整个过程涉及一个呼叫者,一个被呼叫者,还有就是这个委托. - 实现步骤有以下几步: 1. 申明委托, 2.定义呼叫者和调用 ...
- code manager toos TotoiseSVN解锁
TotoiseSVN解锁 一.出现的原因: 1.是开发人员手动锁定了. 2.是由于版本错乱造成的锁定. 二.解决方案: 1.使用客户端解决方案: (1)删除本地副本,重新获取文件. (2)可以先尝试c ...
- 在RobotFramework--RIDE中把日期转化为整型进行运算
在RobotFramework--RIDE中把日期转化为整型进行运算 运行结果: 20180906 16:10:17.919 : INFO : ${time} = 2018-09-06 16:10:1 ...
- Django之文件下载
到目前为止,我们的注意力都在HTML网页上,但是实际上,在网站上除了HTML外还有图片,文件,PDF等等. 首先来看下返回一张图片为例,读取本地磁盘上的一张图片并返回到网页上显示. def test1 ...
- UIStepper更加详细的图文理解
前言 UIStepper是一个微调器,该控件的外观和UISwitch相似,但该控件上包含了+,-两个按钮,共同用于控制某个值的增.减. 它继承了UIControl基类,默认属于活动控件,它可以与用户交 ...
- java基础之流程控制语句
一. 分支 1. 三元运算符 ?: 注意:三元运算符虽然简洁但是语法乱,而且必须要有接受者或者直接打印 1. if else语句 另一种不带括号的写法: if(条件) 语句1 ...
- HashMap vs Hashtable
一.散列 1. HashMap 1) hashmap的数据结构 Hashmap是一个数组和链表的结合体(在数据结构称“链表散列“),如下图示: 当我们往hashmap中put元素的时候,先根据key ...
- TeamLeader管理方法
1. 规划 在加强质量的同时,提升团队业务理解能力推动产品经理深入度增加业务监控 2. 洗脑 现在离开去bat,前两年会学习,但可能无人带领待3-5年,做到B类从基金学习起,学习金融学习架构设计提升团 ...
- PHP 符号
注解符号: // 单行注解 /* */ 多行注解 引号的使用 ’ ’ 单引号,没有任何意义,不经任何处理直接拿过来; " "双引号,PHP动态处理然后输出,一般 ...