Схема кодирования для библиотеки SSJS при экспорте через DXL - PullRequest
1 голос
/ 29 марта 2012

Это расширение моего предыдущего вопроса . Когда мы экспортируем библиотеку SSJS в DXL, мы получаем вывод, который содержит это:

<item name="$ServerJavaScriptLibrary" sign="true">
<rawitemdata type="1">
....ENCODED SSJS....
</rawitemdata>
</item>

Раньше я думал, что здесь используется схема кодирования Base64. Но после неудачной попытки импортировать библиотеку SSJS я думаю, что это не так. При поиске я обнаружил, что type="1" относится к TYPE_COMPOSITE, а type="14 "относится к Base64 (пожалуйста, исправьте меня, если я ошибаюсь в этом). Я попытался использовать type="14" в моем файле XML, поместив Base64 в кодировке код в теге rawitemdata и затем попытался импортировать файл. Он создал библиотеку SSJS в базе данных, но ее содержимое было пустым.

Я нашел эту ссылку , где она импортирует тему, кодируя ее в Base64, но она добавляет в кодированную строку "YQAYAAAAAAA6AAAAAAAAAAAAAAAAAAAAYABMAAAAOgA6AAAAAAAAAAAA". Я пытался добавить его в кодированный SSJS-код, а затем импортировать, но все равно безуспешно.

Какую схему кодирования следует использовать, чтобы я мог импортировать код SSJS в мою базу данных?

Ответы [ 2 ]

1 голос
/ 17 января 2013

Библиотека SSJS хранится в записях форматированного текста.Закодированная строка перед данными библиотеки SSJS - это кодированный заголовок base64, содержащий информацию этих записей.

Здесь вы можете найти рабочий пример того, как инкапсулировать и импортировать библиотеку SSJS с DXL в базу данных: Quick-n-Dirty: импорт библиотек SSJS с DXL

0 голосов
/ 04 апреля 2012

Предварительно добавленная строка является контрольной суммой;при экспорте библиотеки в DXL Base64 включает префикс, который позволяет импортеру проверять содержимое.Этот подход к контрольной сумме также используется при экспорте элементов дизайна XPage и Custom Control в DXL.Следовательно, если вы импортируете этот DXL точно так же, как он был экспортирован, импорт будет успешным.Однако если вы измените закодированное содержимое и добавите к нему тот же префикс, импорт завершится неудачно, поскольку контрольная сумма больше не будет совпадать.

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

...