воскресенье, 15 декабря 2013 г.

Процесс загрузки java классов.

1) Системный загрузчик попытается поискать в кеше класс Student.
_1.1) Если класс найден, загрузка окончена.
_1.2) Если класс не найден, загрузка делегируется загрузчику расширений.
2) Загрузчик расширений попытается поискать в кеше класс Student.
_2.1) Если класс найден, загрузка окончена.
_2.2) Если класс не найден, загрузка делегируется базовому загрузчику.
3) Базовый загрузчик попытается поискать в кеше класс Student.
_3.1) Если класс найден, загрузка окончена.
_3.2) Если класс не найден, базовый загрузчик попытается его загрузить.
__3.2.1) Если загрузка прошла успешно, она закончена ;)
__3.2.2) Иначе управление предается загрузчику раширений.
_3.3) Загрузчик расширений пытается загрузить класс. 
__3.3.1) Если загрузка прошла успешно, она закончена ;)
__3.3.2) Иначе управление предается системному загрузчику.
_3.4) Системный загрузчик пытается загрузить класс. 
__3.4.1) Если загрузка прошла успешно, она закончена ;)
__3.4.2) Иначе генерируется исключение java.lang.ClassNotFoundException.

Как подписать java апплет?

1)В папке с апплетом(/component/applet/) в консоли выполняем команду mvn clean install assembly:assembly
2)Переходим в папку BIN нашего JDK (например, C:\Program Files\Java\jdk1.6.0_23\bin)
3)Создаем локальное хранилище нашего сертификата (keystore):
keytool -genkey -keystore .keystore -alias "Espesoft" -validity 99999
где Espesoft - название alias нашего сертификата;
99999 - срок в месяцах валидности сертификата;
.keystore - имя файла создаваемого хранилища.
keytool -genkey -keystore .keystore -alias "Espesoft" -validity 99999
4)В случае успешного запуска команды, система спросит нас пароль нашего хранилища, а также некоторую информацию о сертификате
(твои ФИО, название компании, город, страну и группу крови)
В результате будем иметь файл .keystore. Это и есть наше хранилище, которым мы будем подписывать разные апплеты.
Копируем в папку BIN нашего JDK наш JAR-файл (/component/applet/target/ecologysigningapplet-jar-with-dependencies.jar)/
Подписываем его с помощью следующей команды:
jarsigner.exe -keystore .keystore ecologysigningapplet-jar-with-dependencies.jar "Espesoft"
где Espesoft - название alias нашего сертификата;
.keystore - имя файла хранилища;
ecologysigningapplet-jar-with-dependencies.jar - название JAR-файла.
Система спросит нас пароль - вводим тот, что ввели в п. 3.
5)Затем перемещаем ecologysigningapplet-jar-with-dependencies.jar в папку webapp модулей ecologyapp и authmodule.
Переименовываем его ecologysigningapplet.jar
ecologyapp (используется для загрузок) и authmodule (используется для сброса пароля с помощью ЭЦП).