Вы , вероятно , следовал за мной с последними
Java EE 6 Galleria например сообщений .
Первый один был основным введение.
Второй один был о запуске его на последних GlassFish. Кто-то из парней из RedHat упомянул, что мы должны рассмотреть возможность использования этого примера в GlassFish. Отлично;) Спасибо за хорошую идею. Это именно то, что мы собираемся сделать сегодня. Я собираюсь привести пример Galleria в последнюю версию WebLogic 12c.
Подготовка
Настройтесь на какую-то конфигурацию. У вас уже установлена последняя
версия NetBeans 7.1, и вы собираетесь загрузить
ZIP-архив WebLogic 12cраспределение в секунду. После загрузки wls1211_dev.zip поместите его в выбранное место и разархивируйте. Отныне мы будем называть эту папку папкой% MW_HOME%. Откройте командную строку и настройте в ней переменные% JAVA_HOME%,% JAVA_VENDOR% и% MW_HOME%:
set JAVA_HOME=D:\jdk1.7.0_04 set MW_HOME=D:\temp\wls12zip set JAVA_VENDOR=Sun
После того, как вы сделали это, последний шаг — запустить скрипт конфигурации установки configure.cmd в каталоге MW_HOME. Это единовременно.
Настройте свой домен WebLogic
Следующее, что нам нужно, это домен WebLogic. Откройте новую командную строку. Настройте среду в текущей оболочке, запустив сценарий% MW_HOME% \ wlserver \ server \ bin \ setWLSEnv.cmd. Выполните% MW_HOME% \ wlserver \ common \ bin \ config.cmd и следуйте указаниям мастера, чтобы создать базовый домен сервера WebLogic с именем test-domain в папке по вашему выбору (например, D: \ temp \ test-domain). Дайте имя пользователя и пароль по вашему выбору (например, system / system1) и нажимайте в мастере, пока у вас не появится кнопка «Готово». WebLogic нужен файл JAR клиента Derby для настройки и использования базы данных. Скопируйте derbyclient-10.8.2.2.jar из вашего репозитория m2 в папку test-domain \ lib. Теперь давайте запустим вновь созданный домен вручную, запустив startWebLogic.cmd в только что созданном доменном каталоге.Убедитесь, что все работает, перейдя к
http: // localhost: 7001 / console и вход в систему с учетными данными сверху. Перейдите к «Службы> Источники данных» и нажмите кнопку «Создать» над таблицей. Выберите «Общий источник данных» и введите имя по вашему выбору (например, GalleriaPool) и введите jdbc / galleriaDS в качестве JNDI-имени. Выберите Derby в качестве Типа базы данных и нажмите «Далее». Выберите драйвер Derby (тип 4), нажмите «Далее» и «Далее» и введите свойства подключения (База данных: GALLERIATEST, Хост: localhost. Пользователь и Пароль: APP »и нажмите« Далее ». Если хотите, вы можете нажать нажмите кнопку «Проверить конфигурацию» сверху и убедитесь, что все настроено правильно.
Следующая самая сложная часть. Нам нужна сфера JDBC, подобная той, которую мы настроили для GlassFish. Первое отличие состоит в том, что мы на самом деле не создаем новую область, а добавляем механизм аутентификации к доступной. У WebLogic есть неприятное ограничение. Вы можете настроить столько областей безопасности, сколько захотите, но только одна из них может быть активной в данный момент времени. Это остановило меня на некоторое время, пока я не получил чаевые от
Мишеля Шильдмейера(спасибо, кстати!). Перейдите к «Области безопасности» и выберите «myrealm» из таблицы. Перейдите на вкладку «Поставщики». Выберите «Новый» над таблицей провайдеров аутентификации. Введите «GalleriaAuthenticator» в качестве имени и выберите «SQLAuthenticator» из раскрывающегося списка в качестве типа. Нажмите ОК Выберите GalleriaAuthenticator, установите флажок управления: Достаточно и сохраните. После этого перейдите на вкладку «Специфично для провайдера». Введите следующее:
Data Source Name: GalleriaPool Password Style Retained: unchecked Password Algorithm: SHA-512 Password Style: SALTEDHASHED SQL Get Users Password: SELECT PASSWORD FROM USERS WHERE USERID = ? SQL Set User Password: UPDATE USERS SET PASSWORD = ? WHERE USERID = ? SQL User Exists: SELECT USERID FROM USERS WHERE USERID = ? SQL List Users: SELECT USERID FROM USERS WHERE USERID LIKE ? SQL Create User: INSERT INTO USERS VALUES ( ? , ? ) SQL Remove User: DELETE FROM USERS WHERE USERID = ? SQL List Groups: SELECT GROUPID FROM GROUPS WHERE GROUPID LIKE ? SQL Group Exists: SELECT GROUPID FROM GROUPS WHERE GROUPID = ? SQL Create Group: INSERT INTO GROUPS VALUES ( ? ) SQL Remove Group: DELETE FROM GROUPS WHERE GROUPID = ? SQL Is Member: SELECT USERID FROM USERS_GROUPS WHERE GROUPID = ? AND USERID = ? SQL List Member Groups: SELECT GROUPID FROM USERS_GROUPS WHERE USERID = ? SQL List Group Members: SELECT USERID FROM USERS_GROUPS WHERE GROUPID = ? AND USERID LIKE ? SQL Remove Group Memberships: DELETE FROM USERS_GROUPS WHERE GROUPID = ? OR GROUPID = ? SQL Add Member To Group: INSERT INTO USERS_GROUPS VALUES( ?, ?) SQL Remove Member From Group: DELETE FROM USERS_GROUPS WHERE GROUPID = ? AND USERID = ? SQL Remove Group Member: DELETE FROM USERS_GROUPS WHERE GROUPID = ? Descriptions Supported: unchecked
Сохраните ваши изменения. и вернитесь на вкладку «Поставщики». Нажмите кнопку «Изменить порядок» и нажмите GalleriaAuthenticator в верхней части списка. Нажмите «ОК», когда закончите, и остановите ваш экземпляр WebLogic. Вы можете перезапустить его в любое время.
Настройте свои проекты
Java EE является переносимым. Правильно. И вы должны иметь возможность запускать то же самое развертывание без каких-либо изменений в WebLogic 12c. Это теория. На практике вам придется прикоснуться к развертыванию. Потому что у WebLogic есть некоторые проблемы с Hibernate. И это гораздо более капризно, когда речь идет о развертывании, чем GlassFish. Прежде всего вы должны создать папку «galleria-ear \ src \ main \ application \ META-INF». Поместите туда пустой файл weblogic-application.xml и вставьте в него следующий код:
Это говорит WebLogic, что предпочтение отдается пакетным библиотекам приложений по сравнению с уже присутствующими на сервере. Вперед. Нам нужно добавить зависимости Hibernate на ухо. В GlassFish мы пропустили этот шаг, поскольку установили пакет Hibernate вместе с сервером. Вот так. Откройте galleria-ear pom.xml и добавьте следующее в раздел зависимостей:
Вам также нужно взглянуть на плагин maven-ear и добавить следующее в <configuration>:
И, если вы уже там, удалите jarModule для кодека commons. Это не больно, но оно упаковано в папку ear / lib, так что вы можете пропустить это.
Затем перейдите к проекту galleria-jsf и откройте web.xml. <Login-config> является неполной и должна выглядеть так:
Вам также необходимо определить возможные роли, иначе сотрудники службы безопасности WebLogic начнут жаловаться.
Добавьте пустой файл weblogic.xml в папку galleria-jsf \ src \ main \ webapp \ WEB-INF и добавьте в нее следующие строки:
Здесь мы сопоставляем роль web.xml и роль WebLogic. Вы могли бы пропустить это, но мне так нравится, чтобы вы не запутались. Элемент session-descriptor заботится об имени файла cookie JSESSION. Если вы не измените его, у вас возникнут проблемы с вошедшими пользователями в консоль администратора.
Двигайтесь по проекту galleria-ejb. Создайте пустой файл weblogic-ejb-jar.xml в папке «galleria-ejb \ src \ main \ resources \ META-INF». Вставьте в него следующий код:
Сравнимый с web.xml / weblogic.xml, он также сообщает WebLogic, как сопоставить роли безопасности ejb-jar.xml с ролями WebLogic. Хорошо, откройте файл persistence.xml и добавьте следующие строки:
Первый явно выбирает диалект дерби для Hibernate. Второй рассказывает Hibernate, где и как искать транзакции. Все сделано. Теперь вы сможете снова собрать проект и развернуть его. Используйте консоль администратора или
NetBeans для ее развертывания. Спасибо, что нашли время, чтобы следовать этому длинному сообщению. Я надеюсь, что это было полезно!