Чтение cobol datastructures из Java

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

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

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

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


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

Ответы

Ответ 1

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


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

Так как оригинальный ответ:

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

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

Recordeditor имеет опцию Generate для генерации кода Java/JRecord из тетради Cobol. Подробности смотрите в примечаниях к генерации кода RecordEditor.

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

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

Как вы генерируете код java ~ jrecord для тетради Cobol

Ответ 2

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

Здесь - хорошее руководство по доступу к метада информации с JDBC. Здесь - еще один.

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

Ответ 3

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

Ответ 4

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

Ответ 5

Microfocus обеспечивает способ вызова OO COBOL из Java.

"Вы можете писать классы в OO COBOL, которые могут быть вызваны из программ Java, как если бы они были классами Java. Вы делаете это, предоставляя класс оболочки Java, который предоставляет функцию для каждого метода в классе OO COBOL. Express Class и Method Wizards облегчают вам работу, генерируя код Java одновременно с кодом COBOL.

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

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

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

Ответ 6

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

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

Ответ 7

Посмотрите Javolution Struct.

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

Ответ 8

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