долгое время слушатель, впервые вызывающий выступ здесь.Java EE 6 с GlassFish v3 и MyEclipse 8.5: лучший способ структурирования проектов?
Мы находимся в процессе перехода от BEA WebLogic 10 к GlassFish v3. Мы успешно перевели массивный проект в GlassFish, и все работает, но теперь мы планируем будущее.
В частности, мы используем MyEclipse 8.5 с одним проектом Enterprise Application (DCMHub), который создает файл EAR и один проект веб-приложения (DCMWeb), который входит в EAR.
Однако DCMWeb на самом деле представляет собой целую кучу связанных приложений, все сгруппированные в один огромный бесполезный беспорядок jsps, файлы классов и банки. Мы хотели бы разбить их на логические единицы. Например, вместо того, чтобы иметь только одно веб-приложение (DCMWeb), мы хотели бы иметь несколько, скажем, DCMWeb_A, DCMWeb_B и DCMWeb_C, а также некоторые веб-службы (DCMWebService_A, DCMWebService_B) и т. Д. (Очевидно, мы не будем использовать эти конкретные имена, я просто назову их, чтобы легко задать вопрос.)
Теперь наступает сложный бит. Все эти веб-приложения и веб-службы будут иметь общую общую функциональность. Например, нам нужен единый вход, поэтому концепция пользователя, аутентификация и разрешения должны быть одинаковыми. Точно так же мы хотим поделиться определенными классами, например, с каким делом находится пользователь, или с каким Office он работает и т. Д.
Если бы это было просто старое приложение Java, я мог бы создать кучу банок для презентации, например, DCMWeb_A, DCMWeb_B, DCMWeb_C, DCMWebService_A, DCMWebService_B, а также некоторые дополнительные банки для общих классов и бизнес-логики, например, CommonClasses.jar, UserAndDeskLogic.jar и т.д.
Но это не простое старое приложение Java. Это приложение для предприятий, и я хотел бы структурировать это, чтобы: а) нам легко сделать переход от уродливого проекта к красивому проекту простым шагом, не нарушая ничего существенного на этом пути, и б) что-то, что в конечном итоге приводит к мы полностью согласны с «правильным» способом делать вещи в Java EE 6, чтобы мы могли воспользоваться всеми последними преимуществами Java, GlassFish и MyEclipse по мере их появления.
Прямо сейчас, вот грубая структура того, что мы получили в MyEclpse 8,5:
DCMHub (Enterprise Application)
META-INF
application.xml
МАНИФЕСТ.МФ
DCMWeb (Web Application)
ЦСИ (все исходные Java-файлы)
WebContent
CSS (все наши файлы стилей)
изображения (все наши. jpg, .gifs и т. д.)
включают (все наши фрагменты JSP)
JavaScript (все из .js файлы)
META-INF
MANIFEST.MF
secure (все jsps, требующие аутентификации для просмотра)
WEB-INF
классы
Lib
ДВУ
applicationCo ntext.xml
dcmweb-servlet.xml
лица-config.xml
log4j.properties
log4j. xml
oscache.properties
ВС-jaxws.xml
ВС-web.xml
web.xml
XMLHTTP
login.jsp (наш неаутентифицированное пользователь Войти страница)
Теперь, очевидно, одна из вещей, которые мы думаем использовать для инкапсуляции некоторых бизнес-логики является использование EJB 3-х. Но как мне их представить? Мои предыдущие попытки потерпели неудачу. Либо я не могу заставить MyEclipse развертывать их как часть EAR, или чаще, я не могу заставить проект Web Application «видеть» классы в проекте EJB. (Хотя я могу Goto-Definition на них, как ни странно, но MyEclipse по-прежнему отмечает это как ошибку.)
Так что извините за действительно затянутый вопрос, но что такое - лучший способ организовать это приложение, чтобы мы могли двигаться вперед, но не нарушать то, что у нас сейчас работает, когда мы это делаем?
Большое спасибо!
Jeff G
P.S. Мне удалось загрузить мой EJB и проект MyEclipse, чтобы ссылаться на него, чтобы эта часть была решена. Но у меня все еще стоит большой вопрос: а именно, как лучше всего двигаться вперед?