Чтение структур кобола с Java - PullRequest
18 голосов
/ 29 апреля 2009

Есть ли способ прочитать данные cobol в программе на Java? Более конкретно я сталкиваюсь со следующим случаем:

У меня есть файл с фиксированной длиной записи данных. Определение данных сделано в виде тетрадей Кобола. Я думаю о библиотеке, которая, учитывая тетради, могла бы читать эти записи.

В идеале должна быть возможность генерировать базовые Java-классы и структуры на основе информации из тетради. На более позднем этапе данные будут проанализированы, а данные заполнены объектами этих сгенерированных классов.

Знаете ли вы библиотеку, предоставляющую такую ​​функциональность? Или какие-то другие методы, чтобы справиться с проблемой чтения данных кобола?


Есть несколько коммерческих инструментов, которые предоставляют эту функциональность. Они, однако, очень дорогие. Знаете ли вы какую-либо альтернативу с открытым исходным кодом или комбинацию различных инструментов для обеспечения полной функциональности? Например, cb2xml читает структуры тетради и преобразует их в xml. Последующим шагом будет создание программы чтения записей на основе информации cb2xml xml. Или использовать читатель записи, который настраивается. Знаете ли вы, читатель (декодер) cobol?

Ответы [ 8 ]

19 голосов
/ 04 мая 2009

Вы можете посмотреть на JRecord - http://sourceforge.net/projects/jrecord/ или cb2java http://sourceforge.net/projects/cb2java/ оба позволяют вам получить доступ к файлам cobol но ни один из них не сгенерирует полные классы.


Обновление январь 2011

С оригинального ответа:

  • JRecord продолжает развиваться. Теперь JRecord Code generator доступно как либо в автономной программе, либо в Recordeditor . Этот Code Generator создаст JRecord JRecord код из Cobol Copybook. См. RecordEditor Jrecord CodeGen
  • Разработка cb2java остановлена ​​
  • cobol2j написано. Там не было никаких обновлений в течение года.
  • Существует также Legstar опять ничего не опубликовано в течение нескольких лет

Обновление: август 2017

RecordEditor имеет опцию Generate для генерации Java / JRecord кода из тетради Кобола. Подробнее см. Записи создания кода RecordEditor .

Обновление январь 2018

В этом вопросе / ответе есть некоторая информация о генерации Java ~ JRecord кода:

Как создать код java ~ jrecord для тетради Cobol

4 голосов
/ 29 апреля 2009

Да. Я делал это раньше. Я использовал ODBC-соединение с файлами COBOL, а затем с помощью моста jdbc: odbc я использовал информацию метаданных для генерации классов, чтения данных и переноса их в Oracle.

Здесь - хороший учебник о том, как получить доступ к метаданной информации с помощью JDBC. Здесь еще один.

Имейте в виду, что вам не нужен подход моста JDBC: ODBC. Если вы можете получить собственный драйвер JDBC для подключения к вашему Cobol DataSource, это будет лучше. В связи с этим я также использовал собственный драйвер IBM. Не помню, хотя имя. Это было давно.

2 голосов
/ 18 декабря 2009

Я использовал пакет Брюса JRecord (из sourceforge) для моего проекта. Потребовалось всего пару дней, чтобы научиться использовать его, и я сэкономил месяцы работы на развертывание гораздо менее общего решения самостоятельно. Я очень рекомендую это.

2 голосов
/ 29 апреля 2009

Похоже, есть коммерческие решения для этого. В качестве альтернативы вы можете использовать cb2xml для преобразования тетрадей в XML, а затем импортировать XML в Java, используя любой необходимый вам механизм.

1 голос
/ 10 июня 2009

Rational Application Developer может читать исходный код COBOL и генерировать классы Java. Сгенерированные классы имеют методы для доступа к различным частям структуры данных COBOL. Созданный класс совместим с J2EE Connector Architecture . Чтобы создать класс в своем проекте, выберите «Файл», «Новый», «Другой», а затем выберите мастер связывания данных CICS / IMS Java в разделе «J2C». Нажмите кнопку "Далее. Выберите COBOL для Java для отображения. Выберите ваш файл COBOL. Выберите структуру, для которой вы хотите сгенерировать класс Java, затем нажмите «Готово» и все готово. Есть, конечно, несколько вариантов, которые вы можете выбрать по пути, который я не упомянул. Для получения дополнительной информации ищите справку для J2C.

1 голос
/ 06 мая 2009

Взгляните на Javolution Struct .

Затем вы можете использовать макрос для преобразования данных COBOL в Struct.

1 голос
/ 05 мая 2009

У BEA был продукт под названием JAM, который использовался для связи с программами COBOL для мэйнфреймов. Он включал инструмент, который считывал тетради и генерировал как соответствующие классы Java POD, так и код преобразования данных.

Я не знаю, если это все еще доступно, я потерял его, когда покинул BEA.

1 голос
/ 30 апреля 2009

Микрофокус обеспечивает способ вызова OO COBOL из Java.

"Вы можете написать классы в OO COBOL, которые можно вызывать из программ Java, как если бы они были классами Java. Это делается с помощью класса-оболочки Java, который предоставляет функцию для каждого метода в классе OO COBOL. Сеть Мастера экспресс-классов и методов упрощают эту задачу, генерируя код Java одновременно с кодом COBOL. "

Они также предоставляют инструмент Enterprise Server, который позволяет COBOL взаимодействовать с веб-сервисами.

Если у вас есть программа A на языке COBOL, инструмент позволяет вам представить раздел интерфейса A как веб-сервис.

Конечно, поскольку теперь у A есть веб-служба, любой другой тип программы (командная строка, приложение Windows, Java, ASP и т. Д.) Теперь также может вызывать ее и, следовательно, передавать данные COBOL в программу Java.

...