第六节:使用SMB开发WebService

一、概述

webservice在日常开发中是常用的接口形式,SMB在设计之初就将webservice作为重要的代理协议。在组件库中提供了webservice input和webservice output两个组件,分别用于发布接口和调用接口。

二、发布webservice

在csdnProject工程中创建名为csdn_webservice的消息流,如图:

流程包含了webservice input、Java Compute组件,期中webservice input组件的属性为:
ip:127.0.0.1    port:9100     context: ws/save

属性可以根据实际情况修改。

Java Compute组件的逻辑是收到webservice的消息后,进行打印并返回。具体代码是:

package sashulin.apps;
import sashulin.Models.MessageModel;
import sashulin.applications.FlowApi;
import org.json.JSONArray;
import org.json.JSONObject;
import java.sql.*;
public class csdn_webservice_JavaCompute1 {private String routeLabels = "";public String execute(MessageModel messageModel,String message){System.out.println("webservice接口收到消息1:"+message);return "Hello,SoapUI. 您提交的内容是:"+message;}public String getRouteLabels(){return routeLabels;}}

编译和部署后,在soapUI中进行测试::

三、调用webservice

以上的例子是在soapUI中测试,本例中将使用webservice output调用webservice接口。

我们在csdnProject中的csdn_HttpFlow流程中进行增加:

增加了一个api接口,api接口再调用webservice output组件进行webservice接口请求。两个组件的配置是:

使用postman测试:

另一种是通过代码调用webservice output组件,在csdn_HttpFlow中增加一个api:

在Java组件中写代码调用webservice output组件:

package sashulin.apps;
import sashulin.Models.MessageModel;
import sashulin.applications.FlowApi;
import org.json.JSONArray;
import org.json.JSONObject;
import java.sql.*;
public class csdn_HttpFlow_JavaCompute4 {private String routeLabels = "";public String execute(MessageModel messageModel,String message){JSONObject n = null;JSONObject inputJSON = new JSONObject(message);String value = inputJSON.getString("arg0");JSONObject input = new JSONObject();input.put("arg0",value);String res = FlowApi.execute(this,"WebServiceOut1",n,input.toString());return res;}public String getRouteLabels(){return routeLabels;}}

在postman中测试:

总结:SMB能快速简单地发布api,也能过流或java代码调用webservice output组件实现对webservice接口的调用,极大提高开发效率。在医疗信息化实践中,经常需要调用其他系统webservice,并且自身系统也要将业务数据通过webservice发布出去,SMB将快速响应各种业务场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/540574.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言从入门到实战————数组和指针的深入理解

前言 在C语言中,数组和指针有的密切得联系,因为数组名本身就相当于一个指针常量。指针是一个变量,专门用来存储另一个变量的内存地址,通过这个地址可以访问和操作该变量的值,同时也包括数组。数组是一组连续存储的同类…

Dynamic Capacity Service for Improving CXL Pooled Memory Efficiency——论文阅读

IEEE Micro 2023 Paper CXL论文阅读笔记整理 问题 传统系统面对大容量和高带宽内存需求时存在的挑战: 内存墙。计算系统的最新趋势表明,内存性能的提高没有跟上计算性能的步伐。扩展内存带宽和容量的一个可行解决方案是增加中央处理器(CPU&…

linux板子vscode gdb 远程调试

板子:hi3556v200 交叉编译工具:arm-himix200-linux 主机:win10虚拟机的ubuntu16.4 gdb:gdb-8.2.tar.gz 1.在ubuntu交叉编译gdb(Remote g packet reply is too long解决) 建议修改gdb8.2/gdb目录下面的remote.c解决…

ConcurrentHashMap 为什么不能插入 null?

1、典型回答 简单来说,ConcurrentHashMap 不允许插入 null 值是JDK 源码规定的,如下源码所示(此源码基于JDK 1.8): 从上述源码可以看出,在添加方法的第一句就加了判断:如果 key 值为 null 或者是 value 值为 null&…

电梯机房秀 系列二

上次小伍带大家看了部分机房的照片,并且简单介绍了一下电梯能量回馈装置,小伙伴们表示很新奇,没看够,今天小伍又来了,带大家看一下电梯能量回馈装置到底安装在电梯什么位置。跟着小伍去看看吧。Lets go! 电…

解决提示无法使用内置管理员账户打开Microsoft Edge的方法

图片出自链接:解决提示无法使用内置管理员账户打开Microsoft Edge的方法

如何识别代理IP的真实地理位置

目录 一、代理IP的概述 二、识别代理IP真实地理位置的方法 IP数据库查询 反向DNS查询 网络延迟测量 三、案例分析与代码实现 四、总结与展望 随着网络技术的不断发展,代理IP的使用越来越广泛,但这也给网络安全和数据分析带来了挑战。代理IP可以隐…

我记不住的那些命令-xxdod

背景: 这里记录一下具体的xxd和od命令参数和使用方法,我想我肯定是记不住这些参数的。 零、文件 我们这里有一个示例文件README.txt,内容如下图所示: 一、xxd(查看、编辑二进制文件) 1. 十六进制显示(默认) 我们发现上面的显…

【WPF】Canvas的Path画线 颜色值偏差和面积不准确

图像中左上角2个红色线段 颜色值有偏差&#xff0c;且线段高度不准确&#xff08;我设置的是Red,1&#xff09;。 解决方案&#xff1a; 1、PathGeometry PathFigure LineSegment 2、Stretch设置Fill <Path Stretch"Fill" Stroke"Red"…

macOS - 获取硬件设备信息

文章目录 1、CPU获取方式 一&#xff1a; system_profiler获取方式二&#xff1a;sysctl&#xff0c; machdepmachdep 2、内存3、硬盘4、显卡5、声卡6、光驱7、系统序列号8、型号标识符9、UUID 等信息 10. 计算机名称 1、CPU 获取方式 一&#xff1a; system_profiler % syst…

LeetCode.2864. 最大二进制奇数

题目 2864. 最大二进制奇数 分析 这道题目其实我们只需要保证最后一位是1&#xff0c;其余的1都放在最前面&#xff0c;这样得到的就是最大二进制奇数。 所以&#xff0c;我们先统计给定的字符串有多少个 1&#xff0c;多少个 0&#xff0c;把其中一个 1 放在最后一位&…

谷歌的后量子密码学威胁模型

1. 引言 若现在不使用量子安全算法来加密数据&#xff0c;能够存储当前通信的攻击者最快十年内就能对其解密。这种先存储后解密的攻击是当前采用后量子密码学 (post-quantum cryptography&#xff0c;PQC) 背后的主要动机&#xff0c;但其他未来的量子计算威胁也需要一个深思熟…