Несколько файлов войны для одного веб-приложения или контекста - PullRequest
2 голосов
/ 11 октября 2011

У меня есть приложение, которое имеет следующую структуру

$TOMCAT_HOME/webapps/myapp
            |-css
                |-myapp.css
            |-js
                |-myapp.js
            |-forum
                |-index.jsp
                |-list.jsp
                |-users.jsp
            |-Articles
                |-index.jsp
                |-ListArticles.jsp
            |-Guestbook
                |-viewGuestBook.jsp
                |-AddnewEntry.jsp
            |-WEB-INF
                |-classes
                    com
                     |-myapp
                        |-forum
                            |-DisplayForum.class
                            |-ListUsers.class
                        |-article
                            |-ArticleList.class
                            |-AddArticle.class
                        |-guestbk
                            |-LoadGuestBook.class
                            |-ProcessGuestBook.class

Приложение доставляется в виде файла war (т.е. myapp.war) и развертывается в папке $ TOMCAT_HOME / webapps.Если какой-либо из файлов изменяется (файлы jsp, css, js или java), я должен всегда перестраивать весь файл war.Это означает, что я развертываю каждый файл в каждом выпуске.

Мне интересно, есть ли способ развертывания определенных областей приложения.Меня особенно интересует, можно ли разделить приложение на несколько военных файлов.то есть myapp.war, Articles.war и forum.war.Я хотел бы по-прежнему получать доступ к приложению через тот же контекст, то есть http://0.0.0.0/myapp, даже если используются несколько файлов войны.

Используя этот подход, я смогу доставить только тот модуль, на который повлияло изменение.Это вообще возможно?

Я не против перезапустить контейнер после развертывания каждого файла войны.

1 Ответ

3 голосов
/ 16 октября 2011

Я не помню, как именно вы это делаете, это Tomcat, вам, вероятно, придется выполнить какую-то ручную настройку (в context.xml или что-то в этом роде), но я вполне уверен, что вы можете развернуть свои три приложения (. войны) со следующими контекстными путями:

  • myapp.war -> / myapp
  • article.war -> / myapp / articles
  • forum.war -> / myapp / forum

Я нашел немного информации, специфичной для Tomcat, здесь:

http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

В частности:

В отдельных файлах (с расширением «.xml») в $ CATALINA_BASE / conf / [имя_инженера] / [имя_хоста] / каталог. Имя файл (без расширения .xml) будет использоваться в качестве пути к контексту. Многоуровневые контекстные пути могут быть определены с использованием #, например, foo # bar.xml для контекстный путь / foo / bar. Веб-приложение по умолчанию может быть определено используя файл с именем ROOT.xml.

В качестве альтернативы, вы можете сделать что-то вроде:

  • myapp.war -> / (называя его ROOT.war)
  • Articles.war -> / Articles
  • forum.war -> / forum

Сказав это, имейте в виду, что если вы сделаете это, вы не сможете совместно использовать состояние (информацию о сеансе) между тремя приложениями без каких-либо усилий. Например, если для «forum.war» требуется аутентификация, эта аутентификационная информация не будет доступна для myapp.war или article.war.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...