Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / EJB3 local bean access in servlet / 23 сообщений из 23, страница 1 из 1
05.03.2012, 13:40:47
    #37691471
OOsalivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
можем ли мы инжектить локальный ежб в сервлет. допустим у нас есть еар модуль содержащий ежб модуль и вар модуль, можем ли мы в сервлетах из вар модуля инжектить локальные ежб из ежб модуля? интересует что говорит спецификация по этому поводу, сам не могу найти... спасибо
...
Рейтинг: 0 / 0
05.03.2012, 14:04:35
    #37691531
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
Вроде можно, но не уверен в какой версии JEE. Вроде совсем недавно планировали добавить. Servlets 3.0 надо глянуть. Там же всё на аннотациях. Поидее CDI тогда должен работать тоже.
...
Рейтинг: 0 / 0
05.03.2012, 14:10:10
    #37691541
OOsalivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
BlazkowiczВроде можно, но не уверен в какой версии JEE. Вроде совсем недавно планировали добавить. Servlets 3.0 надо глянуть. Там же всё на аннотациях. Поидее CDI тогда должен работать тоже.

анатации это не ключевой момент, можно и через жндй, главноне нличие\отсутствие самой такой возможности.
...
Рейтинг: 0 / 0
05.03.2012, 14:17:22
    #37691566
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
OOsalivanанатации это не ключевой момент, можно и через жндй, главноне нличие\отсутствие самой такой возможности.
При чем здесь JNDI? Это уже Service Locator. Он всегда работал. Вы же спрашивали про "инжект"?
...
Рейтинг: 0 / 0
05.03.2012, 14:26:14
    #37691586
OOsalivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
BlazkowiczOOsalivanанатации это не ключевой момент, можно и через жндй, главноне нличие\отсутствие самой такой возможности.
При чем здесь JNDI? Это уже Service Locator. Он всегда работал. Вы же спрашивали про "инжект"?

можетдействительно не коректно выразился. интересует можем ли мы использовать локал ежб из сервлетов в рамках одного еар?
...
Рейтинг: 0 / 0
05.03.2012, 14:29:47
    #37691597
eros2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
OOsalivanможем ли мы использовать локал ежб из сервлетов в рамках одного еар? Да.
...
Рейтинг: 0 / 0
05.03.2012, 14:54:55
    #37691661
OOsalivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
eros2,

тогда такой вопрос, как у нас воспринимаеться сервлет в ежб контейнере в рамках такого взаимодействия. если мы в сервлете будем создавать новые потоки, это нормально?
...
Рейтинг: 0 / 0
05.03.2012, 14:57:56
    #37691667
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
OOsalivanтогда такой вопрос, как у нас воспринимаеться сервлет в ежб контейнере в рамках такого взаимодействия. если мы в сервлете будем создавать новые потоки, это нормально?
Сложный вопрос. Надо пробовать на конкретном сервере. С одной стороны сервер может разрулить всё через банальные прокси. С другой стороны он может закладыватся и на потоки сервлета. Поэтому что станется с транзакциями предсказать сложно.
А зачем вам потоки в сервлете? JMS не вариант?
...
Рейтинг: 0 / 0
05.03.2012, 15:03:39
    #37691682
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
безусловно
...
Рейтинг: 0 / 0
05.03.2012, 15:06:28
    #37691691
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
автортогда такой вопрос, как у нас воспринимаеться сервлет в ежб контейнере в рамках такого взаимодействия. если мы в сервлете будем создавать новые потоки, это нормально?

EJB-рантайм понятия не имеет ни о каких сервлетах, поэтому ему по барабану что вы будете создавать потоки, или вы имеете ввиду что будете создавать поток внутри заинжектоннаго EJB? Если да - то при чем тут уже сервлет, если все будет обрабатываться в EJB-рантайме? И да, потоки стараюсь создавать в крайнем случае, так что рассмотрите вариант JMS, и если не секрет расскажите все же зачем вам потки внутри Servlet?
...
Рейтинг: 0 / 0
05.03.2012, 15:06:48
    #37691693
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
забыл никбезусловно
Что именно?
...
Рейтинг: 0 / 0
05.03.2012, 15:15:09
    #37691714
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
авторможем ли мы использовать локал ежб из сервлетов в рамках одного еар?
безусловно, я просто перед тем как писать ответ отошел, а там еще новые появились
...
Рейтинг: 0 / 0
05.03.2012, 15:21:55
    #37691727
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
забыл никEJB-рантайм понятия не имеет ни о каких сервлетах, поэтому ему по барабану что вы будете создавать потоки
Не совсем. EJB-рантайм привязывает контекст вызова к потоку. Если этот поток был создан сервлетом, то контейнер нормально к нему должен привязать данные. Если этот поток создан вручную, то контекста вызова уже может не быть в контейнере. Вопрос ведь про Local EJB. Хотя принципиально эту проблему можно разрешить, и не исключено, что на некоторых новых серверах всё будет работать нормально.
...
Рейтинг: 0 / 0
05.03.2012, 16:25:28
    #37691846
OOsalivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
забыл никавтортогда такой вопрос, как у нас воспринимаеться сервлет в ежб контейнере в рамках такого взаимодействия. если мы в сервлете будем создавать новые потоки, это нормально?

EJB-рантайм понятия не имеет ни о каких сервлетах, поэтому ему по барабану что вы будете создавать потоки, или вы имеете ввиду что будете создавать поток внутри заинжектоннаго EJB? Если да - то при чем тут уже сервлет, если все будет обрабатываться в EJB-рантайме? И да, потоки стараюсь создавать в крайнем случае, так что рассмотрите вариант JMS, и если не секрет расскажите все же зачем вам потки внутри Servlet?

мне не к чему, я разбираюсь с чужим кодом, и там часть логики вынесена в сервлеты, притом в них есть приватные поля, которые при инициализаци сервлета лукапяться локальными бинами, а в методе сервис создаються потоки которые используют проинициализированые ране поля [бины], мне показался такой способ страным, и поэтому хочу узнать нет ли здесь подводных камней, и как вообще вам такая практика использования ежб?
...
Рейтинг: 0 / 0
05.03.2012, 16:32:38
    #37691857
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
OOsalivanмне не к чему, я разбираюсь с чужим кодом, и там часть логики вынесена в сервлеты, притом в них есть приватные поля, которые при инициализаци сервлета лукапяться локальными бинами, а в методе сервис создаються потоки которые используют проинициализированые ране поля [бины], мне показался такой способ страным, и поэтому хочу узнать нет ли здесь подводных камней, и как вообще вам такая практика использования ежб?
По-моему это тот самый случай, в котором не рекомендуется создавать собственные потоки. А EJB stateful?
...
Рейтинг: 0 / 0
05.03.2012, 16:35:02
    #37691864
OOsalivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
забыл никавтортогда такой вопрос, как у нас воспринимаеться сервлет в ежб контейнере в рамках такого взаимодействия. если мы в сервлете будем создавать новые потоки, это нормально?

EJB-рантайм понятия не имеет ни о каких сервлетах, поэтому ему по барабану что вы будете создавать потоки, или вы имеете ввиду что будете создавать поток внутри заинжектоннаго EJB? Если да - то при чем тут уже сервлет, если все будет обрабатываться в EJB-рантайме? И да, потоки стараюсь создавать в крайнем случае, так что рассмотрите вариант JMS, и если не секрет расскажите все же зачем вам потки внутри Servlet?

в даном случае исходя из кода,созданые в сервлете потоки юзают проинициализироавнные ранее бины для того чтобы через них модифицировать базу и работать с файловой системой
...
Рейтинг: 0 / 0
05.03.2012, 16:37:20
    #37691870
OOsalivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
Blazkowicz По-моему это тот самый случай, в котором не рекомендуется создавать собственные потоки. А EJB stateful?
нет все бины Stateless
...
Рейтинг: 0 / 0
05.03.2012, 16:38:05
    #37691873
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
OOsalivanв даном случае исходя из кода,созданые в сервлете потоки юзают проинициализироавнные ранее бины для того чтобы через них модифицировать базу и работать с файловой системой
С файловой системой через IO работают? Т.е. транзакционность, в целом, хлипкая.
...
Рейтинг: 0 / 0
05.03.2012, 16:44:36
    #37691882
OOsalivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
BlazkowiczС файловой системой через IO работают? Т.е. транзакционность, в целом, хлипкая.
в общем да, но там есть дополнительный код для реализации транзакций, я пока с этим не разобрался. можно пока от этого абстрогироваться, мне больше интересно какие потенциальные проблемы могут возникнуть при работе с ежб бинами из собственных потоков?
...
Рейтинг: 0 / 0
05.03.2012, 17:01:34
    #37691920
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
OOsalivanв общем да, но там есть дополнительный код для реализации транзакций, я пока с этим не разобрался. можно пока от этого абстрогироваться, мне больше интересно какие потенциальные проблемы могут возникнуть при работе с ежб бинами из собственных потоков?
А посмотрите в дебаге, если там для локальных вызовов всё равно используется Proxy локального интерфейса, а не экземпляр бина, то я думаю проблем никаких не будет.
...
Рейтинг: 0 / 0
05.03.2012, 17:12:13
    #37691946
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
авторв общем да, но там есть дополнительный код для реализации транзакций, я пока с этим не разобрался. можно пока от этого абстрогироваться, мне больше интересно какие потенциальные проблемы могут возникнуть при работе с ежб бинами из собственных потоков?

В большинстве случаев все будет ок, просто надо четко представлять что происходит. Основные проблемы с запуском собственных потоков - это то, что их жизненным циклом придется управлять самому, в принципе если инициализировать в сервлете, делать их Daemon, и убивать в методе destroy, то ничего страшного не случится.
Вот тут пишут, что в кастомном треде не будет работать лукап datasource и jmsFactory, но так как вы в поток передаете proxy, уже проинициализированное, то я практически уверен что все будет ок, но вот если вдруг вам захочется добавить код динамического лукапа, то он скорее всего обрыгается, а так как у вас все зависимости инжектятся при запуске сервлета, то все должно быть хорошо.

Но, как уже сказали это все-таки bad practice, взять хотя бы то, что каждый кто будет работать с этим кодом, должен знать все тонкости(ну вот вы например), так что лучше этот код отрефакторить. Варианты следующие -
1) Использовать jms
2) Использовать quartz
3) Использовать проприетарное API по создание managed threads. Вот пример для WebSphere\WebLogic - http://www.ibm.com/developerworks/library/specification/j-commonj-sdowmt/index.html
...
Рейтинг: 0 / 0
05.03.2012, 17:13:38
    #37691951
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
авторА посмотрите в дебаге, если там для локальных вызовов всё равно используется Proxy локального интерфейса, а не экземпляр бина, то я думаю проблем никаких не будет.
А вот это я и имел ввиду, когда говорил, что
авторEJB-рантайм понятия не имеет ни о каких сервлетах, поэтому ему по барабану что вы будете создавать потоки, или вы имеете ввиду что будете создавать поток внутри заинжектоннаго EJB? Если да - то при чем тут уже сервлет, если все будет обрабатываться в EJB-рантайме? И да, потоки стараюсь создавать в крайнем случае, так что рассмотрите вариант JMS, и если не секрет расскажите все же зачем вам потки внутри Servlet?

Неясно сегодня выражаюсь, к сожалению.
...
Рейтинг: 0 / 0
05.03.2012, 17:22:21
    #37691976
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB3 local bean access in servlet
забыл ник1) Использовать jms
2) Использовать quartz
3) Использовать проприетарное API по создание managed threads. Вот пример для WebSphere\WebLogic - http://www.ibm.com/developerworks/library/specification/j-commonj-sdowmt/index.html
4) http://docs.oracle.com/javaee/6/api/javax/resource/spi/work/WorkManager.html
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / EJB3 local bean access in servlet / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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