C# 通过 Hessian服务调用java

1.下载Hessiancsharp.dll

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[0];

            foreach (DataRow item in dt.Rows)
            {
                Supplier sup = new Supplier();
                sup.bbbpSn = item["ss_SupplierNo"].ToString();
                sup.bbbpId = item["ss_SupplierNo"].ToString();
                sup.bbbpBbbrId = 1;
                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"]) == 1 ? "有效" : "无效";
                sup.bbbpLocationid = 5001; //item["sp_PurchaserNo"] == DBNull.Value ? 5001 : Convert.ToInt32(item["sp_PurchaserNo"]);
                sup.bbbpYingfu = 0;
                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

时间: 2024-11-07 02:45:23

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

hessian 通信,C#客户端调用java服务端服务

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单.快捷.采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据(来自百度) 本次通过hessian简单实现C#调用java服务,并返回java方法的结果,其中C#以及java方法的参数可以是Entity. 1. 依赖 java包及DLL   1.1 hessian-4.0.37.jar   1.2 Hessiancsharp.d

delphi调用 java 的 WebService服务端.

// InvRegistry.RegisterInvokeOptions(TypeInfo(ModelADServicePortType), ioLiteral); InvRegistry.RegisterInvokeOptions(TypeInfo(ModelADServicePortType), ioDocument); delphi调用 java 的 WebService服务端.,布布扣,bubuko.com

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

Java进阶(三十一) Web服务调用 前言 有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下: https://www.evernote.com/shard/s744/sh/c37cd503-68fc-4406-b8f2-5e90095be303/19b67e36aa2ccd19 查看代码之后,按照以往的服务调用方法实现,结果无法实现.很是费解,求教大师兄之后,问题,迎刃而解,只能说自己需要学习的地方还有很多. 完整代码如下: package plan.http.util; imp

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

1.绑定服务调用服务里面的方法,图解: 步骤: (1)在Activity代码里面绑定 bindService(),以bind的方式开启服务 :                     bindService(intent, new MyConn(), BIND_AUTO_CREATE): 参数intent:意图对象,服务对应的意图对象  new  Intent(this,Service.class) 参数ServiceConnection (接口,自定义其接口实现内部类MyConn() ):通讯

发布Hessian服务作为服务内部基础服务

摘要:Hessian经常作为服务内部RPC工具来使用,速度快效率高.重构代码的核心思想就是把共用的代码段提出来,使代码结构优化:架构设计类似,把基本的共用的服务提出来,使架构优化.下面讲述一下我在具体应用中使用Spring3.2.4在Tomcat7.0.47下发布Hessian4.0.37服务的过程. 关键词:Spring, Hessian, JAVA, 架构设计, Hibernate, Tomcat Hessian经常作为服务内部RPC远程过程调用工具来使用,速度快效率高,我们的项目也不例外的

Spring Cloud ZooKeeper集成Feign的坑2,服务调用了一次后第二次调用就变成了500,错误:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.n

错误如下: 2017-09-19 15:05:24.659 INFO 9986 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.spring[email protected]56528192: startup date [Tue Sep 19 15:05:24 CST 2017]; root of context hierarchy 2017-09-19 15:05:24.858 INFO 9986 --

Freemarker商品详情页静态化服务调用处理

--------------------------------------------------------------------------------------------- [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/53151462 作者:朱培      ID:sdksdk0 ----------------------------------------------------

绑定服务调用远程服务中的方法

在Andorid平台中,各个组件运行在自己的进程中,他们之间是不能相互访问的,但是在程序之间是不可避免的要传递一些对象,在进程之间相互通信.为了实现进程之间的相互通信,Andorid采用了一种轻量级的实现方式RPC(Remote Procedure Call 远程进程调用)来完成进程之间的通信,并且Android通过接口定义语言(Andorid Interface Definition Language ,AIDL)来生成两个进程之间相互访问的代码,例如,你在Activity里的代码需要访问Se

Oracle触发器如何调用Java实现Openfire消息发送

写在前面,要想实现整个过程的成功执行请先准备以下文件: 1. 登陆Openfire服务端以及Spark客户端相关程序(openfire_4_0_1.exe.spark_2_7_6.exe) 2. 连接Openfire和Oracle相关的jar包(presence.jar.smack.jar.smackx-debug.jar.smackx.jar.ojdbc.jar)  Step1:安装Openfire服务端并配置数据库连接,配置参考<Openfire服务器安装与配置教程> Step2:在Ecl