一文读懂-WebService的服务提供原创
金蝶云社区-金蝉子
金蝉子
11人赞赏了该文章 1,747次浏览 未经作者许可,禁止转载编辑于2022年06月24日 15:29:16
summary-icon摘要由AI智能服务提供

苍穹平台支持通过WebService暴露接口,包括定义接口、编写实现类、配置并发布,可使用SOAP方式交互。步骤包括@WebService等注解使用、MC配置发布、验证和调试。WebService是跨语言和平台的远程调用技术,用于应用集成、软件重用和跨防火墙通信。

    众所周知,苍穹支持对外支持REST风格的openAPI接口,但如果项目中第三方系统需要调用SOAP方式的WebService接口进行交互,那苍穹能支持暴露这种接口吗?答案肯定是能的。

image.png

1、苍穹平台如何使用WebService

总结:

1.   苍穹对外开放WebService接口的总体步骤:定义接口&编写实现类&配置文件

2.   MC添加配置并发布——验证。

1.1定义接口&编写实现类

(1)@WebService 作用在具体类上。而不是接口。一个类只有添加了此注解才可以通过Endpoint发布为一个web服务。一个添加了此注解的类,必须要至少包含一个实例方法。静态方法和final方法不能被发布为服务方法。

(2)@WebMethod此注解用在方法上,用于修改对外暴露的方法。

(3)@WebParam用于定义WSDL中的参数映射

image.png

(4)@XmlElement用于定义实体类的属性到WSDL中的映射(get/set方法上)

image.png

(5)以上述方法为例,在innerOrderReq方法中调用自己的业务逻辑。

1.2MC添加配置

MC上配置文件路径指定(本地启动也可通过启动类配置):
配置路径:/root/config/common/prop
配置参数为kws.config

image.png

这里规定暴露的webService名称为sapService,指向地址为方法的全路径;
<?xml version="1.0" encoding="utf-8"?>
<root>
        <service name="sapService"      class="org.tempuri.WebserviceInterfaceImpl"></service>
</root>

然后在MC中点击发布按钮。

验证:发布后可以输入http://localhost:8080/ierp/kws/ 

image.png

这样就可以看到我们所发布的webService服务啦。

image.png


输入的ip地址中注意kws/ ,不要少了最后这个/,如果少了可能会出现如果报错;

image.png

完成以上配置后,接下来可以通过soapui或者是Postman测试工具来测试服务的可用性。

1.3本地调试

如果是本地调试这个配置与调试阶段效果是相同的,注意在mc配置中是kws.config ,但是在调试阶段debugService下是kws.config.path;调试阶段优先级更高。
System.setProperty("kws.config.path","kwsconfig.xml")
在java包下或者静态资源下添加一个kwsconfig.xml(可以自己命名)文件,该文件记录着队列配置信息的示例

image.png

1.4常见问题

1、输入的ip地址中注意kws/ ,不要少了最后这个/,如果少了可能会出现如果报错;

image.png

2、如果苍穹存在多个数据中心时,在编写实现类时注意要指定上下文的参数,如下参考:

    /* 重要的上下文设置 */
private static void setRequestContext() {
/* 获取mc中的配置 */
        String configs = System.getProperty(WS_CONFIG);
        if (StringUtils.isNotBlank(configs)) {
            // 设置 公司、账套、用户
            RequestContextCreator.createForTripSI(configs.split(",")[0], configs.split(",")[1], configs.split(",")[2]);
        }
    }

拓展:

2、什么是WebService

一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

3、为什么要用WebService

Web Service 可以适用于应用程序集成、软件重用、跨防火墙通信等需求。不同的 业务要求不同。
具体如下:
(1) 跨防火墙通信
(2) 应用系统集成
(3) 软件和数据重用 简单来说,如果一个功能,需要被多个系统使用可以使用webservice开发一个服务端接口,供不同的客户端应用。主要应用在企业内部系统之间的接口调用、面向公网的 webservice服务。


图标赞 11
11人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!