Спасибо большое, а то уже влез в побайтное чтение файлов картинок
моя версия заработала, но не элегантно
Побайтное - это круто.
А с ява-классами просто получается совсем.
Угу. После LS, жизнь с явой жизнь покажется раем
Если нетрудно, подскажите пожалуйста где почитать, про остальные возможности.
Насколько я понимаю, нужный класс нашелся на машине, так как была установлена ранее java или это стандартный класс винды?[/qoute]
будет ли такой скрипт работать на сервере и как тут обстоят дела с производительностью, есть ли подводные камни?
Почитать про остальные возможности можно в книжках.
Тут как-то обсуждали недавно. Ну и гугл прям-таки завален информацией.
Пакет java.awt идет в "стандартной" комплектации jre, в т.ч. в реализации jvm от ibm, которая включена в состав lotus domino/notes.
Т.о. код будет работать везде, где есть domino или notes. В т.ч. на сервере, причем под любой поддерживаемой OS.
Подводные камни примерно следующие:
- с хорошей вероятностью нужно дать агенту прав писать на диск, что обычно не очень здорово. подозреваю, что при большом желании это можно обойти, вываливая документ в inmemory dxl, и раскодируя base64 аттача.
- под linux без установленных иксов, возможно придется подкрутить настройку серверной jvm. что-то типа java.awt.headless = true. Если вдруг вылезет - можно почитать
Ссылка скрыта от гостей
- если для получения контента файла используеца EmbeddedObject.getInputStream(), то необходимо помнить про
EmbeddedObject.getInputStream creates a temporary file. The file is deleted when EmbeddedObject is recycled.
Т.е. желательно вызвать recycle() у аттача.
- если файлы большие - возможно придеца поднять JavaMaxHeapSize в notes.ini
С производительностью все нормально - ls2j поднимается быстрее, чем обычный java агент, т.к. ему не надо инициализировать доминошную сессию.
Если domino версии 8.5 - то еще шустрее( ибо jvm 1.6 )