Показаны сообщения с ярлыком Glassfish. Показать все сообщения
Показаны сообщения с ярлыком Glassfish. Показать все сообщения

пятница, 9 ноября 2012 г.

Glassfish 3.1.2 и проблема mysql авторизации

Тема уже не новая, но нашелся досадный баг. Все настроено по многочисленным мануалам и не раз, но логин и пароль пользователя не проходит.

В расширенных логах glassfish отыскалась такая строка:

Caused by: java.sql.SQLException: No database selected

Скорее всего при установке соединения (JDBC Connection Pool) не подхватывает имя базы, хотя ping честно работает. В качестве обхода этого явления можно отредактировать параметр URL в виде:

jdbc:mysql://127.0.0.1:3306/yourbase?user=user&password=password

обратите внимание, URL все большие буквы, потому как есть там и Url - он не влияет на результат.

NetBeans и ошибка "Not a valid GlassFish Server installation"

Проблема получена с NetBeans 7.1.1 и Glassfish 3.1.2.2

Если Вы попытались настроить в NetBeans новый сервер Tools->Servers->Add server->Glassfish Server 3+ и заполучили ошибку "Not a valid GlassFish Server installation" то решить можно довольно не тривиальным способом - переименовать файл 

...glassfish3/glassfish/lib/install/applications/__admingui/WEB-INF/lib/console-core-3.1.2.1-SNAPSHOT.jar

в 

console-core-3.1.2.jar

Собственно на этом все, ошибка устранена. Весьма досадное упущение со стороны NetBeans

Glassfish и non-root


Создаем пользователя glassfish (или как вам больше нравится):

groupadd glassfish
useradd -s /bin/bash -d /home/glassfish -m -g glassfish glassfish

необходимо изменить собственника на каталог с установкой glassfish - к примеру /opt/glassfish3


chown glassfish.glassfish /opt/glassfish3/ -R

Теперь запустим и остановим вручную из-под нашего юзера:

 su -l glassfish -c "/opt/glassfish3/glassfish/bin/asadmin start-domain"

получим запрос на ввод пароля для admin
Enter an admin password for user "admin"> 
вводим пароль дважды и проверим на порту 8080 ответ от сервера и на 4848 войти как "admin" 
(в дальнейшем сменить пароль можно "asadmin> change-admin-password" )
Если на 4848 логинится с внешнего ip - получим ошибку "Configuration Error
Secure Admin must be enabled to access the DAS remotely. " - решается с помощью
asadmin> enable-secure-admin
вводим логин admin и пароль и перезапускаем (stop-domain, start-domain)
и если все нормально - останавливаем:

su -l glassfish -c "/opt/glassfish3/glassfish/bin/asadmin stop-domain"


Изменим пароль "master":

/opt/glassfish3/glassfish/bin/asadmin change-master-password --savemasterpassword=true
вводим старый пароль "changeit", затем вводим новый два раза.


Теперь можно добавить скрипт автоматического запуска в /etc/init.d - соотвественно отредактировав его.
#!/bin/sh
GF_USER=glassfish
GF_HOME=/opt/glassfish3/glassfish
ASADMIN=$GF_HOME/bin/asadmin
DOMAIN=domain1
case $1 in
start)
start-stop-daemon -c $GF_USER --start --exec $ASADMIN start-domain $DOMAIN
;;
stop)
start-stop-daemon -c $GF_USER --start --exec $ASADMIN stop-domain $DOMAIN
;;
restart)
start-stop-daemon -c $GF_USER --start --exec $ASADMIN stop-domain $DOMAIN
start-stop-daemon -c $GF_USER --start --exec $ASADMIN start-domain $DOMAIN
;;
*)
  echo "Usage: /etc/init.d/glassfish3 {start|stop|restart}"
  exit 1
;;
esac
exit 0

Меняем права для запуска:

sudo chmod a+x /etc/init.d/glassfish3
И добавляем, если нужно, в автозагрузку:

sudo update-rc.d glassfish3 defaults




суббота, 22 сентября 2012 г.

Glassfish и Slackware

Качаем тут свежую версию Oracle GlassFish Server
http://www.oracle.com/technetwork/middleware/glassfish/downloads/index.html
в моем случае это ogs-3.1.2.2.zip

Распаковываем и переносим каталог glassfish3 в /opt

Создаем новый домен.

Запуск консоли админа /opt/glassfish3/bin/asadmin

Создаем домен командой
asadmin> create-domain _домен_
Отвечаем на вопросы (админ, пароль).


добавим в него JDBC-драйвера http://dev.mysql.com/downloads/connector/j/5.0.html
mysql-connector-java-5.1.20-bin.jar

Распаковываем и помещаем в /opt/glassfish3/glassfish/domains/_домен_/lib/ext

Запускаем домен
asadmin> start-domain


Заходим браузером на порт 4848 и авторизуемся. Если получено что-то вроде "Secure Admin must be enabled to access the DAS remotely" - необходимо разрешить доступ

asadmin> enable-secure-admin
Enter admin user name> admin
Enter admin password for user "admin">
и перезапустить домен.

Слева в меню Common Tasks -> JDBC нужно создать пул подключений (Connection Pool), ответив на вопросы. 2 экрана - вводим имя пула, выбираем нужный драйвер, url, логин и пароль к базе

После создания пула, можно добавить ресурс, который будет ссылаться на этот пул подключений. Имя ресурса будет использоваться Java-приложением для работы с СУБД. (JDBC Resource)
Вводим имя ресурса, выбираем пул. По завершении можно проверить подключение к СУБД. Для этого нужно открыть для изменения параметров пул соединений и воспользоваться кнопкой «Ping»

Glassfish + Mysql - настройка

Размещаем в /opt/glassfish3

Запуск консоли админа /opt/glassfish3/bin/asadmin

Создаем домен командой
asadmin> create-domain _домен_
Отвечаем на вопросы.

полезное описание http://pgtk.edu.ru/gooamoko/doku.php?id=java_glassfish_quickstart

добавим в него JDBC-драйвера http://dev.mysql.com/downloads/connector/j/5.0.html
mysql-connector-java-5.1.20-bin.jar

Распаковываем и помещаем в /opt/glassfish3/glassfish/domains/_домен_/lib/ext

Запускаем домен
asadmin> start-domain

Идем браузером на порт 4848 и авторизуемся. Если получено что-то вроде "Secure Admin must be enabled to access the DAS remotely" - необходимо разрешить доступ
asadmin> enable-secure-admin
Enter admin user name> admin
Enter admin password for user "admin">
и перезапустить домен.

Слева в меню Common Tasks -> JDBC нужно создать пул подключений (Connection Pool), ответив на вопросы. 2 экрана - вводим имя пула, выбираем нужный драйвер, url, логин и пароль к базе

После создания пула, можно добавить ресурс, который будет ссылаться на этот пул подключений. Имя ресурса будет использоваться Java-приложением для работы с СУБД. (JDBC Resource)
Вводим имя ресурса, выбираем пул. По завершении можно проверить подключение к СУБД. Для этого нужно открыть для изменения параметров пул соединений и воспользоваться кнопкой «Ping»

понедельник, 23 июля 2012 г.

Glassfish и предупреждение Unable to set request character encoding to UTF-8

Если в логах Glassfish появляются строки вида:

WARNING: PWC4011: Unable to set request character encoding to UTF-8 from context /_приложение_ because request parameters have already been read, or ServletRequest.getReader() has already been called

То нужно явно указать кодировку utf-8 в glassfish-web.xml

<parameter-encoding default-charset="UTF-8">
</parameter-encoding>

пятница, 20 июля 2012 г.

Glassfish и деплой приложений.

Команда
asadmin deploy _приложение_.war

запросит логин админа и пароль.

Если же выдало что-то вроде

remote failure: Error occurred during deployment: Application with name GglWeb is already registered. Either specify that redeployment must be forced, or redeploy the application. Or if this is a new deployment, pick a different name. Please see server.log for more details.
Command deploy failed.

т.е. нас предупредили, что приложение уже есть.
используем
asadmin deploy --force _приложение_.war