Статус: Участник
Группы: Участники
Зарегистрирован: 07.07.2020(UTC) Сообщений: 19
Сказал(а) «Спасибо»: 1 раз
|
Доброго дня.
Прошу помочь с вопросом лецензирования используемого фреймворка jcp-2.0.41664-A В нашей реализации программного продукта(сервиса) задействована библиотека из этого фреймворка. Для удобства, мы планировали поместить наш сервис в docker image. Вопрос в том, как активировать купленную клиентскую лицензию в docker образе, есть ли примеры по установки лицензии для подобного способа? Так же хочу уточнить, что мы хотим избежать полной установки фреймворка на хост, для оптимизции обьёма самого образа.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Здравствуйте. Попробуйте так (в папке дистрибутива): Цитата: >JDK10+/bin/java -cp * ru.CryptoPro.JCP.tools.License -serial CF20X-XXXXX-XXXXX-XXXXX-XXXXX -store
JDK10+ - java для jcp и сервиса. Лицензия будет сохранена и доступна под управлением пользователя, под которым запущена команда. Отредактировано пользователем 28 октября 2020 г. 15:24:40(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.07.2020(UTC) Сообщений: 19
Сказал(а) «Спасибо»: 1 раз
|
Автор: Евгений Афанасьев Здравствуйте. Попробуйте так (в папке дистрибутива): Цитата: >JDK10+/bin/java -cp * ru.CryptoPro.JCP.tools.License -serial -serial CF20X-XXXXX-XXXXX-XXXXX-XXXXX -store
JDK10+ - java для jcp и сервиса. Лицензия будет сохранена и доступна под управлением пользователя, под которым запущена команда. Доброго дня, я правильно понимаю, что можно не устанавливать сам фреймворк, а просто расположить его на хосте? Или нужно проинсталировать jcp? И если не затруднит, какой командой можно выполнить проверку лицензии в этом случае?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Если используется версия А дистрибутива JCP/JCSP, то есть JCP/JCSP для jdk 10+, то необходимые jar-файлы должны быть в составе вашего приложения. Если требуется ввести лицензию в командной строке, то в папке с распакованным архивом (для этой цели) JCP-A нужно выполнить указанную выше команду. Установка JCP производиться не будет. Проверить лицензию можно с помощью: Цитата: JDK10+/bin/java -cp * ru.CryptoPro.JCP.tools.License -serial CF20X-XXXXX-XXXXX-XXXXX-XXXXX
Отредактировано пользователем 28 октября 2020 г. 15:28:38(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.07.2020(UTC) Сообщений: 19
Сказал(а) «Спасибо»: 1 раз
|
Доброго дня. Хост: Debian 10 java: OpenJdk11 Дистрибутив: jcp-2.0.40132-A
build.png (36kb) загружен 25 раз(а).
Dockerfile
FROM openjdk:11-jdk-slim LABEL Description="This image is used to install & check JCP"
# Дистрибутив версии JCP_VERSION должен находиться в одной папке с Dockerfile. # Запуск производится с помощью команды, например, для JCP версии 2.0.40132-A: # docker build --no-cache -t jcp-inst --build-arg JCP_VERSION=2.0.40132-A .
# Переданная извне версия JCP. ARG JCP_VERSION
WORKDIR jcp-$JCP_VERSION
ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 ENV LC_CTYPE C.UTF-8
# Проверка установки. RUN java -cp * ru.CryptoPro.JCP.tools.License -first
docker build --no-cache -t jcp-inst --build-arg JCP_VERSION=2.0.40132-A . Получаю ... Error: Could not find or load main class ru.CryptoPro.JCP.tools.License Caused by: java.lang.ClassNotFoundException: ru.CryptoPro.JCP.tools.License
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
А в момент запуска команды к лицензии в папке распакованного дистрибутива находитесь? java говорит, что не находит файлов, их вполне может не быть в текущей папке. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.07.2020(UTC) Сообщений: 19
Сказал(а) «Спасибо»: 1 раз
|
Эту ошибку получаю при сборке образа по Dockerfile, который указан под сполером в посте выше. Код:Error: Could not find or load main class ru.CryptoPro.JCP.tools.License
Caused by: java.lang.ClassNotFoundException: ru.CryptoPro.JCP.tools.License
В нем устанавливается текущая директория командой Если просто зайти в директорию с дистрибутивом и выполнить Код:vkoblyakov_sudo@debian:/opt/docker/cryptoPro/jcp-2.0.40132-A$ java -cp * ru.CryptoPro.JCP.tools.License -first
Получаю .. другую ошибку ... Код:Error: Could not find or load main class ASN1P.jar
Caused by: java.lang.ClassNotFoundException: ASN1P.jar
Сам класс, как я понял находится в JCP.jar
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Автор: Koblyakov.slava /opt/docker/cryptoPro/jcp-2.0.40132-A$ java -cp * ru.CryptoPro.JCP.tools.License -first
Попробуйте так: Код:
/opt/docker/cryptoPro/jcp-2.0.40132-A$ java -cp .:*: ru.CryptoPro.JCP.tools.License -first
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.07.2020(UTC) Сообщений: 19
Сказал(а) «Спасибо»: 1 раз
|
Доброго дня. Вы правильно писали, была ошибка в том, что на момент выполнения команды я не находился в нужной папке дистрибутива. Также поправил синтаксис при выполнении команды. Сейчас Dockerfile выглядит так:
FROM openjdk:11-jdk-slim LABEL Description="This image is used to install & check JCP"
# Дистрибутив версии JCP_VERSION должен находиться в одной папке с Dockerfile. # Запуск производится с помощью команды, например, для JCP версии 2.0.40132-A: # docker build --no-cache -t jcp-inst --build-arg JCP_VERSION=2.0.40132-A .
# Переданная извне версия JCP. ARG JCP_VERSION
ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 ENV LC_CTYPE C.UTF-8
# Копирование дистрибутива JCP из контекста в папку distrib. COPY jcp-$JCP_VERSION.zip ./ WORKDIR ./
# Проверка установки RUN java -cp JCP.jar ru.CryptoPro.JCP.tools.License -first
Ниже представлен листинг выполнения build
vkoblyakov_sudo@debian:/opt/docker/cryptoPro$ docker build --no-cache -t jcp-inst --build-arg JCP_VERSION=2.0.40132-A . Sending build context to Docker daemon 38.86MB Step 1/9 : FROM openjdk:11-jdk-slim ---> 19105b37e307 Step 2/9 : LABEL Description="This image is used to install & check JCP" ---> Running in 3a8326ef4359 Removing intermediate container 3a8326ef4359 ---> e8ee115e3e7e Step 3/9 : ARG JCP_VERSION ---> Running in a0399aee3ac6 Removing intermediate container a0399aee3ac6 ---> 92b61fe87d82 Step 4/9 : ENV LANG C.UTF-8 ---> Running in 124fd2b96883 Removing intermediate container 124fd2b96883 ---> 1b978a542418 Step 5/9 : ENV LC_ALL C.UTF-8 ---> Running in 1a5faa7ce025 Removing intermediate container 1a5faa7ce025 ---> 844e4c10419a Step 6/9 : ENV LC_CTYPE C.UTF-8 ---> Running in db2f70ef3814 Removing intermediate container db2f70ef3814 ---> c8ab4e224674 Step 7/9 : COPY jcp-$JCP_VERSION ./ ---> 8d5949f4ce62 Step 8/9 : WORKDIR ./ ---> Running in 66bad1df9c84 Removing intermediate container 66bad1df9c84 ---> e8d653cd7cba Step 9/9 : RUN java -cp JCP.jar ru.CryptoPro.JCP.tools.License -first ---> Running in 6a364adb8c92 Nov 06, 2020 9:46:15 AM java.util.prefs.FileSystemPreferences$1 run INFO: Created user preferences directory. java.lang.reflect.InvocationTargetException java.lang.NoClassDefFoundError: com/objsys/asn1j/runtime/Asn1Type Usage: Verify installed license: ru.CryptoPro.JCP.tools.License Info about required license (minimal for this system): ru.CryptoPro.JCP.tools.License -required Info about first installation date: ru.CryptoPro.JCP.tools.License -first Verify given license: ru.CryptoPro.JCP.tools.License -serial "serial_number" -company "company_name" ru.CryptoPro.JCP.tools.License -serial "serial_number" -combase "company_name_in_base64" Verify given license and store it: ru.CryptoPro.JCP.tools.License -serial "serial_number" -company "company_name" -store ru.CryptoPro.JCP.tools.License -serial "serial_number" -combase "company_name_in_base64" -store Removing intermediate container 6a364adb8c92 ---> 6389368f9cbd Successfully built 6389368f9cbd Successfully tagged jcp-inst:latest
Сейчас смущает то, что команда проверки лицензии не выполняется. Код:
INFO: Created user preferences directory.
java.lang.reflect.InvocationTargetException
java.lang.NoClassDefFoundError: com/objsys/asn1j/runtime/Asn1Type
Возможно это нормальное поведение, так как команду по активации лицензии ещё не выполняли, так как не знаем, будет ли правильным её ввод на тестовом стенде? Ведь ввод лицензии произойдет в момент создания образа и произойдет это на тестовом стенде, а сам контейнер будет работать на продуктовом сервере. Хочется понять, правильность подобных действий по вводу команды на активацию лицензии.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Везде, где запускается java и предполагается обращение к классам в JCP и его модулях, надо передавать -cp * или -cp .:*: находясь в папке с jar Наверно, там где проверка лицензии и другие подобные операции, class path не задан. UPD. Да, в Dockerfile в последней строке только JCP.jar указан, а надо все (т.е. *). Отредактировано пользователем 6 ноября 2020 г. 16:25:20(UTC)
| Причина: Не указана |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close