• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Фича replaceItemValue

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Всем привет!
Вчера нашел интересную фичу у java-метода replaceItemValue.
Ситуация вот какая... на сервере tomcat крутится приложение и ходит в Lotus средствами объектов из Notes.jar
Задача приложения записывать данные в Notes-документы.
Одно из записываемых полей длиной 28К. Так вот replaceItemValue записывает 21К, а остальное отбрасывает.
Самое интересное - подобная реализация на Lotus-сервере записывает строку в полном объеме.
Кто-то с таким сталкивался и как с этим бороться?
 

garrick

Lotus Team
26.10.2009
1 352
151
BIT
204
  1. Попробуйте для теста какую-нибудь другую длинную строку, скорее всего у вас там какой-то символ невидимый.
  2. Проверить не обрезает ли код в приложении на Tomcat строку до такой длины.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Это все я проверял. Сюда пишу в крайних случаях.
Строка в формате BASE64. Там нет невидимых символов.
До 21К строки записываются правильно.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 948
609
BIT
251
Это все я проверял. Сюда пишу в крайних случаях.
Строка в формате BASE64. Там нет невидимых символов.
До 21К строки записываются правильно.
я понимаю - что всё ниже не касается Notes.jar
у томката точно есть ограничения в его сторону...
если перед доминой есть реверспрокси - у него может быть ограничение
у самой домины есть ограничение на размер post (настройка)

про интеграцию - можно открыть домине доступ к темпу томката, результат обработки вкладывать туда, дергать агент с передачей имени файла
как упомянул @savl - можно сразу бинарный стрим в домину, там сервлетом или бином, но тут вопрос авторизации (меня он всегда напрягал ;) )
авторизацию можно "обойти" через $WSRU
можно тупо "дождаться" keep там есть создание/удаление аттача в АПИ
 
Последнее редактирование:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 948
609
BIT
251
сам 21К у меня вызывает "смутные сомнения" ;)
мб чета с саммари?!
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Зачем его как base64 хранить?
Может его стримом в mime, чтобы аттач был, либо сначала делайте файл на диск, а потом аттач, мм?
Хочется мне так :)
Проще обратиться к полю, чем заниматься танцами с бубном, чтоб потом расковырять данные из файла.
Ладно Java, в которой можно вычитать файл сразу в память, а на LS - однозначно детач, вычитывание и конвертация...
Но не суть... BASE64 строка или же просто какая-то строка... проблема от этого не меняется.

сам 21К у меня вызывает "смутные сомнения" ;)
мб чета с саммари?!
Саммари снимал. Не помогает.
Никаких прокси нет. Это локальная сеть.
Ограничений по посту нет. Файлы большего размера (более 1Мб) без проблем сохраняются как аттачи.
Проблемма именно с сохраненим строки больше 21К.
До момента replaceItemValue строка правильной длины.
В общем из положения я вышел, дроблю результат в поля по 20К (на подобии полей request_content )
 

garrick

Lotus Team
26.10.2009
1 352
151
BIT
204
А визуально строка в какой кодировке? Русские буквы в ней видно?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
ну даже если кириллица... органичение текстового саммари поля 32К. В последних версиях Lotus - 64K.
А записывается 21К.
Ладно, вопрос снимается, я вышел из положения, а тема для справки, что такая особенность есть.
 
  • Нравится
Реакции: VladSh
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!