powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / persistence.xml не деплоится
95 сообщений из 95, показаны все 4 страниц
persistence.xml не деплоится
    #39429568
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webapp/WEB-INF/classes/META-INF/persistence.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="main" transaction-type="RESOURCE_LOCAL">
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mezoline"/>
            <property name="javax.persistence.jdbc.user" value="mezoline"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.password" value="mezoline1234"/>
        </properties>
    </persistence-unit>
</persistence>




Код: plaintext
1.
2.
3.
4.
[2017-03-30T01:39:15.183+0700] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=47 _ThreadName=admin-listener(3)] [timeMillis: 1490812755183] [levelValue: 1000] [[
  Exception while deploying the app [com.mezoline-1.0-SNAPSHOT] : Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150605-31e8258): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: java.net.ConnectException : Ошибка соединения с сервером localhost на порту 1527 с сообщением Connection refused: connect.
Error Code: 0]]

Что за порт 1527?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429576
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это порт оракла. Подозреваю что файл вообще не прочитался из-за его странного расположения. META-INF должен быть в корне архива а не в classes
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429664
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я отсюда информацию взял:
https://docs.oracle.com/cd/E19159-01/819-3669/bnbrj/index.html
авторIf you package the persistence unit as a set of classes in a WAR file, persistence.xml should be located in the WAR file’s WEB-INF/classes/META-INF directory.

Как я понял, с его расположением несколько вариантов и если его не туда расположить, то сам сервлет выдает ошибку:

"java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName main"
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429668
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, падает вообще при попытке инъекции:

Код: java
1.
2.
3.
    
    @PersistenceUnit(unitName = "test1")
    private EntityManagerFactory entityManagerFactory;
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429669
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что имена разные, не обращайте внимание, сейчас конфиг такой:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">

    <persistence-unit name="test1" transaction-type="RESOURCE_LOCAL">
        <!--<class>com.test.jpa.Student</class>-->
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url"    value="jdbc:mysql://localhost/test" />
            <property name="javax.persistence.jdbc.user" value="mezoline" />
            <property name="javax.persistence.jdbc.password" value="mezoline1234" />
            <!--<property name="eclipselink.ddl-generation" value="create-tables" />-->
            <!--<property name="eclipselink.ddl-generation.output-mode" value="database" />-->
        </properties>
    </persistence-unit>
</persistence>
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429675
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettЯ отсюда информацию взял:
https://docs.oracle.com/cd/E19159-01/819-3669/bnbrj/index.html

М-дя. JEE становится всё веселее.

В общем, похоже на очередной косяк GlassFish. Как и здесь:
http://stackoverflow.com/questions/17895263/cant-get-glassfish-to-connect-to-mysql
я бы советовел заменить конфигурацию на DataSource и прописать соединение в GlassFish, а не PU.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429676
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Код: java
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns:xsi=... xsi:schemaLocation=... version="2.0" xmlns=...>
    <persistence-unit name="test1" transaction-type="JTA">
        ...
    </persistence-unit>
</persistence>
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429691
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman,

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">

    <persistence-unit name="test1" transaction-type="JTA">
        <jta-data-source>java:comp/DefaultDataSource</jta-data-source>
        <class>com.mezoline.domain.User</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url"    value="jdbc:mysql://localhost/test" />
            <property name="javax.persistence.jdbc.user" value="mezoline" />
            <property name="javax.persistence.jdbc.password" value="mezoline1234" />
            <!--<property name="eclipselink.ddl-generation" value="create-tables" />-->
            <!--<property name="eclipselink.ddl-generation.output-mode" value="database" />-->
        </properties>
    </persistence-unit>

</persistence>



Код: plaintext
1.
2.
3.
4.
[2017-03-30T13:12:46.484+0700] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=46 _ThreadName=admin-listener(2)] [timeMillis: 1490854366484] [levelValue: 1000] [[
  Exception while deploying the app [com.mezoline-1.0-SNAPSHOT] : Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150605-31e8258): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: java.net.ConnectException : Ошибка соединения с сервером localhost на порту 1527 с сообщением Connection refused: connect.
Error Code: 0]]
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429698
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
Код: plaintext
java.net.ConnectException : Ошибка соединения с сервером localhost на порту 1527 с сообщением Connection  refused : connect.
Это скорее из-за файерволла, либо демон MySql не запущен
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429709
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsmanHett
Код: plaintext
java.net.ConnectException : Ошибка соединения с сервером localhost на порту 1527 с сообщением Connection  refused : connect.
Это скорее из-за файерволла, либо демон MySql не запущен
Так он даже не на тот порт ломится, у MySQL - 3306.
Такое ощущение что он игнорирует все опции и ломится по дефолтным настройкам.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429710
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczHettЯ отсюда информацию взял:
https://docs.oracle.com/cd/E19159-01/819-3669/bnbrj/index.html

М-дя. JEE становится всё веселее.

В общем, похоже на очередной косяк GlassFish. Как и здесь:
http://stackoverflow.com/questions/17895263/cant-get-glassfish-to-connect-to-mysql
я бы советовел заменить конфигурацию на DataSource и прописать соединение в GlassFish, а не PU.

Там тоже все весело, после обновления до версии 4.1 веб-интерфейс на страницах этих выдает RuntimeException. На StackOverflow пишут, что через конфиги домена делать надо -_\\
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429714
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При попытке создать connection pool
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
HTTP Status 500 - Internal Server Error
type Exception report
messageInternal Server Error
descriptionThe server encountered an internal error that prevented it from fulfilling this request.
exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1.1 logs.
GlassFish Server Open Source Edition 4.1.1

При попытке создать JDBC Resource

Код: plaintext
class java.lang.RuntimeException
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429715
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Откачу наверное его.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429716
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
Код: xml
1.
 <property name="javax.persistence.jdbc.url"    value="jdbc:mysql://localhost:3306/test" />
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429719
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Зачем вы мучаетесь с GlassFish? Там ещё такая ерунда может быть, что он падает пытаясь соединится с MySQL, а потом ещё прётся в дефолтные настройки. В логах точно ничего кроме этой ошибки нет?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429729
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettе обновления до версии 4.1 веб-интерфейс н
поэтому я до сих пор на тройке.
Не перейду пока ГУИ не будет работать.
С GlassFish надо только через ГУИ веб админку работать (JNDI - кнопка Тест соединения)
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429759
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsmanHett
Код: xml
1.
 <property name="javax.persistence.jdbc.url"    value="jdbc:mysql://localhost:3306/test" />





Указание порта ничего не изменило (я так понимаю если бы он указанный драйвер начал использовать, то и дефолтные настройки (в том числе и порт) взял бы из него?)

Сейчас конфиг такой:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">

    <persistence-unit name="test1" transaction-type="JTA">
        <jta-data-source>java:comp/DefaultDataSource</jta-data-source>
        <class>com.mezoline.domain.User</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url"    value="jdbc:mysql://localhost:3306/test" />
            <property name="javax.persistence.jdbc.user" value="mezoline" />
            <property name="javax.persistence.jdbc.password" value="mezoline1234" />
            <!--<property name="eclipselink.ddl-generation" value="create-tables" />-->
            <!--<property name="eclipselink.ddl-generation.output-mode" value="database" />-->
        </properties>
    </persistence-unit>

</persistence>



Правда сказать, я еще не совсем догоняю, если я указывать датасорс java:comp/DefaultDataSource (который в гласфиш определен), как вообще будет происходить взаимодействие?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429763
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczHett,

Зачем вы мучаетесь с GlassFish? Там ещё такая ерунда может быть, что он падает пытаясь соединится с MySQL, а потом ещё прётся в дефолтные настройки. В логах точно ничего кроме этой ошибки нет?

Нуу... Книженцию читал, там его нахваливали, якобы эталон реализации стандартов EE.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429767
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettэталон реализации стандартов EE http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429769
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой сервер приложений вы бы посоветовали?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429774
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettкак вообще будет происходить взаимодействие?
не понятно почему по пути JNDI не пошёл.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429832
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://java.net/jira/browse/GLASSFISH-21314

Created: 23/Feb/15 10:11 PM
Updated: 08/Feb/17 6:48 AM
Resolved: 08/Jan/16 12:15 PM

У меня и сейчас воспроизводится, хотя написано что бэкпортед в 4.1.2
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429841
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,
Если у вас нет веб-админки, то как вы FINE уровень логах ставили? Руками конфиге?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429844
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettА какой сервер приложений вы бы посоветовали?
JBoss
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429845
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettНуу... Книженцию читал, там его нахваливали, якобы эталон реализации стандартов EE.
"Эталонный" в данном контексте совсем не значит "качественно реализованный". Он на столько плох что Oracle отказались от того чтобы саппортить коммерческую версию сервера. Его баги тут на форуме sql.ru всплывают каждый пол-года.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429851
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettПравда сказать, я еще не совсем догоняю, если я указывать датасорс java:comp/DefaultDataSource (который в гласфиш определен), как вообще будет происходить взаимодействие?
1. Используйте админку сервера чтобы создать свой новый DataSource для MySQL.
2. Убедитесь что драйвер MySQL уставнолен в сервере
3. Используйте имя своего нового DataSource вместо DefaultDataSource
4. Уберите ваши JDBC properties из persistence.xml.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429858
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Hett,
Если у вас нет веб-админки, то как вы FINE уровень логах ставили? Руками конфиге?

Админка то есть, только атм не все работает.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429881
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczHettА какой сервер приложений вы бы посоветовали?
JBoss

Это уже WildFly который?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429884
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettАдминка то есть,
тогда 5 минут займёт создание коннекта через админку. Так?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429889
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Издеваетесь? :)
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429890
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логи
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429892
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettЭто уже WildFly который?
Ну, или WildFly. Даже Tomcat, вроде, уже в JPA умеет.
WildFly это web profile, в то время как JBoss это полная реализации JEE спеки.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429900
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettИздеваетесь? :)
нет. У меня на сайте тройка.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429911
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczHettЭто уже WildFly который?
Ну, или WildFly. Даже Tomcat, вроде, уже в JPA умеет.
WildFly это web profile, в то время как JBoss это полная реализации JEE спеки.

Что-то я запутался.
WildFly - это Application Server (как и GlassFish)?
JBoss тогда что? Отдельная реализация всех спек?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429913
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123У меня на сайте тройка.
для Оракле
---------------------------------------------
- ojdbc14.jar с сайта Oracle (10 версию) в domains/domain1/lib
---------------
- Resources -> JDBC - JDBC Connection Pools
- new poolOra, javax.sql.ConnectionPoolDataSource,
vendor-Oracle
url для Connection Pool -
jdbc:oracle:thin:@IPPPPPPP:1521:orclb (orclb - SID.... Global DB Name)
User+Pas+url остальные prop удалить
- Resource - JDBC ресурс
Называем наш ресурс (JNDI Name) jdbc/ConnPoolOra
проверка - ping на вкладке general
-----------
Всё. Кнопка пинг должна работать.
Иначе:
- лог сюда. Скрины шагов желательно
- откатить на тройку сервер. Читал что 4-ка глючная.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429921
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Petro123У меня на сайте тройка.
для Оракле
---------------------------------------------
- ojdbc14.jar с сайта Oracle (10 версию) в domains/domain1/lib
---------------
- Resources -> JDBC - JDBC Connection Pools
- new poolOra, javax.sql.ConnectionPoolDataSource,
vendor-Oracle
url для Connection Pool -
jdbc:oracle:thin:@IPPPPPPP:1521:orclb (orclb - SID.... Global DB Name)
User+Pas+url остальные prop удалить
- Resource - JDBC ресурс
Называем наш ресурс (JNDI Name) jdbc/ConnPoolOra
проверка - ping на вкладке general
-----------
Всё. Кнопка пинг должна работать.
Иначе:
- лог сюда. Скрины шагов желательно
- откатить на тройку сервер. Читал что 4-ка глючная.

Правильно ли я понимаю, что если есть в списке драйвер, то его ставить дополнительно не нужно?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429923
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нажимаю Next
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429931
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логи

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
[2017-03-30T16:08:24.855+0700] [glassfish 4.1] [INFO] [] [org.glassfish.admingui] [tid: _ThreadID=47 _ThreadName=admin-listener(5)] [timeMillis: 1490864904855] [levelValue: 800] [[
  Exception Occurred :null]]

[2017-03-30T16:08:37.796+0700] [glassfish 4.1] [SEVERE] [error.finding.properties] [javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.util] [tid: _ThreadID=43 _ThreadName=admin-listener(1)] [timeMillis: 1490864917796] [levelValue: 1000] [[
  RAR8059: Exception while trying to find properties of class [ com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource ], set log-level toFINE for more information, com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource]]

[2017-03-30T16:08:37.797+0700] [glassfish 4.1] [SEVERE] [error.finding.properties] [javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.util] [tid: _ThreadID=43 _ThreadName=admin-listener(1)] [timeMillis: 1490864917797] [levelValue: 1000] [[
  RAR8059: Exception while trying to find properties of class [ com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource ], set log-level toFINE for more information, com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource]]

[2017-03-30T16:08:37.872+0700] [glassfish 4.1] [WARNING] [] [javax.enterprise.web] [tid: _ThreadID=45 _ThreadName=admin-listener(3)] [timeMillis: 1490864917872] [levelValue: 900] [[
  StandardWrapperValve[FacesServlet]: Servlet.service() for servlet FacesServlet threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
	at org.apache.catalina.connector.Response.getWriter(Response.java:777)
	at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:224)
	at com.sun.faces.context.ExternalContextImpl.getResponseOutputWriter(ExternalContextImpl.java:851)
	at com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter(PartialViewContextImpl.java:504)
	at com.sun.faces.context.PartialViewContextImpl.access$300(PartialViewContextImpl.java:79)
	at com.sun.faces.context.PartialViewContextImpl$DelayedInitPartialResponseWriter.getWrapped(PartialViewContextImpl.java:642)
	at javax.faces.context.PartialResponseWriter.startDocument(PartialResponseWriter.java:120)
	at com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError(AjaxExceptionHandlerImpl.java:202)
	at com.sun.faces.context.AjaxExceptionHandlerImpl.handle(AjaxExceptionHandlerImpl.java:127)
	at javax.faces.context.ExceptionHandlerWrapper.handle(ExceptionHandlerWrapper.java:100)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:233)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
	at org.apache.catalina.core.StandardPipeline.doChainInvoke(StandardPipeline.java:678)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
	at java.lang.Thread.run(Thread.java:745)
]]


...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429932
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettПравильно ли я понимаю, что если есть в списке драйвер, то его ставить дополнительно не нужно?
это недолго. Зайди в папку, удали файл, перегрузи, посмотри список....
Точно не скажу. Я сначала кидал Jar в lib
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429937
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,
скорее всего ты просто драйвером в lib не занимался.
Как то так.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429949
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну в общем-то видимо да:

java.lang.ClassNotFoundException: com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429969
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettНу в общем-то видимо да:
вывод:
- конфиг.xml ни при чём
- использовать JNDI
- в GlassFish работа через веб-админку и ГУИ в первую очередь.
Как то так.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429986
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наличие драйвера проблему не решило:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
[2017-03-30T16:33:42.900+0700] [glassfish 4.1] [INFO] [] [org.glassfish.admingui] [tid: _ThreadID=45 _ThreadName=admin-listener(3)] [timeMillis: 1490866422900] [levelValue: 800] [[
  Exception Occurred :null]]

[2017-03-30T16:33:58.709+0700] [glassfish 4.1] [WARNING] [] [javax.enterprise.web] [tid: _ThreadID=45 _ThreadName=admin-listener(3)] [timeMillis: 1490866438709] [levelValue: 900] [[
  StandardWrapperValve[FacesServlet]: Servlet.service() for servlet FacesServlet threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
	at org.apache.catalina.connector.Response.getWriter(Response.java:777)
	at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:224)
	at com.sun.faces.context.ExternalContextImpl.getResponseOutputWriter(ExternalContextImpl.java:851)
	at com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter(PartialViewContextImpl.java:504)
	at com.sun.faces.context.PartialViewContextImpl.access$300(PartialViewContextImpl.java:79)
	at com.sun.faces.context.PartialViewContextImpl$DelayedInitPartialResponseWriter.getWrapped(PartialViewContextImpl.java:642)
	at javax.faces.context.PartialResponseWriter.startDocument(PartialResponseWriter.java:120)
	at com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError(AjaxExceptionHandlerImpl.java:202)
	at com.sun.faces.context.AjaxExceptionHandlerImpl.handle(AjaxExceptionHandlerImpl.java:127)
	at javax.faces.context.ExceptionHandlerWrapper.handle(ExceptionHandlerWrapper.java:100)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:233)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
	at org.apache.catalina.core.StandardPipeline.doChainInvoke(StandardPipeline.java:678)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
	at java.lang.Thread.run(Thread.java:745)
]]


...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39429991
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
Код: plaintext
getOutputStream() has already been called for this response

причем здесь драйвер?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39430040
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяHett
Код: plaintext
getOutputStream() has already been called for this response

причем здесь драйвер?

До этого в логах присутствовала еще ошибка об отсутствии драйвера.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39430045
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123HettНу в общем-то видимо да:
вывод:
- конфиг.xml ни при чём
- использовать JNDI
- в GlassFish работа через веб-админку и ГУИ в первую очередь.
Как то так.

JNDI вообще не открывается:
class java.lang.RuntimeException

Мне честно говоря уже не охота разбираться почему. Рассматриваю другие серверы приложений.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39430052
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettJNDI вообще не открывается:
он после кнопки коннект-тест идёт. Это же понятно.
HettМне честно говоря уже не охота разбираться почему. Рассматриваю другие серверы приложений.
да мне фиолетово. У тебя одно из трёх:
- сервер вместо 3-ки - 4-ка
- драйвер в lib
- неверный вендор класс в выпадающем списке
----------
Удачи!
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39430231
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Wildfly все получилось. Правда пришлось поковыряться в конфигах его тоже (добавить драйвер)
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39431233
guest2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczHettЭто уже WildFly который?
Ну, или WildFly. Даже Tomcat, вроде, уже в JPA умеет.
WildFly это web profile, в то время как JBoss это полная реализации JEE спеки.

Ничего подобного. Wildfly - это Full Profile. Это по сути бесплатная версия JBoss EAP. В продакшене используем версию 10.0 - работает стабильно и безглючно. До этого использовали 8.2, тоже нареканий не было.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39431234
guest2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettBlazkowiczпропущено...

Ну, или WildFly. Даже Tomcat, вроде, уже в JPA умеет.
WildFly это web profile, в то время как JBoss это полная реализации JEE спеки.

Что-то я запутался.
WildFly - это Application Server (как и GlassFish)?
JBoss тогда что? Отдельная реализация всех спек?

WildFly - это тот же JBoss EAP, только бесплатно и без платной поддержки.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39431421
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не хочу создавать новый топик.
Почему он повторяет запрос?

Код: java
1.
2.
3.
        log(user.getName());
        for (Role role : user.roles)
            log(role.getRole_name());



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
02:21:44,911 INFO  [io.undertow.servlet] (default task-128) com.mezoline.servlet.IndexServlet: admin
02:21:44,911 INFO  [stdout] (default task-128) Hibernate: select roles0_.user_name as user_nam1_0_0_, roles0_.role_name as role_nam2_0_0_, roles0_.user_name as user_nam1_0_1_, roles0_.role_name as role_nam2_0_1_ from role roles0_ where roles0_.user_name=?
02:21:44,912 INFO  [stdout] (default task-128) Hibernate: select user0_.id as id1_1_0_, user0_.created_at as created_2_1_0_, user0_.name as name3_1_0_, user0_.updated_at as updated_4_1_0_ from user user0_ where user0_.name=?
02:21:44,912 INFO  [stdout] (default task-128) Hibernate: select user0_.id as id1_1_0_, user0_.created_at as created_2_1_0_, user0_.name as name3_1_0_, user0_.updated_at as updated_4_1_0_ from user user0_ where user0_.name=?
02:21:44,913 INFO  [stdout] (default task-128) Hibernate: select user0_.id as id1_1_0_, user0_.created_at as created_2_1_0_, user0_.name as name3_1_0_, user0_.updated_at as updated_4_1_0_ from user user0_ where user0_.name=?
02:21:44,913 INFO  [io.undertow.servlet] (default task-128) com.mezoline.servlet.IndexServlet: ADMINISTRATOR
02:21:44,913 INFO  [io.undertow.servlet] (default task-128) com.mezoline.servlet.IndexServlet: USER
02:21:44,913 INFO  [io.undertow.servlet] (default task-128) com.mezoline.servlet.IndexServlet: TEST


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
class Role {
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "user_name", referencedColumnName = "name")
    private User user;
}


class User {
    @OneToMany(mappedBy = "user")
    public List<Role> roles;
}
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39431434
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в логе есть параметризованный запрос и три пользователя, то, вероятно, запрос выполнен трижды - с разными значениями параметров.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39431479
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
HettНа Wildfly все получилось. Правда пришлось поковыряться в конфигах его тоже (добавить драйвер)Чего там мучиться? Файд драйвера деплоится как обычное приложение и сразу становится доступным при создании датасорца. Помнится, были косяки в кластерной конфигурации драйвера с видимостью самого драйвера, но, возможно, в 10-ке пофиксили.

Я обратил внимание, что когда попробовали перейти на датасорц в JNDI, использовалось имя
Код: xml
1.
<jta-data-source>java:comp/DefaultDataSource</jta-data-source>


Это неправильно. GF сам достраивает имена суффиксом "java:...". Обычно имена задаются в таком виде "jdbc/name". И ссылаются на них так же. А вот в Wildfly (по-крайней мере в 8.2.1) надо везде полностью. Проверять, конечно же, не буду, потому как GF - спасибо, не надо )) Вон, Петр хоть и живет с 3-кой, но я хорошо помню 3.1.2.2 и больше повторять опыт не хочу.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39431485
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
HettНе хочу создавать новый топик.
Почему он повторяет запрос?

Код: java
1.
2.
3.
        log(user.getName());
        for (Role role : user.roles)
            log(role.getRole_name());




Так что же Вы хотели?
Код: java
1.
@OneToMany(mappedBy = "user")


По умолчанию здесь подразумевается fetch=LAZY, т.е. когда получили список пользователей, поле roles не было инициализировано. А когда полезли за значением в эту коллекцию и была выполненена серия запросов. Это lazy load в JPA, с ним надо быть аккуратным, иначе производительность можно убить ловко )

Кстати, у Вас направление связи между Role и User некорректное: у User должно быть @ManyToOne, а у Role - @OneToMany. А может явное у Role вообще не нужно. Иначе вы не заведете несколько пользователей с одной и той же ролью.

А если хотите иметь возможность пользователю назначать несколько ролей, то вообще требуется @ManyToMany.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39431802
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WGAПо умолчанию здесь подразумевается fetch=LAZY, т.е. когда получили список пользователей, поле roles не было инициализировано. А когда полезли за значением в эту коллекцию и была выполненена серия запросов. Это lazy load в JPA, с ним надо быть аккуратным, иначе производительность можно убить ловко )

user - это один пользователь.
Когда мы обратились к полю roles, был сгенерирован запрос на получение списка Ролей

Код: plaintext
1.
02:21:44,911 INFO  [stdout] (default task-128) Hibernate: select roles0_.user_name as user_nam1_0_0_, roles0_.role_name as role_nam2_0_0_, roles0_.user_name as user_nam1_0_1_, roles0_.role_name as role_nam2_0_1_ from role roles0_ where roles0_.user_name=?

У Роли есть обратная связь на пользователя, которая, как я подозреваю и вызывала 3 последующих запроса:

Код: plaintext
1.
02:21:44,912 INFO  [stdout] (default task-128) Hibernate: select user0_.id as id1_1_0_, user0_.created_at as created_2_1_0_, user0_.name as name3_1_0_, user0_.updated_at as updated_4_1_0_ from user user0_ where user0_.name=?

Но я не обращался к этой связи, как видно из кода.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39431803
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WGAКстати, у Вас направление связи между Role и User некорректное: у User должно быть @ManyToOne, а у Role - @OneToMany. А может явное у Role вообще не нужно. Иначе вы не заведете несколько пользователей с одной и той же ролью.

У пользователя несколько ролей может быть. Поэтому и связь OneToMany.
Одна запись в таблице role может принадлежать только одному пользователю, поэтому связь ManyToOne.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39431866
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WGAВон, Петр хоть и живет с 3-кой, но я хорошо помню 3.1.2.2 и больше повторять опыт не хочу.
да. Я сознаю что у меня сайт-пример только как демка. Большой нагрузки там нет.
Нужно разбираться конкретно.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39431867
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,
всё таки лучше отдельный топик. Думай и о других тоже.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432699
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
HettWGAКстати, у Вас направление связи между Role и User некорректное: у User должно быть @ManyToOne, а у Role - @OneToMany. А может явное у Role вообще не нужно. Иначе вы не заведете несколько пользователей с одной и той же ролью.

У пользователя несколько ролей может быть. Поэтому и связь OneToMany.
Одна запись в таблице role может принадлежать только одному пользователю, поэтому связь ManyToOne.Вот это и странно. Роль - это шаблон разрешений на набор действий, чтобы не копировать кучу индивидуальных разрешений для каждого пользователя. Как двоим пользователям назначить одну и ту же роль? Например, нормально в системе иметь несколько равноправных "админов", "менеджеров" и т.п.

Если пользователь может обладать несколькими ролями, то тип связи должен быть "многие-ко-многим".
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432707
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С помощью второй таблицы и назначить:

user_name, role_name
ivan RESELLER
ivan ADMIN
petr MODERATOR
ololosh ADMIN
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432708
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WGA,
маппинг ролей в GlassFish

роли приложения как угодно соотносятся с ролями АппСерверными
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432709
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettС помощью второй таблицы и назначить:
вариант № 2 - декларативно в*.xml
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432716
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня Dbrealm, не вижу смысла мешать все в кучу.
Да и вопрос не в нем, просто как пример связей между Entity привел.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432718
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*JDBCRealm
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432719
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
Petro123WGAВон, Петр хоть и живет с 3-кой, но я хорошо помню 3.1.2.2 и больше повторять опыт не хочу.
да. Я сознаю что у меня сайт-пример только как демка. Большой нагрузки там нет.
Нужно разбираться конкретно.Наилучший выбор в настоящее время - Wildfly. Сейчас работаю над проектом под 10.1. Я просто кайфую от реактивного деплоя после spring-slow-boot Даже Weblogic вызывает больше теплых чувств ) Но у нас не было лицензии на WLS 12 и, естественно, саппорта тоже. Уверен, при платной поддержке многие баги ушли бы.

Единственное, что мне не нравилось еще в 8.2.1 - довольно сложная настройка кластерной конфигурации для тестового сервера. Слишком глубоко надо было погружаться в детали JGroups, чтобы поднять несколько групп серверов без конфликтов. Судя по консоли администрирования 10-й версии вряд ли что-то упростилось...

Вообще выбор сервера приложений - отдельная большая тема. Тут и так уже намешано )
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432725
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettУ меня Dbrealm, не вижу смысла мешать все в кучу.
мы вроде чётко отделяем и оговариваем.
Маппинг ролей это первая фича JavaEE.
Если её писать руками, то это странно.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432739
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
Petro123WGA,
маппинг ролей в GlassFish

роли приложения как угодно соотносятся с ролями АппСервернымиА эта картинка как-то противоречит сказанному мной?

Честно говоря, картинка больше тумана наводит, чем проясняет вопрос JEE авторизации ) Какие придумали "application role"...

Модель безопасности JEE выглядит следующим образом.

1. User связывается с Group отношением many-to-many . За эту связь отвечает внешний источник (БД, LDAP и т.д.).
2. Group связана с Role отношением many-to-many . Эта связь устанавливается в дескрипторе конкретного сервера приложений (jboss-web.xml, glassfish-web.xml и т.п.). Возможен вариант назначения Role для User в обход Group, но обычно все же через группы.
3. Имена ролей используются в авторизации выполнения действий через аннотацию @RolesAllowed.

Как-то так. Но в любом случае, связь между пользователем и ролями не one-to-many.

HettС помощью второй таблицы и назначить:

user_name, role_name
ivan RESELLER
ivan ADMIN
petr MODERATOR
ololosh ADMINОтвечу просто - так не делается.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432743
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WGAА эта картинка как-то противоречит сказанному мной?
я не противоречил. Я напомнил ТС'у про маппинг не в коде а декларативно.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432746
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123HettУ меня Dbrealm, не вижу смысла мешать все в кучу.
мы вроде чётко отделяем и оговариваем.
Маппинг ролей это первая фича JavaEE.
Если её писать руками, то это странно.

Как понять "руками"? Вы что, после регистрации каждого нового пользователя пойдете XML конфиг чтобы прописать realm для него?

Авторизацией и маппингом занимается контейнер, берет он данные из БД:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 <security-domain name="secureDomain" cache-type="default">
                    <authentication>
                        <login-module code="Database" flag="required">
                            <module-option name="dsJndiName" value="java:jboss/datasources/UserDS"/>
                            <module-option name="principalsQuery" value="select passwd from Users where username=?"/>
                            <module-option name="rolesQuery" value="select role, 'Roles' from UserRoles where username=?"/>
                            <module-option name="hashAlgorithm" value="SHA-256"/>
                            <module-option name="hashEncoding" value="base64"/>
                        </login-module>
                    </authentication>
                </security-domain>
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432748
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettВы что, после регистрации каждого нового пользователя
вы перепутали РОЛЬ и ПОЛЬЗОВАТЕЛЬ
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432751
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettАвторизацией и маппингом занимается контейнер, берет он данные из БД:
вы рано ушли с GlassFish. Там нет на экране
Код: java
1.
<module-option name="principalsQuery" value="select passwd from Users where username=?"/>
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432752
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1. User связывается с Group отношением many-to-many. За эту связь отвечает внешний источник (БД, LDAP и т.д.).
Роли заданы в <security-constraint>
Маппинг ролей в моем случае в СУБД.
В конечном счете да, связь получается многие-ко-многим, но это если рассматривать роль в целом и пользователя. В моем же случае если рассматривать таблицу Roles - это и есть таблица связей между ролями и пользователями. Но между этой таблицей (Role) и таблицей User связь много-к-одному.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432757
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123HettВы что, после регистрации каждого нового пользователя
вы перепутали РОЛЬ и ПОЛЬЗОВАТЕЛЬ

Нет. Не перепутал. Пользователю роли как-то нужно назначать.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432761
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Код: xml
1.
2.
3.
4.
<security-role-mapping>
		<role-name>role_1</role-name>
		<group-name>role_из базы данных</group-name>
</security-role-mapping>
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432764
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

HettВы что, после регистрации каждого нового пользователя пойдете XML конфиг править, чтобы прописать realm для него?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432768
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

даже если так, что изменится то? В бд это будет называться группы и смысл останется тот же?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432781
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettPetro123,
даже если так, что изменится то? В бд это будет называться группы и смысл останется тот же?
не понял вопроса.
При регистрации юзверя ему нужно только в табличку внести имя, роль и пароль по MD5.
INSERT
Больше ничего не надо.
В чём вопрос?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432783
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123HettPetro123,
даже если так, что изменится то? В бд это будет называться группы и смысл останется тот же?
не понял вопроса.
При регистрации юзверя ему нужно только в табличку внести имя, роль и пароль по MD5.
INSERT
Больше ничего не надо.
В чём вопрос?
Вопрос в том, как при такой схеме вы одному пользователю назначите несколько ролей?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432786
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Придется создавать группы разных комбинаций ролей, что не очень удобно, ИМХО.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432797
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettВопрос в том, как при такой схеме вы одному пользователю назначите несколько ролей?
Код: plsql
1.
2.
3.
INSERT INTO USERS (ID, PASSWORD) VALUES ('Вася', '5e286544710b2e7ebe9858833b');
INSERT INTO USERS_GROUP (USERID, GROUPID) VALUES ('Вася', 'role1');
INSERT INTO USERS_GROUP (USERID, GROUPID) VALUES ('Вася', 'role2');


?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432800
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123HettВопрос в том, как при такой схеме вы одному пользователю назначите несколько ролей?
Код: plsql
1.
2.
3.
INSERT INTO USERS (ID, PASSWORD) VALUES ('Вася', '5e286544710b2e7ebe9858833b');
INSERT INTO USERS_GROUP (USERID, GROUPID) VALUES ('Вася', 'role1');
INSERT INTO USERS_GROUP (USERID, GROUPID) VALUES ('Вася', 'role2');



?

Ну вот, сами пришли к моему варианту. Только тогда не понятно о чем спорили то.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432801
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только у меня таблица называется не USER_GROUP а role
Хотя, наверное я был не прав, когда ее так называл, user_role - было бы корректнее.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432803
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettо чем спорили то.
о много ко многим.
И как это делается без участия табличек.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432804
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Hettо чем спорили то.
о много ко многим.
И как это делается без участия табличек.

Ну и какая связь между USERS и USERS_GROUP?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432806
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettНу и какая связь между USERS и USERS_GROUP?
один ко многим.
Тут обозвать можно как угодно
20352605
Потом в маппинге получаем по EE много ко многим
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432807
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123HettНу и какая связь между USERS и USERS_GROUP?
один ко многим.
Тут обозвать можно как угодно
20352605
Потом в маппинге получаем по EE много ко многим

Согласен. Но мой вопрос изначально был про JPA =)
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432808
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettНо мой вопрос изначально был про JPA
что это значит?
JPA это к ОРМ.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432809
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот 20357554
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432821
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettВот 20357554
WGA тебе ответил.
- первое проверь LAZY
- потом можно маппинг посмотреть.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432883
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
HettPetro123пропущено...

один ко многим.
Тут обозвать можно как угодно
20352605
Потом в маппинге получаем по EE много ко многим

Согласен. Но мой вопрос изначально был про JPA =)Требуемую JDBC аутентификатором структуру таблицы в JPA реализуется через коллекции (@ElementCollection и @CollectionTable).

Как вариант могу посоветовать сделать 3 таблицы: user_table, group_table и user_rel_group - обычная структура для "многие-ко-многим", а для аутентификатора создать вьюхи USERS и GROUPS. Из минусов такого подхода - нельзя (или сложно) редактировать в консоли администрирования и придется делать это самому. Но если ты надеешься использовать админку GF, то зачем тебе вообще JPA для пользователей и групп?.. )
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432900
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WGAНо если ты надеешься использовать админку GF, то зачем тебе вообще JPA для пользователей и групп?.. )
+1
)
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432910
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блеа... Чтобы хранить соответствие ролей и пользователей.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39432925
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettБлеа... Чтобы хранить соответствие ролей и пользователей.
?
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39433088
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123WGAНо если ты надеешься использовать админку GF, то зачем тебе вообще JPA для пользователей и групп?.. )
+1
)

1. У меня нет групп пользователей и мне они на данном этапе не нужны, все и так прекрасно работает согласно документации.
2. Вопрос вообще в другом, он касается JPA.
...
Рейтинг: 0 / 0
persistence.xml не деплоится
    #39433096
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett2. Вопрос вообще в другом, он касается JPA.
уже говорил, что не путай народ - заводи новую тему.
И по JPA тебе ответили.
...
Рейтинг: 0 / 0
95 сообщений из 95, показаны все 4 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / persistence.xml не деплоится
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]