z/OS 如何调用 Web 服务? [关闭]

Posted

技术标签:

【中文标题】z/OS 如何调用 Web 服务? [关闭]【英文标题】:How can z/OS call a web service? [closed] 【发布时间】:2012-04-04 13:17:20 【问题描述】:

我有一个需要从 Web 服务获取数据的 COBOL 程序。如果不使用 CICS,我最好的选择是什么?我认为 C 程序可以读取 Web 服务并将其保存到文件中,然后 COBOL 可以读取该文件。 COBOL 可以调用 Web 服务吗?数据大小约为 300mb。

【问题讨论】:

CICS 在这里被禁止有什么特别的原因吗?从批处理作业访问 CICS 服务非常容易。 【参考方案1】:

使用 IBM TCP/IP 'EZASOKET' 模块

我在一家拥有 z/OS 系统的公司工作,该系统主要运行 COBOL、批处理 (JCL) 和 CICS。为了调用 web 服务,我们编写了一个模块来使用 TCP/IP 实现 HTTP 1.0。带模块

EZASOKET GETHOSTBYNAME 插座 连接 写 FCNTL 阅读 关闭 SELECTEX

补充模块:

EZACIC04 将 EBCDIC 转换为 ASCII EZACIC05 将 ASCII 转换为 EBCDIC EZACIC06 将字符转换为位掩码 EZACIC08 解码 IP 地址

因为我是为我的公司编写的,所以我不能只给出代码。但是作为参考,我花了 3 天时间来编写模块,并且从一个示例开始,它做了一个部分 hacky 的方式。

您需要通读 IBM 的参考资料以了解如何使用 EZA 模块。

http://publib.boulder.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.halc001/sampcs.htm

【讨论】:

【参考方案2】:

可以从 z/os 上的 COBOL 程序调用 java。 我们公司已经做到了。

    你必须指定它是递归的 你必须导入类

HelloJ 类是 “com.ibm.zos.batch.container.test.HelloJ” JavaException 类是“java.lang.Exception” BCDTranHelper 类是 “com.ibm.batch.spi.UserControlledTransactionHelper”。

    您必须包含 JNI。 链接部分。 复制 JNI

***然后您可以在您的 PROCEDURE DIVISION 中从 COBOL 调用 java: 调用 HelloJ“sayHello”

还可以查看 Java Exception Check * 以了解如何处理异常。

如果您想从 z/os 上的 COBOL 程序调用 Web 服务,这将非常有用。

查看此链接了解更多详情。

http://pic.dhe.ibm.com/infocenter/zos/v1r13/index.jsp?topic=%2Fcom.ibm.zos.r13.iean500%2Fcodeexm.htm

【讨论】:

【参考方案3】:

也许看看this article。它建议为 Web 服务创建一个 C/C++ 包装器接口。虽然本文是针对 iSeries 的,但您也许可以在 zSeries 下使用 BPXBATCH 实现非常相似的东西

基本上,他们建议在您的 COBOL 代码和与 Web 服务接口的 C++ 代码之间使用 C 包装器。此解决方案允许 COBOL 以相对直接的方式调用 C 函数。 C 函数通过使用 C++ 代理实现对 Web 服务的调用来模仿 C++ 行为。

【讨论】:

【参考方案4】:

如果您可以在您的站点上使用 Java,则可以选择从 cobol 程序调用 Java 来访问 Web 服务。假设您使用 Enterprise cobol,请查看 Java Stand-alone Applications on z/OS Volume II 的第 6.44 节

【讨论】:

我会对此进行更正,但是...我认为可以从 Java 应用程序调用 COBOL 子例程(方法),但反之则不行。 Java 需要在 JNI 下运行,而 COBOL 只有在从 Java 调用时才需要它。如果没有在 JNI 下运行的***进程(即 Java),则无法调用需要它的较低级别的进程。这就是为什么 z/os 下的 OO COBOL 主线不存在(它们只能从 Java 程序中调用)。【参考方案5】:

如果您使用的是 z/OS 2.1 或更高版本,请使用 z/OS 客户端 Web 启用工具包。

查看 SYS1.SAMPLIB(HWTHXCB1) 中的 Cobol 示例。

如果您的 Cobol 在 DB2 DSN 命令下运行,您还可以使用 SOAPHTTP* 标量函数。

【讨论】:

以上是关于z/OS 如何调用 Web 服务? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Java Web 应用在 IBM z OS 中提交 JCL?

如何从 z/OS 调用远程服务器上的 python 脚本?

DB2 Z/OS V10 大型机:如何创建作业 [关闭]

如何在 z/OS 中调用对话框面板命令?

如何在 C# 中将 Web 服务商店调用到列表中 [关闭]

如何从C ++项目调用Web服务? [关闭]