|
|
|
мультимодульный проект на Maven (сервис ejb + spring)
|
|||
|---|---|---|---|
|
#18+
Есть: 0) мультимодульный проект на Maven. 1) ejb модуль разработанный не мной и вполне работающий в котором есть класс помеченный аннотациями @Stateless и @Remote. В общем этот класс для реализации сервиса. 2) другой тоже вполне работающий spring модуль который использует сервис из ejb модуля. Что я сделал: 0) добавил в сервис пару новых методов. сделал 100% все по аналогии с уже имеющимися методами. 1) также добавил использование этих методов в spring модуль. Проблема: 0) раньше было так. один раз деплоится ejb модуль с сервисом. далее работа идет со spring модулем т.е. если я что-то изменил то деплою только spring-модуль потому что ejb модуль с сервисом уже развернут. 1) сейчас стало так: если я что-то изменяю в spring модуле то после деплоймента spring модуля получаю ошибку что он невидит в сервисе моих НОВЫХ (подчеркиваю, потому что старые добавленные не мной он видит) методов хотя они там есть. решается этой сборкой всего проекта т.е. ejb + spring и развертывать надо тоже все разом. меня это не устраивает потому что модули стали зависить друг от друга по билду и время разработки возрастает. что это за фигня такая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 14:13:47 |
|
||
|
мультимодульный проект на Maven (сервис ejb + spring)
|
|||
|---|---|---|---|
|
#18+
Mindzor, обновленные интерфейсы не забыли в спринговый модуль положить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 14:20:38 |
|
||
|
мультимодульный проект на Maven (сервис ejb + spring)
|
|||
|---|---|---|---|
|
#18+
ТимоН, в конфиге спринг модуля Код: xml 1. 2. 3. 4. 5. 6. 7. 8. com.ejb.facade.IUserService находится в ejb модуле с сервисом а в коде спринг модуля делается автоинъект Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 14:29:00 |
|
||
|
мультимодульный проект на Maven (сервис ejb + spring)
|
|||
|---|---|---|---|
|
#18+
да и потом обновленные интерфейсы уже должны быть в этом модуле потому что как я писал выше 1) добавил в сервис методов, скомпилил его, и развернул. все больше я его не трогаю. 2) проблема в том что при изменении кода в спринг модуле приходится опять таки заново компилить и деплоить сервис. а зачем если я его не менял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 14:36:53 |
|
||
|
мультимодульный проект на Maven (сервис ejb + spring)
|
|||
|---|---|---|---|
|
#18+
Потратил время и написал расширенную версию вопроса. Суть проблемы Необходимо в мультимодульном Maven проекте добавить несколько методов к сервису и потом использовать эти методы вызывая их из контроллера MVC. Сначала приведу небольшой обзор проекта, т.к. потом легче объяснить в чем проблема. Maven-проект состоящий из следующих основных модулей: map-tool // mvc app-ear // типа как пакет для app-ejb app-ejb // сервис app-model // orm модель ... Вот интерфейс сервиса: [app-ejb\src\main\java\com\rootdata\app\ejb\facade\portlet\userbase\IAppUserBaseService.java] Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Далее переходим к реализации этого интерфейса: [app-ejb\src\main\java\com\rootdata\app\ejb\db\portlet\userbase\AppUserBaseBean.java] Код: java 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. В реализации используется EAO, ниже показан интерфейс и реализация: [app-ejb\src\main\java\com\rootdata\app\ejb\facade\IUserEao.java] Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. [app-ejb\src\main\java\com\rootdata\app\ejb\db\UserEao.java] Код: java 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. Теперь контроллер. Он находится в другом модуле. [map-tool\src\main\java\com\rootdata\app\portlet\map-tool\spring\controller\UserController.java] Код: java 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. Также в этом модуле находится конфиг Spring. [map-tool\src\main\webapp\WEB-INF\app_map-tool-portlet.xml] Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Теперь в чем проблема. Разработку я веду в IntelliJ IDEA 11. Как вы видели я просто добавил еще один метод для своей задачи и прописал его использование в другом модуле. 1) Если делать compile и package в целом для всего проекта, то на выходе получаем app-ear.ear и map-tool.ear и др. пакеты, которые успешно деплоятся и работают. app-ear.ear map-tool.ear 2) Однако, дальше если я внесу изменения в map-tool и сделаю его компиляцию, package и деплоймент app-ear.ear // оставляю прежний потому что ничего в нем не менял map-tool.ear // заменяю на новый измененный то при работе с ним буду получать ошибку на всех вызовах своего (подчерквиваю т.к. другие методы которые изначально были работают) добавленного метода: Код: java 1. 2. САМА ОШИБКА: Код: java 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. Почему вызов моего метода в этой ситуации дает ошибку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 18:29:40 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2131219]: |
0ms |
get settings: |
17ms |
get forum list: |
27ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
75ms |
get topic data: |
22ms |
get forum data: |
6ms |
get page messages: |
83ms |
get tp. blocked users: |
3ms |
| others: | 333ms |
| total: | 580ms |

| 0 / 0 |
