【问题标题】:Reading COBOL datastructures from Java从 Java 中读取 COBOL 数据结构
【发布时间】:2009-04-29 12:28:03
【问题描述】:

有没有办法在 Java 程序中读取 COBOL 数据?更具体地说,我遇到了以下情况:

我有一个包含固定长度数据记录的文件。数据定义是作为 COBOL 副本完成的。我想到了一个图书馆,它会考虑抄写本并能够阅读这些记录。

理想情况下,应该可以根据字帖信息生成基本的 Java 类和结构。在稍后的步骤中,将解析数据记录并将数据填充到这些生成的类的对象中。

有没有其他技术可以解决读取COBOL数据的问题?

【问题讨论】:

  • 您使用的是哪个 Cobol 平台?
  • 你为什么要问? cobol 平台并没有改变问题,或者是吗?

标签: java data-structures cobol copybook


【解决方案1】:

您可以查看JRecordcb2java。两者都允许您访问 COBOL 文件,但都不会生成完整的类。


2011 年 1 月更新

因为原来的答案:

  • JRecord 继续开发。现在有一个JRecord Code generator 可作为独立程序或在Recordeditor 中使用。 这个Code Generator 将从COBOL Copybook 构建JRecord JRecord 代码。见RecordEditor Jrecord CodeGen)
  • cb2java 的开发已停止
  • cobol2j 已写入。一年没有更新了。
  • 还有Legstar又几年没发表了

2017 年 8 月更新

RecordEditor 有一个 Generate 选项,用于从 COBOL Copybook 生成 Java / JRecord 代码。详情请见RecordEditor Code Generation notes

2018 年 1 月更新

在这个问题/答案中有一些关于生成Java~JRecord代码的信息:

How do you generate java~jrecord code for a Cobol copybook

【讨论】:

  • 第四个链接指向本地文件(驱动器 F:在 Windows 系统上)。
【解决方案2】:

是的。我以前做过。我使用 ODBC 连接到 COBOL 文件,然后使用 jdbc:odbc 桥,我使用元数据信息生成类、读取数据并将其全部移植到 Oracle。

Here 是一个很好的教程,介绍了如何使用 JDBC 访问元数据信息。 Here 是另一个。

请记住,您不需要 JDBC:ODBC 桥接方法。如果你能得到一个原生的 JDBC 驱动来连接你的 Cobol 数据源,那就更好了。在这方面,我也使用了 IBM 原生驱动程序。不过不记得名字了。那是很久以前的事了。

【讨论】:

  • 您访问 cobol 数据结构的方式听起来很有趣。你能提供更多关于你是如何做到的信息吗?我不知道 odbc 支持访问 cobol 数据结构。
  • 当然。你喜欢什么?关于如何使用 JDBC 访问元数据信息的教程?
  • 这不是关于访问元数据的,我明白那部分。但是,问题更多的是如何使用 odbc 连接来访问存储在 cobol 数据记录文件中的数据。这样的文件本身并不包含有关所用结构的信息。
【解决方案3】:

这似乎有一些commercial solutions。或者,您可以使用cb2xml 将字帖转换为 XML,然后使用您需要的任何机制将 XML 导入 Java。

【讨论】:

  • 谢谢,但是,cb2xml 只读取数据定义并将其转换为 xml。我还需要一个工具来读取实际数据并将其转换为 java 结构。
  • 您可以使用 Apache 的 XMLBEANS 从 XML 创建 java 数据结构。
  • 或 JAXB。或者处理滚动您自己的机制(诚然,需要更多的努力)cb2xml 只能帮助您完成一半,但它确实需要 COBOL 并将其转换为您可以实施各种不同解决方案的东西......
【解决方案4】:

我在我的项目中使用了 Bruce 的 JRecord(来自 sourceforge)包。只花了几天时间就学会了使用它,并且节省了我几个月的工作量,我自己推出了一个不太通用的解决方案。我强烈推荐它。

【讨论】:

    【解决方案5】:

    Microfocus 提供了一种从 Java 调用 OO COBOL 的方法。

    “您可以在 OO COBOL 中编写可以从 Java 程序调用的类,就好像它们是 Java 类一样。您可以通过提供 Java 包装类来做到这一点,该类为 OO COBOL 类中的每个方法提供一个函数。网络通过在生成 COBOL 代码的同时生成 Java 代码,Express Class and Method Wizards 让您轻松实现这一目标。”

    他们还提供了一个名为 Enterprise Server 的工具,它允许 COBOL 与 Web 服务交互。

    如果您有一个 COBOL 程序 A,该工具允许您将 A 的接口部分公开为 Web 服务。

    当然,因为 A 现在有了 Web 服务,任何其他类型的程序(命令行、Windows 应用程序、Java、ASP 等)现在也可以调用它,从而将 COBOL 数据传递给 Java 程序。

    【讨论】:

      【解决方案6】:

      BEA 曾经有一个名为 JAM 的产品,用于与大型机 COBOL 程序进行通信。它包括一个工具,可以读取字帖并生成相应的 Java POD 类和数据转换代码。

      我不知道这是否仍然可用,我离开 BEA 时忘记了它。

      【讨论】:

        【解决方案7】:

        Rational Application Developer 可以读取 COBOL 源代码并生成 Java 类。生成的类具有访问 COBOL 数据结构各个部分的方法。生成的类与J2EE Connector Architecture 兼容。要在您的项目中创建一个类,请选择 File、New、Other,然后选择 J2C 下的 CICS/IMS Java Data Binding 向导。点击下一步。选择 COBOL 到 Java 进行映射。选择您的 COBOL 文件。选择您希望为其生成 Java 类的结构,然后单击 Finish 就可以了。当然,您可以选择许多我没有提到的选项。有关更多信息,请搜索 J2C 帮助。

        【讨论】:

        • 他们在名为“RAD for z”的特殊版本的 RAD 上提供了此功能。他们现在是否将功能移至基础 RAD?
        【解决方案8】:

        看看Javolution Struct

        然后您可以使用宏将您的 COBOL 数据转换为 Struct

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-05-07
          • 2019-09-22
          • 1970-01-01
          • 2011-09-29
          • 2010-09-28
          • 2023-04-05
          • 1970-01-01
          相关资源
          最近更新 更多