Чтение 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.