すのはら荘春原庄的雪

C# 调用 Java Webservice

Toretto·2020-05-22 15:52·340 次阅读

C# 调用 Java Webservice

因工作需要,跟JAVA发布的WS进行了对接。中途遇到许多问题,直到问题解决,才知道自己闹了多大的笑话。写个文章警醒自己。#


  1. 因查看WSDL发现返回值是一个类(引用类型) 将WSDL生成本地代理类
    1. WSDL文档解析
    2. 将WSDL生成代理类
  2. 添加代理类到本地项目
    1. 此处我这里的代理中接口名称如下:public WsResultData FounderRequestData( string in0, string in1, string in2, string in3) { object[] results = this.Invoke("FounderRequestData", new object[] { in0, in1, in2, in3}); return ((WsResultData)(results[0])); }
    2. 返回的WsReusultData的部分定义如下: public partial class WsResultData{ private string respondeDataField; private System.Nullable<int> resultField; private bool resultFieldSpecified; public string respondeData { get { return this.respondeDataField; } set { this.respondeDataField = value; } } public System.Nullable<int> result { get { return this.resultField; } set { this.resultField = value; } } public bool resultSpecified { get { return this.resultFieldSpecified; } set { this.resultFieldSpecified = value; } } }
  3. 因为返回的对象为引用类型,且回传中包含string 字符串也为引用类型。这个时候我们需要直接获取对象的值如:.FounderRequestData(null, null, null, outXml).respondeData。这也就是常说为何从JAVA WS中获取到NULL的原因引用类型与值类型的区别

最后也可通过WebRequeset/HttpRwquest 等方式来进行通信。因时间关系未作此验证#

posted @   すのはら荘の雪  阅读(340)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
目录
点击右上角即可分享
微信分享提示