|
|
|
Как вернуть удалённый объект (ResultSet) из EJB в ApplicationClient?
|
|||
|---|---|---|---|
|
#18+
Собственно и вопрос в теме. Хочу вызвать хранимую процедуру в Oracle и получить результат в виде ResultSet'а. Вот основной EJB, в котором производится вызов хранимой процедуры. Код: sql 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. Вот ещё 1 EJB, который вызывает основной EJB: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. А вот код клиента, который вызывает удалённый метод EJB: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Вот какое исключение происходит при попытке вернуть q: Код: sql 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. А что не так-то? Строки возвращаются, а ResultSet почему-то не возвращается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 11:16:11 |
|
||
|
Как вернуть удалённый объект (ResultSet) из EJB в ApplicationClient?
|
|||
|---|---|---|---|
|
#18+
Niky4000, ResultSet не сериализуемый объект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 11:23:56 |
|
||
|
Как вернуть удалённый объект (ResultSet) из EJB в ApplicationClient?
|
|||
|---|---|---|---|
|
#18+
Niky4000, Оберните результат в DTO и будет вам счастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 11:25:06 |
|
||
|
Как вернуть удалённый объект (ResultSet) из EJB в ApplicationClient?
|
|||
|---|---|---|---|
|
#18+
GregTkОберните результат в DTO и будет в сомневаюсь. Курсор ResultSet - сложный динамический объект. ЗЫ. Я не понял, зачем ему _удалённо_ его передавать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 11:40:16 |
|
||
|
Как вернуть удалённый объект (ResultSet) из EJB в ApplicationClient?
|
|||
|---|---|---|---|
|
#18+
http://ru.wikipedia.org/wiki/DTO Понятно. авторЯ не понял, зачем ему _удалённо_ его передавать? Есть функции, которые работают с ResultSet и хотелось бы этим функциям его просто подсунуть. авторОберните результат в DTO и будет вам счастье. А можно примерчик? Никак нигде не найду как это делается. Как ResultSet обернуть-то? Я так понимаю нужно создать некий объект, который сериализуется и подсунуть ему в качестве параметра мой ResultSet, а потом вернуть этот сериализуемый объект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 11:51:14 |
|
||
|
Как вернуть удалённый объект (ResultSet) из EJB в ApplicationClient?
|
|||
|---|---|---|---|
|
#18+
Данные можно загать в RowSet. Он специально для этого был разработан. Смотрите доки по CachedRowSet WebRowSet Например, дефолтная реализация - com.sun.rowset.CachedRowSetImpl помечена как Serializable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 11:58:20 |
|
||
|
Как вернуть удалённый объект (ResultSet) из EJB в ApplicationClient?
|
|||
|---|---|---|---|
|
#18+
Niky4000Есть функции, которые работают с ResultSet и хотелось бы этим функциям его просто подсунуть. есть функции.... это не ответ. - сериализация требуется для передачи объекта между гетерогенными средами. Например, через веб на клиента. Я лично, не понял, зачем вам ТАКИЕ подсовывания в ТАКИЕ функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 12:25:29 |
|
||
|
Как вернуть удалённый объект (ResultSet) из EJB в ApplicationClient?
|
|||
|---|---|---|---|
|
#18+
Niky4000, Вы просто нужную выборку возьмите из ResultSet и положите в свой DTO и передайте его на клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 14:47:19 |
|
||
|
Как вернуть удалённый объект (ResultSet) из EJB в ApplicationClient?
|
|||
|---|---|---|---|
|
#18+
Что-то я решил не париться с этими ResultSet'ми и DTO всякими. ResultSet закрывать надо, а то у нас произойдёт утечка Курсоров и вывалится исключение, да к тому же и объект тяжёлый. Я решил вместо него использовать ArrayList. А методы, которые используют ResultSet перегружать лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 11:26:30 |
|
||
|
Как вернуть удалённый объект (ResultSet) из EJB в ApplicationClient?
|
|||
|---|---|---|---|
|
#18+
Niky4000Что-то я решил не париться с этими ResultSet'ми и DTO всякими . ResultSet закрывать надо, а то у нас произойдёт утечка Курсоров и вывалится исключение, да к тому же и объект тяжёлый. Я решил вместо него использовать ArrayList. А методы, которые используют ResultSet перегружать лучше. - DTO\VO это и есть грубо говоря ArrayList (переливать объекты БД в другой формат) - курсоры нужны для определённых проектов (десктоп\веб-длинные транзакции\корпоратив-не сайт) - альтернатива ему - ОРМ в широком смысле. Поэтому, неудивительно - что не вышло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 11:42:15 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=305&tid=2132407]: |
0ms |
get settings: |
19ms |
get forum list: |
29ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
56ms |
get topic data: |
24ms |
get forum data: |
6ms |
get page messages: |
101ms |
get tp. blocked users: |
3ms |
| others: | 365ms |
| total: | 619ms |

| 0 / 0 |
