Как некоторые из вас уже знают, ADF Essentials является отличной средой для создания веб-приложений с использованием Java, а также бесплатна для разработки и развертывания. Приложения ADF Essentials развертываются на сервере Glassfish (3.1+). Тем не менее, JDeveloper поставляется не со встроенным сервером Glassfish, а со встроенным сервером Weblogic. В этом посте мы поговорим о том, когда использовать встроенный сервер Weblogic и когда вам следует использовать внешний сервер Glassfish во время разработки приложения ADF Essentials.
Что вам нужно
После установки вышеуказанного программного обеспечения вы можете приступить к созданию приложений ADF Essentials. В Интернете вы найдете множество документации : книги, учебные пособия и видео. Я рекомендую во время разработки использовать встроенный сервер Weblogic, чтобы вы могли отлаживать и запускать приложения прямо из JDeveloper. Когда вы закончите разработку какой-либо функциональности, протестируйте свою разработку на сервере Glassfish, в конце концов, если вы разрабатываете приложения ADF Essentials, это сервер приложений, который вы, скорее всего, будете использовать в производственной среде. Убедитесь, что вы настроили свой сервер Glassfish для приложений ADF Essentials, как описано здесь: https://blogs.oracle.com/shay/entry/deploying_oracle_adf_applications_to
Версия JDeveloper, которую вы установили, поставляется со встроенным функционалом для развертывания ваших приложений на сервере Glassfish. Однако вам необходимо запустить сервер, прежде чем вы сможете развернуть свои приложения. Один из способов сделать это — использовать серверные элементы управления Glassfish (они устанавливаются после установки Glassfish) вне JDeveloper. Я рекомендую использовать плагин Glassfish для JDeveloper, чтобы вы могли запускать / останавливать сервер Glassfish прямо из IDE! Плагин был создан Shay Shmeltzer, а версия 1.3 была модифицирована для работы в Linux ( спасибо мне, @aa_lopez ) и для работы в Mac (спасибо Дэвиду Ароке ).
Плагин можно найти в справке-> проверить наличие обновлений . Более подробная информация здесь: https://blogs.oracle.com/shay/entry/glassfish_extension_for_oracle_jdeveloper . Если вы хотите внести свой вклад в исходный код, вы можете найти проект по адресу java.net: http://java.net/projects/jdev-3rd-party-ext/sources/svn-repository/show . После установки плагина ваш JDeveloper представляет четыре новые кнопки:
Форма слева направо:
- Первый позволяет запустить сервер Glassfish.
- Второй позволяет остановить сервер Glassfish.
- Третий запускает сервер Glassfish в режиме отладки.
- Четвертый запускает приложение веб-консоли сервера Glassfish.
Прежде чем вы сможете начать использовать эти новые кнопки, вы должны настроить пути к серверу Glassfish. Для этого перейдите в Инструменты-> Настройки и выберите Настройки Glassfish :
Плагин поставляется с путями ОС Windows по умолчанию. Поэтому, если вы используете Linux или Mac, вам нужно изменить эти пути, чтобы кнопки плагинов работали. В моем случае я использую Linux, поэтому я изменил пути в соответствии с путями, где я установил свой сервер Glassfish.
Запись
Мне пришлось добавить опцию –verbose в команду запуска, в противном случае Glassfish запускается и останавливается немедленно.
1
|
Glassfish Home Directory: /home/aalopez/development/glassfish- 3.1 . 2.2 / |
Запустить команду Glassfish:
1
|
/home/aalopez/development/glassfish-3 .1.2.2 /glassfish/bin/asadmin start-domain --verbose domain1 |
Команда Stop Glassfish:
1
|
/home/aalopez/development/glassfish-3 .1.2.2 /glassfish/bin/asadmin stop-domain domain1 |
Запустите Glassfish в режиме отладки:
1
|
/home/aalopez/development/glassfish-3 .1.2.2 /glassfish/bin/asadmin start-domain --debug= true |
URL администратора Glassfish:
1
|
http: //localhost :4848 |
Как только вы закончите настройку, вы готовы начать использовать сервер Glassfish от JDeveloper, просто не закрывайте всплывающее окно, когда вы нажимаете кнопку «Start Glassfish».
Как работать с источниками данных между серверами Weblogic и Glassfish?
Когда вы работаете со встроенным сервером Weblogic, JDeveloper создает источник данных для доступа к базе данных. Этот источник данных имеет следующую структуру:
1
|
java:comp/env/jdbc/DATASOURCE_NAME |
Где DATASOURCE_NAME — это имя, которое вы дали источнику данных при настройке соединения с базой данных. Проблема в том, что сервер Glassfish использует другую структуру. Когда вы определяете источник данных в приложении веб-консоли сервера Glassfish, вы определяете его следующим образом:
1
|
jdbc/DATASOURCE_NAME |
Если вы продолжаете запускать приложение, используя серверы Weblogic и Glassfish, я рекомендую следующую конфигурацию, чтобы вам не приходилось вручную изменять структуру источника данных при каждом изменении сервера приложений: определите ресурс в Web Content / WEBINF / web. XML
1
2
3
4
5
6
|
<resource-ref> <res-ref-name>jdbc/DATASOURCE_NAME</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> |
Как указано в версии 2.5 дескриптора развертывания веб-приложения Java EE:
1
|
The res-ref-name element specifies the name of a resource manager connection factory reference. The name is a JNDI name relative to the java:comp/env context. The name must be unique within a web application. |
Таким образом, мы не определяем, что делать с jdbc / DATASOURCE_NAME, но на самом деле мы определяем java: comp / env / jdbc / DATASOURCE_NAME, которая точно соответствует структуре источника данных, настроенной в приложении и используемой сервером Weblogic. На самом деле это хорошая практика, поскольку во время разработки вам не нужно беспокоиться о том, что будет структурой или именем источника данных во время развертывания. Вы просто определяете в дескрипторе развертывания web.xml структуру или имя источника данных, и развертыватель (да, человек, который выполняет развертывание) может сопоставить эту структуру или имя с чем-то другим. Это делается в конфигурационном файле для конкретного контейнера, как мы увидим дальше.
Создайте файл конфигурации glassfish-web.xml . Щелкните правой кнопкой мыши папку Web Content / WEB-INF и выберите опцию New… :
Появится окно, выберите категорию « Общие », а затем выберите « Файл» :
Введите имя файла как glassfish-web.xml и убедитесь, что путь к этому новому файлу находится внутри папки WEB-INF :
После создания файла откройте его и введите следующий код:
01
02
03
04
05
06
07
08
09
10
|
<? xml version = '1.0' encoding = 'UTF-8' ?> < glassfish-web-app > < context-root >YOUR_APP_NAME</ context-root > < property name = 'useBundledJsf' value = 'true' /> < class-loader delegate = 'false' /> < resource-ref > < res-ref-name >java:comp/env/jdbc/DATASOURCE_NAME</ res-ref-name > < jndi-name >jdbc/DATASOURCE_NAME_AT_GLASSFISH</ jndi-name > </ resource-ref > </ glassfish-web-app > |
Здесь я скопировал конфигурацию, которую JDeveloper добавляет в файл glassfish-web.xml во время развертывания. Я также добавил конфигурацию, которая позволяет нам отображать источники данных. Элемент resource-ref — это то, что мы собираемся сосредоточить на этом посте. Измените DATASOURCE_NAME на имя, которое вы определили для источника данных в дескрипторе развертывания web.xml, и DATASOURCE_NAME_AT_GLASSFISH на имя, которое вы определили в приложении веб-консоли Glassfish.
Как это работает:
- Мы определили источник данных как ресурс в дескрипторе развертывания web.xml . Помните, что мы используем структуру jdbc / DATASOURCE_NAME, но на самом деле это означает, что мы используем java: comp / env / jdbc / DATASOURCE_NAME
- Мы создали дескриптор развертывания glassfish-web.xml . Это файл конфигурации для конкретного контейнера, который создается JDeveloper автоматически при развертывании на сервере Glassfish. Однако, если файл уже существует, он не переопределяется. Здесь мы сопоставили определения источников данных, поэтому сообщаем Glassfish, что когда мы ищем java: comp / env / jdbc / DATASOURCE_NAME, мы действительно имеем в виду, что мы являемся ищем jdbc / DATASOURCE_NAME на сервере Glassfish.
Вот и все. С этой конфигурацией вам не нужно беспокоиться о различиях в конфигурации источника данных между серверами Weblogic и Glassfish. Счастливое кодирование ADF Essentials.
Рекомендации:
- Oracle ADF Essentials . Oracle [онлайн]. Доступно в Интернете: http://www.oracle.com/technetwork/developer-tools/adf/overview/adfessentials-1719844.html [доступ 24 марта 2013 г.].
- Развертывание приложений ADF на GlassFish . Oracle [онлайн]. Доступно в Интернете: http://docs.oracle.com/cd/E35521_01/web.111230/e16182/appendix_glassfish.htm#CEGDIGEE [доступ 28 марта 2013 г.].
- Java EE: XML-схемы для дескрипторов развертывания Java EE . Oracle [онлайн]. Доступно в Интернете: http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html#5 [доступ 28 марта 2013 г.].
- Для чего используется resource-ref в web.xml? , Oracle [онлайн]. Доступно в Интернете: http://stackoverflow.com/questions/2887967/what-is-resource-ref-in-web-xml-used-for/2888169#2888169
Ссылка: плагин Glassfish для JDeveloper 11gR2 от нашего партнера по JCG Алексиса Лопеса в блоге Java и ME .