Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline Евгений Афанасьев  
#11 Оставлено : 24 августа 2021 г. 12:46:48(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: Nikita.Mikhailov Перейти к цитате
все JCP библиотеки нужно перенести в WEB-INF/lib

А вы их не туда положили? В WEB-INF/lib должен быть JCP (версии А) с нужными зависимостями (BC) и т.д.

Отредактировано пользователем 24 августа 2021 г. 12:48:05(UTC)  | Причина: Не указана

Offline Nikita.Mikhailov  
#12 Оставлено : 24 августа 2021 г. 12:51:38(UTC)
Nikita.Mikhailov

Статус: Участник

Группы: Участники
Зарегистрирован: 22.08.2019(UTC)
Сообщений: 10
Российская Федерация

А как тогда лицензировать?

Я конечно не эксперементировал, но, думается если я буду собирать приложение с JCP библиотеками с серверной лицензией, оно же не будет работать на локальной машине?

Сейчас JCP библиотеки лежат в отдельной директории и tomcat classloader настроен так чтобы сканировать и загружать классы из этой дирректории. Таким образом я могу иметь отдельный JCP с сервеной лицензией на сервере и JCP с лицензией на рабочее место на локальной машине.
Offline Евгений Афанасьев  
#13 Оставлено : 24 августа 2021 г. 12:55:33(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Вы на одной машине используете -Djava.util.prefs.systemRoot=<...> -Djava.util.prefs.userRoot=<...> для того, чтобы задавать разные лицензии для разных случаев?

Отредактировано пользователем 24 августа 2021 г. 12:56:45(UTC)  | Причина: Не указана

Offline Nikita.Mikhailov  
#14 Оставлено : 24 августа 2021 г. 12:58:39(UTC)
Nikita.Mikhailov

Статус: Участник

Группы: Участники
Зарегистрирован: 22.08.2019(UTC)
Сообщений: 10
Российская Федерация

Нет, первый раз вижу это. Подскажите, пожалуйста, информация об этом есть где-то в документации?
Offline Евгений Афанасьев  
#15 Оставлено : 24 августа 2021 г. 13:36:58(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
В документации явно не прописано, но можно поискать в интернете. В *nix работает автоматически: так можно указать место, где хранятся Preferences, отличное от дефолтного. Для Windows (тут Preferences всегда хранятся в реестре) мы тоже добавляли в JCP (чтобы можно было, как в *nix, хранить Preferences в папке).
У этих параметров есть особенности - если не ошибаюсь, пути надо задавать так (my_dir - это любая папка):
Код:

-Djava.util.prefs.systemRoot=/my_dir/.java
-Djava.util.prefs.userRoot=/my_dir

При этом папки /my_dir/.java/.systemPrefs и /my_dir/.java/.userPrefs должны существовать на момент запуска, иначе при отсутствии .systemPrefs они будут созданы в другом месте по усмотрению jdk (в /etc/.java, в папке jdk и т.п.). Нюансы (если интересно) можно посмотреть в исходном коде open jdk (поиск по java.util.prefs.systemRoot).

Отредактировано пользователем 24 августа 2021 г. 13:44:15(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
Санчир Момолдаев оставлено 25.08.2021(UTC)
Offline basid  
#16 Оставлено : 26 августа 2021 г. 6:34:27(UTC)
basid

Статус: Активный участник

Группы: Участники
Зарегистрирован: 21.11.2010(UTC)
Сообщений: 1,037

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 140 раз в 126 постах
Автор: Nikita.Mikhailov Перейти к цитате
Цитата:
Bootstrap classes of your JVM
/WEB-INF/classes of your web application
/WEB-INF/lib/*.jar of your web application
System class loader classes (described above)
Common class loader classes (described above)
Тоесть классы из /WEB-INF/lib таки грузятся, но в моём случае грузятся не все что нужны.
Кроме "грузятся" есть ещё и "область видимости".
В сервлет-контейнере ограничена область видимости классов, загруженных в контексте приложения (app/WEB-INF/lib).
Контексты развёртываются "в самом конце" загрузки контейнера и могут выгружаться без перезагрузки контейнера в целом. Далеко не всякий класс/jar может работать в таких условиях.

Чтобы не иметь проблем - помечайте классы JCP как "предоставляются при работа" (provided, если не ошибаюсь) и отдельно устанавливайте JCP в нужных JRE. Это будет "bootstrap class loader".
Или настраивайте CLASSPATH для JCP из скрипта запуска "Котяры" (это будет "system class loader").
Или размещайте JCP в "common class loader" (${CATALINA_BASE}/lib).
Два последних варианта, если я правильно понимаю, работают только в JCP 2.0A.

В общем - не надо упаковывать в приложение всё, что ему необходимо для работы. Некоторые вещи в таком варианте распространения или вообще не будут работать или не будут работать корректно.
thanks 2 пользователей поблагодарили basid за этот пост.
two_oceans оставлено 26.08.2021(UTC), Евгений Афанасьев оставлено 14.09.2021(UTC)
Offline Nikita.Mikhailov  
#17 Оставлено : 26 августа 2021 г. 13:26:02(UTC)
Nikita.Mikhailov

Статус: Участник

Группы: Участники
Зарегистрирован: 22.08.2019(UTC)
Сообщений: 10
Российская Федерация

Спасибо за развёрнутый комментарий.

Пока сделал почти так
Цитата:
Или размещайте JCP в "common class loader" (${CATALINA_BASE}/lib)

Добавил директорию где находятся классы JCP и bouncycastle в catalina.properties в common.loader
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.