c++/cli调用Java开发的WebService的问题。

VS2015下C++ WebService开发:ASP.NET API与原生cpprestsdk实战 WebService作为一种实现跨平台、跨语言服务调用的关键技术,其核心原理是基于标准协议(如HTTP、SOAP/REST)进行数据封装与传输。在异构系统集成与微服务架构中,它通过定义清晰的接口契约,实现了不同技术栈应用间的松耦合通信,具有极高的技术价值。对于C++这类高性能系统级语言,将其核心计算能力暴露为WebService,能有效融合其执行效率与现代分布式架构的优势,广泛应用于金融计算、游戏服务器、工业控制及高性能计算云服务等场景。本文以Visual Studio 2015为开发环境,深入探讨了利用C 阅读详情

用c++/cli调用java编写的webservice的方法,出现无法正确调用的问题。代码片段如下

WS_Score::ScoreWebService ^pScore=gcnew WS_Score::ScoreWebService();

pScore->Timeout = iWSTimeout * 1000;

WS_Score::VipTransaction^ vVipTransaction=gcnew WS_Score::VipTransaction();

vVipTransaction->VipNo = 428336;  //会员编号类型为int

vVipTransaction->score = 1.5;  //分数值为1.5

vVipTransaction->systrace = "000001";//流水号

vVipTransaction->mid = "400006023963";//终端号

System::String^ ScoreWSRrn; //返回值

ScoreWSRrn = pScore->transactionDoPOS("7", "123456",vVipTransaction);

 

 

 

而从服务器端来看发现传输参数VipTransaction->vipNo取不到,然后服务器端就直接返回了。而是用c#语言调用时成功的。如以下代码:

 

ScoreServiceReference.ScoreWebServicePortTypeClient scoreClient = new ScoreServiceReference.ScoreWebServicePortTypeClient();

ScoreServiceReference.VipTransaction vipTransaction = new ScoreServiceReference.VipTransaction();

vipTransaction.vipNo=428336;

vipTransaction.transactionScore=1.5;

vipTransaction.mid="400006023963";

vipTransaction.systrace = "000001";

string reslut = scoreClient.transactionDo("7", "123456", vipTransaction);

 

从上面情况初步断定是由于语言而引起的问题。想到webservice端却get不到会员编号,而直接返回了错误编码,在一时无法找到问题根源的情况下,使用了抓包工具去抓我们发出的数据,

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><transactionDo xmlns="http://ws.biztool.fulan.com">
<in0>7</in0>
<in1>pos_cupclub</in1>
<in2>
<vendorName xsi:nil="true" xmlns="http://beans.vip.biztool.fulan.com" />
<transactionTypeName xsi:nil="true" xmlns="http://beans.vip.biztool.fulan.com" />
<tid xmlns="http://beans.vip.biztool.fulan.com">23963001</tid>
<systrace xmlns="http://beans.vip.biztool.fulan.com">000001</systrace>
<score xsi:nil="true" xmlns="http://beans.vip.biztool.fulan.com" /><rrn xsi:nil="true" xmlns="http://beans.vip.biztool.fulan.com" /><orgSystrace xsi:nil="true" xmlns="http://beans.vip.biztool.fulan.com" /><orgCode xsi:nil="true" xmlns="http://beans.vip.biztool.fulan.com" />
<mid xmlns="http://beans.vip.biztool.fulan.com">400006023963</mid>

通过工具的结果我们看到int’类型的会员编号根本就没有发出去,字符类型的流水号和终端号却发出去了。

 

 

鉴于这个原因,这时我们把webservice端的接收参数都变成了字符类型,这样服务器端就可以正常接收到所有参数了。

 

 

Firebase Studio 战略解剖:MCP、NixOS 与 Gemini 驱动的 AI 原生开发范式 AI 原生开发正从‘模型调用’迈向‘智能体协同’新阶段。其核心在于构建可编程、可验证、可协作的确定性环境——NixOS 实现环境即代码的数学一致性,MCP 协议定义大模型与工具间的标准化通信契约,Gemini 则作为调度中枢执行意图驱动的闭环任务。这一技术组合已超越 Firebase Studio 本身,成为 Cloud Workstations、Google AI Studio 及 VS Code 插件生态的底层范式。开发者无需再纠结 IDE 形态,而应掌握如何通过声明式配置(flake.nix)定义环境 阅读详情

相关推荐

java和c+的webservice互调用

1、http://blog.youkuaiyun.com/a9529lty/article/details/8504324 java客户端调用C++ GSoap生成的webservice package com.test.webservice.client; import java.rmi.RemoteException; import javax.xml.namespace.QName; imp

阳光梦的专栏 6742

webservice java c++_C++与Java通过WebService通信(上)

一、 前言 本篇讲述如果通过C++客户端访问Java服务端发布的SOAP模式的WebService接口。文档中的样例代码拷贝出去即可运行,所有的代码都是本地测试OK的;不但解一、 前言本篇讲述如果通过C++客户端访问Java服务端发布的SOAP模式的WebService接口。文档中的样例代码拷贝出去即可运行,所有的代码都是本地测试OK的;不但解决了接口调用的问题,同时解决了中文乱码的问题。可以说,...

weixin_29327525的博客 550

C++ 调用javaWebService接口代码

C++ 调用Java webservice接口的函数,内有个使用说明文档,很详细的

C++调用java发布的webservice

java发布webservice(略) 1. Java 定义好WebService接口,生成WSDL标准接口文件。VS2008调用: 1. 新建—-项目—-VC++—–WIN32控制台 2. 项目–右键–属性 公共语言运行支持:选择clr 3.项目–右键–添加web引用 输入url:………wsdl—前往 找到web服务后添加引用,生成一个头文件(就看这个调用了),和其他文件

uriel_chiang的博客 1717

c++ 调用java写的webservice接口

vc++调用java写的webservice 文档中有详细说明及图片截图

一个利用C++CLI实现Web Services 的方法调用程序例子

一个利用C++CLI实现Web Services 的方法调用程序例子。

C webservice Java_C++与Java通过WebService通信(下)

一、 前言本篇讲述如何通过Java客户端访问C++服务端发布的SOAP模式的WebService接口。文档中的样例代码拷贝出去即可运行,所有的代码都是本地测试OK的;本文不但解决了接口调用的问题,同时解决了中文乱码的问题。二、 环境准备1、 CXF组件:Java端用于发布WebService服务的开源组件,内部自带jetty Web容器。2、 Gsoap组件:C++端用户访问WebServic...

weixin_31533759的博客 237

从零构建NVENC编码器:一个游戏开发者的实战手册

本文详细介绍了如何从零构建NVENC编码器,特别针对游戏开发者提供实战指南。内容涵盖NVENC基础概念、DirectX纹理捕获、异步编码优化及高级特性配置,帮助开发者高效集成硬件编码技术到游戏引擎中,实现高性能游戏录制和直播功能。重点解析了NVIDIA专用编码芯片的优势与API使用技巧。

weixin_29292431的博客 365

C++调用Java web service帮助文档

http://blog.youkuaiyun.com/lgp828368/archive/2008/04/03/2246546.aspx (好像发不了图片,如果想看图片,请到我的资源上下载) 一、简介在做java项目的时候,有时候我们需要提供一些方法给外部调用,调用者可以处在网络上的任何位置,只要通过特定的设置就可以调用java提供的方法。在java中,我们可以通过把这些方法做成web service

杨德龙的专栏 4448

python 成语接龙-连接数据库

from xpinyin import Pinyin import pymysql while 1: conn = pymysql.connect( host='localhost', #本地连接 user='root', #数据库账户名 password='password', #数据库密码 db='dic',

Hero2902的博客 598

ubuntu安装英伟达显卡驱动后wifi消失解决方法

ubuntu安装英伟达显卡驱动后(比如4090和3090等),会把wifi和蓝牙驱动去除,导致wifi无法连接。需要重新下载驱动安装。

人工智能(AI)技术,大模型技术,深度学习,机器学习,计算机视觉,AI工具实践应用等分享 3903

jsp使用axis2/jboss/tomcat调用webservices方法

运行环境 JDK: 1.6 JBOSS: 5.0 ANT:1.8.2 AXIS2:1.6.0 Tomcat 6.0 D:\tvie\lab\java\transcoder\WebContent>echo %PATH% C:\Windows;c:\jboss5\client;C:\tools\java\apache-ant-1.8.2\bin;C:\tools\java\axis2-1.6.0\

OSSRS 2919

深度学习环境搭建:CUDA、Anaconda、PyTorch 完整安装与验证教程

步骤操作验证命令1安装 CUDA 工具包nvcc -V2安装 Anaconda3创建 yolo 环境4安装 PyTorch5验证 GPU。

qq_37606844的博客 321

【更新】LEADTOOLS v20最新版发布(一)

在数码图象开发工具领域中的全球领导者——LEADTOOLS v20已正式发布,本站将以连载的形式为大家介绍新版本新增内容。本文主要介绍了LEADTOOLS v20新的发展平台。 LEAD Technologies已经正式推出LEADTOOLS v20。这个新的版本将LEAD的成像技术扩展到新...

chongji1953的博客 679

无耳科技 Solon v3.0.8 发布,Java 企业级应用开发框架

Solon 是新一代,Java 企业级应用开发框架。是杭州无耳科技有限公司的“根级”开源项目(最近“杭州六小龙”很火啊,我们也是杭州的哦)。从零开始构建(No Spring、No Java-EE、No Servlet),有灵活的接口规范与开放生态。采用对商用友好的 Apache 2.0 开源协议。

向往自由的少年!(我是一个少年!!!) 1698

AI驱动的网络安全运维:智能化时代的安全保障

本项目旨在使用Python和AI技术构建一个智能化的网络安全运维系统,能够实时监测网络流量,检测潜在的安全威胁,并自动采取应对措施,从而提升网络安全管理的效率和准确性。具体内容包括:环境配置与依赖安装数据采集与预处理机器学习模型构建与训练实时威胁检测与响应实际应用案例通过本文的介绍,我们展示了如何使用Python和AI技术构建一个智能化的网络安全运维系统。

Echo_Wish 1290

xberg C FFI 实战:用 extract 接口提取 XLSX 电子表格内容

xberg 以 Rust 为核心实现了多语言文档智能,并通过 [crates/xberg-ffi](https://link.gitcode.com/i/c30329d95850a5f200ec7a542e32b240) 暴露稳定的 C ABI,让 C/C++ 程序可以直接调用文档提取管线。本文以仓库中 C 语言绑定生成的 XLSX 提取示例([docs-site/src/snippets-gen

gitblog_00224的博客 790

【四足机器人项目实战】四足机器人支撑腿反作用力规划之VMC解耦控制方法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、基于模型的工作空间控制框图二、原理三、缺点 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对未简化的动力学模型规划反作用力+运动学模型雅可比+虚功原理规划关节扭矩方法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、基于模型的工作空间控制框图 . . 二、原理 基于机器人的动力学模

qq_35635374的博客 6597

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

Visual Studio Code ADT Extension 能不能连接 ECC,答案是可以,但真正的门槛在 ABAP 后端版本

Visual Studio Code 版 ABAP Development Tools(ADT)支持连接传统 SAP ECC 系统,关键不在于系统名称,而在于底层 SAP NetWeaver AS ABAP 版本是否达到最低要求(7.31 SP04 及以上)。只要系统已支持 Eclipse ADT,即可无缝使用 VS Code ADT,无需升级后端。SAP 通过复用原有 ADT 技术栈,将兼容性逻辑置于客户端,实现对老系统的持续支持。尽管初期侧重 ABAP Cloud 模型,但 1.1 及后续版本已全面覆盖

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 54

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

前期工作总结

前期书签整理        已完成工作:S4C  数据库DDL、DML构件生成工具;Transaction Framework生成;                            Informix -&gt; Oracle 数据库迁移    EC构件改PC构件批量工具;txt配置DDL生成;数据迁移工具;Bookmarks书签栏C++ 基本语法 | 菜鸟教程C 语言教程 | 菜鸟教程ESQ...

王榆夫的专栏 787

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

.NET学习全景图

.NET与JAVA  Java是上世纪九十年代诞生的一种面向对象语言,它吸取了C++的许多长处,其最大的特性是“跨平台”,由于它很好地满足了网络时代信息系统对高级语言的要求,因而在实践中得到广泛应用。   Java经过近十年的发展,目前已在企业信息系统开发领域占据了主流地位,形成了一整套完整的技术体系,取得了巨大的成功。  .NET是微软推出的一种新的软件运行平台,它包括一整套应用

Bengineer的专栏 1236

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

.NET面试题总结---献给即将找工作的同行们

.Net基础知识 什么是面向对象          面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP;          通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数;          现在纯正的OO语言主要是java和C#,C++也支持OO,C是面

技术就是个纸老虎---为之,则难者亦易矣;不为,则易者亦难矣。 2万+

Spring Boot 入门

Spring Boot项目归根只是一个常规的Spring项目,只是利用了Spring Boot启动程序和自动配置。要创建Spring Boot应用程序的方法,Spring团队(The Pivotal Team)提供了以下三种方法。 使用Spring Boot CLI工具使用Spring STS IDE使用Spring Initializr (网站 http://start.spring.

往事随风@的博客 410

.NET之后,再无大创新

回想起来,2001年发布的.NET已经是距离最近的一次软件开发技术的整体创新了,后续的新技术就没有在各个端都这么成功的了。.NET是Windows平台下软件开发技术的巨大变革。在此之前,有VB、C++(MFC)、JSP,在此之后,都整合到.NET。甚至.NET还不能完全算整体创新,因为.NET是全面模仿Java体系的。所以,软件开发技术的整体创新,真的是太久没有了。.NET基础是CLI标准,定义了...

风轻扬 780

linux实用命令以及部分笔记

linux下的部分笔记,主要是用于java开发环境以及部分维护知识,比较综合,方便以后查看

wangganggelian的专栏 661
下一篇: 使用opencv进行目标区域识别
cornfieldc01
博客等级 码龄16年 15粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值