|
|
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
Ничего не понимаю. Ошибка происходит при persistence/merge. Инициализация entity: Код: java 1. 2. 3. 4. ORM-ник с entity: Код: xml 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. Ну и дальше: Код: java 1. 2. 3. 4. 5. 6. 7. Ошибки валятся отсюда: Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 17:54 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
Ты прикалываешься??? В предыдущей теме же выяснили что у тебя EntityManager не инжектиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 18:02 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
потому что кто-то делает new CSV_Creator() и свято верит что CDI найдт этот объект и всё туда сам проставит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 18:03 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
Blazkowiczпотому что кто-то делает new CSV_Creator() и свято верит что CDI найдт этот объект и всё туда сам проставит. Блин, я совсем тогда не понимаю. Т.е. Если у меня связь. Сервлет вызывает бин через DI (@EJB), бин вызывает метод интерфейса, который иницализируясь вызывает еще один класс, (CSV_Creator), где уже и происходит saveFileConfig. То значит, что все промежуточные объекты должны тоже инжектиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 18:16 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
NDAlekseyБлин, я совсем тогда не понимаю. В этом пролесть JEE. Понять новичку что на самом деле там происходит, решительно не возможно. NDAleksey Т.е. Если у меня связь. Сервлет вызывает бин через DI (@EJB), бин вызывает метод интерфейса, который иницализируясь вызывает еще один класс, (CSV_Creator), где уже и происходит saveFileConfig. То значит, что все промежуточные объекты должны тоже инжектиться? Не важно кто как вызывается. Важно как и кем создаются экземпляры. Если экземпляры создаются CDI, то он и добавляет зависимости. А если экземпляры создаешь ты сам, то CDI о них ничего не знает. В Spring есть отдельный метод, которому можно скормить свой объект, чтобы спринг проставил зависимости. Есть ли аналог в CDI я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 18:20 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНе важно кто как вызывается. Важно как и кем создаются экземпляры. Если экземпляры создаются CDI, то он и добавляет зависимости. А если экземпляры создаешь ты сам, то CDI о них ничего не знает. В Spring есть отдельный метод, которому можно скормить свой объект, чтобы спринг проставил зависимости. Есть ли аналог в CDI я не знаю. Извиняюсь, за тугость, но скажите, создавая объект, я должен инжектить их через @EJB? Я реально не понимаю, как указать CDI что этот объект надо вызвать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 18:24 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
Создавая объекты через конструктор глупо надеятся что волшебник в голубом вертолёте сам выставит в полях этого объекта какие-то значения. Вы себе всю голову этими @EJB забили, не понимая банальных основ Java. Что выведет этот код? Код: java 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 18:32 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
BlazkowiczСоздавая объекты через конструктор глупо надеятся что волшебник в голубом вертолёте сам выставит в полях этого объекта какие-то значения. Вы себе всю голову этими @EJB забили, не понимая банальных основ Java. Что выведет этот код? Код: java 1. 2. 3. 4. 5. 6. посыпаю голову пеплом и иду учить мат.часть... спасибо и извините) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 18:34 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
Blazkowiczпотому что кто-то делает new CSV_Creator() и свято верит что CDI найдт этот объект и всё туда сам проставит. не удалось выходные отдать JavaEE, поэтому не сочтите за глупость задать такой вопрос: правильно ли я понимаю, что для того чтобы использовать мой CSV_Creator, мне нужно заинжектить его еще на этапе "компиляции", а не в run-time через new? Т.е. для того чтобы CDI дал возможность использовать объекты различных классов в моей бизнес-логике, они должны быть "заинициализированы" статически (через @EJB, если это SessionBean или через @Inject, если не нужно делать Bean )? P.S. если я неправ, то можете послать меня по ссылке) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:02 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
Вернее даже не "заинициализированны", а просто объявлены с аннотацией. CDI сам присвоит им значения, т.е. создаст их. И никаких new я не должен использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:25 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
NDAlekseyне удалось выходные отдать JavaEE, поэтому не сочтите за глупость задать такой вопрос: правильно ли я понимаю, что для того чтобы использовать мой CSV_Creator, мне нужно заинжектить его еще на этапе "компиляции" Нет. Нет никаких инъекций на этапе компиляции. NDAleksey, а не в run-time через new? В run-time. Но через new. Нужно чтобы CDI сам инстанциировал ваш бин. А для этого он должен быть EJB. NDAlekseyТ.е. для того чтобы CDI дал возможность использовать объекты различных классов в моей бизнес-логике, они должны быть "заинициализированы" статически (через @EJB, если это SessionBean или через @Inject, если не нужно делать Bean )? Стремительным домкратом. Да. При чем тут "статическая заинициализация"? Перестаньте микшировать термины в случайном порядке. Не знаете слово - не используйте, пока не посмотрите значение в словаре. Если объект создал контейнер, то он может в него добавить и зависимости. Если объект создан не контейнром, то контейнер о нем ничего не знает и заинъектить зависимости не может. Конкретно в этом утверждении что не понятно? NDAlekseyP.S. если я неправ, то можете послать меня по ссылке) Рекомендую спецификацию CDI http://stackoverflow.com/a/8166333 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:28 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕсли объект создал контейнер, то он может в него добавить и зависимости. Если объект создан не контейнром, то контейнер о нем ничего не знает и заинъектить зависимости не может. Конкретно в этом утверждении что не понятно? Простите, что путаю понятия. Я просто неправильно выразился, тем самым не донес свою мысль. Но мне кажется , что я Вас прекрасно понял. Если у меня есть бин: Код: java 1. 2. 3. 4. 5. 6. 7. и в сервлете у меня он объявлен как: Код: java 1. 2. То при вызове, EJB контейнер впихнет заинициализирует создаст его (тупо заинжектит, вернет ссылку или называйте как хотите). Причем, как вы правильно сказали, перед возвращением ссылки на бин, который создает EJB-контейнер, добавит зависимость в него (заинициализированный) в лице entityManager. Но если же я в своем бине определю метод: Код: java 1. 2. 3. А потом определю: Код: java 1. 2. 3. 4. 5. 6. То он в entityManager в TestNotBean не подтягивает значения. Проверяю entityManager на null - он ему не равен. Но при persistence, соответственно, вылетает NPE. Получается что при выполнении bar() объект TestNotBean не создается EJB-контейнером? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 14:28 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
NDAleksey, Ну, теперь всё верно. Вопрос какой? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 14:38 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNDAleksey, Ну, теперь всё верно. Вопрос какой? :) Ааа...))) Спасибо большое!) А то я ж думал, что постригусь и уйду в монахи аникейщиком) Получается что при выполнении bar() объект TestNotBean не создается EJB-контейнером? А как тогда сделать, чтобы контейнер его создал, при этом не делая TestNotBean сессионным и не объявляя testNotBean со злосчастной @EJB. И без JNDI)) Только не говорите, что "Идти и читать спецификацию") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 15:33 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
NDAlekseyТолько не говорите, что "Идти и читать спецификацию") Мне, честного-говоря лень делать это за вас. Так как JEE я не люблю, а поэтому не практикую, то в деталях разбираюсь вместе с задающими вопросы. Вот тут четко описано какие классы можно инжектить и что для этого нужно http://docs.oracle.com/javaee/6/tutorial/doc/gjbnr.html Вот пример. Просто. Доходчиво. Вот такие классы можно. Не только EJB. http://docs.oracle.com/javaee/6/tutorial/doc/gizks.html Есть ещё WEB-INF/beans.xml Как точно CDI делает обнаружение, я не знаю. (Помимо JNDI и beans.xml) Можно просто попробовать @Inject для поля. Возможно контейнер просто найдёт класс, создаст и заинжектит. Заодно, возможно, в JNDI закинет. Если нельзя использовать singleton, то, возмоэно, стоит попробовать @RequestScoped. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:04 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
Вот ещё хорошая ссылка нарылась http://code.google.com/p/jee6-cdi/wiki/DependencyInjectionAnIntroductoryTutorial_Part1 Не знаю на сколько пересекается с официальным туториалами, но выглядит интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:07 |
|
||
|
ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.NullPointerException
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо большое Вам! Если б не Вы, я бы так и парился с сессионными бинами. С моей бизнес-логикой они идут врозь. Нужен класс с определенной иерархией наследования и чтобы его потом инжектить, а по определению SessionBean так не выходит. Вы как только упомянули про CDI (честно говоря я неделю назад ни в зуб ногой что это), я полез по этой ссылке и вот щас у мення все получилось с entityManager-ом и моей чудо иерархией! А Ваши ссылки я обязательно гляну! Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 18:13 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=189&tid=2127754]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 427ms |

| 0 / 0 |
