Создание JNLP файла, описывающего ваше клиентское приложение, его библиотеки и другие параметры
Для того, чтобы Java Web Start мог знать какие именно файлы необходимы для запуска и работы вашего клиентского приложения, необходимо создать специальный JNLP файл, имеющий XML формат. Данный файл будет помещен на сервере JBoss в Web-приложение, предназначенное для выполнения деплоймента GUI. Далее приведен краткий и простейший пример JNLP файла, использованного для деплоймента с небольшими пояснения о тегах файла и их значениях. Для более детального описания всех параметров и всех возможностей данной технологии, рекомендую вам обратиться к документации разработчика на сайте Sun Microsystems.
<?xml version="1.0" encoding="Windows-1251"?> .<jnlp spec="1.0+" <!-- Номер JNLP спецификации -->="http://localhost:8080/application" <!--URL по которому находиться JNLP файл, можно написать в виде codebase="$$codebase" -->="application.jnlp" > <!--название JNLP файла-дескриптора нашего приложения можно написать в виде href="$$name" --> <information> <title>Corporate GUI client</title> <vendor>Company ZZZ</vendor> <description>Company's corporate client</description> </information> <resources> <j2se version="1.3+"/> <!--Указание необходимой версии JDK приложения--> <jar href="main_gui.jar" main="true"/><!--Файлы нашего клиентского приложения--> <jar href="main_gui_lib.jar" /> <jar href="jboss-client.jar"/> <jar href="jboss-common-client.jar"/> <!--Перечисление всех файлов сторонних--> <jar href="jboss-j2ee.jar"/> <!--библиотек, необходимых для запуска--> <jar href="jbossmq.jar"/> <!--нашего приложения --> <jar href="jbosssx-client.jar"/> <jar href="jnp-client.jar"/> <jar href="xercesImpl.jar"/> <jar href="xmlParserAPIs.jar"/> <property name="java.naming.provider.url" value="localhost:1099"/> <!-- Указание свойства, которое используется нашим приложением --> </resources>
<application-desc main-class="com.my_company_name.client.Application" /> <-- Название класса с main() точкой запуска --></jnlp> ="http://localhost:8080/application" - указывает на параметр "базы кода" по которому мы будем хранить все необходимые библиотеки, как JAR файлы нашего приложения, так и JAR файлы "сторонних библиотек". Данный параметр можно заменить "специальной переменной", фактическое значение которой jnlp-сервлет поставит самостоятельно при обработке запроса. codebase="$$codebase"="application.jnlp" - название JNLP файла-дескриптора, который описывает наше приложение. Данный параметр также можно заменить "специальной переменой", фактическое значение которой jnlp-сервлет поставит при обработке запроса. href="$$name" В разделе ресурсов, есть указание использования JRE версии 1.3 и более новых - <j2se version="1.3+"/>. Элемент <resources> может содержать 6 различных подэлементов, таких как: jar, nativelib, j2se, property, package и extension. Подробности и правила можно найти в документации. <jar href="main_gui.jar" main="true"/> - Указание библиотеки, в которой находятся классы нашего приложения, при этом параметр main="true", указывает, что данный JAR архив содержит запускаемый класс GUI приложения. <jar href="jboss-client.jar"/> - далее перечислены все необходимые библиотеки, которые будут получены с сервера и кэшированы на клиенте <property name="java.naming.provider.url" value="localhost:1099"/> - так мы можем перечислить все, передаваемые в качестве параметров запуска приложению свойства, которые получаются вызовом System.getProperty(....) <application-desc main-class="com.my_company_name.client.Application" /> - указание полного запускаемого класса. JWS также поддерживает запуск Applet-ов. В этом случае вместо тэга <application-desc> используется тэг <applet-desc>. Принцип написания и параметры - смотрите в документации. Что касается элемента <information> JNLP файла. В данном тэге значения подэлементов <title> и другие, наверное, пока что лучше указывать на английском языке. В последней версии Java Web Start (1.2) из версии JDK 1.4.2_04-b05 название на русском языке в JNLP файле, вызвали ошибку при конвертировании русских букв. Ошибка наблюдалась в логе JBoss (server.log):
[org.jboss.web.localhost.Engine] Internal error:sun.io.MalformedInputExceptionsun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:90)java.io.InputStreamReader.convertInto(InputStreamReader.java:137)java.io.InputStreamReader.fill(InputStreamReader.java:186) .com.sun.javaws.servlet.JnlpDownloadServlet.doGet(JnlpDownloadServlet.java:79)javax.servlet.http.HttpServlet.service(HttpServlet.java:740) ................................... файл имеет также дополнительные параметры и позволяет указывать разные ресурсы приложения в зависимости от: версии самого приложения, версии операционной системы, платформы, "локали" - т.е. поддерживает "версионность" приложений по разным критериям. В качестве ресурсов можно также указывать "native" библиотеки (например, DLL, SO), используемые вашим приложением. Если вашему приложению требуется доступ к локальным файлам или другие права на локальном ПК, то для этого существует раздел <security>, который необходимо также описать. При необходимости доступа к локальным ресурсам на ПК, например файлов, все библиотеки вашего приложения должны быть подписаны сертификатом, который можно сгенерировать самостоятельно. Все подробности и правила описания можно найти в документации. Для создания JNLP деплоймент файлов можно использовать свободно распространяемый "DeployDirector" от Sitraka Software, подробности можно узнать на сайте производителя <http://www.sitraka.com/deploydirector/deploydirector.shtml>.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|