2009-10-02 4 views
1

Я думаю что-то в строках мультиузла drupal, где каждый сайт должен иметь свою папку с темами, плагинами и различными статическими файлами. Оказывается, это не так просто сделать с Java: классы должны быть в одном месте, файлы тегов в других, статические файлы в третьих, только файлы jsp могут идти куда угодно. классы и теги могут быть упакованы в банках, но как я могу обслуживать статические файлы и jsps из jar? Каков наилучший способ сделать такое?Запуск нескольких сайтов из одного веб-приложения в Java

Предыдущий немного связанный с этим вопрос: Jsp tags outside WEB-INF/tags

ответ

1

По умолчанию в большинстве сервлет статические файлы подаются из любого места, кроме WEB-INF, такой же, как JSPs (за исключением не интерпретированы).

Вы можете обслуживать статические файлы из банки, написав небольшой сервлет, который загружает их как ресурсы (используя, например, Class.loadResourceAsStream()), и записывает их на ServletOutputStream.

Я не знаю, Друпал, но это звучит как эквивалент в Java является веб-приложение, которое может быть укутаны как архив WAR (http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WebComponents3.html)

+0

Это точка, в Drupal у вас есть одно приложение с кучей общего кода, а сайты имеют отдельные данные, разные взгляды, плагин здесь и там, но они разделяют много. WAR-файл - это все приложение. – Slartibartfast

+1

ОК - Я думаю, что получаю то, во что вы едете. Вы можете загружать свои баночки в загрузчик классов контейнеров сервлетов, который затем должен быть доступен в webapp, но механизм и ваш пробег будут меняться в зависимости от контейнера сервлетов. В целом вы, вероятно, ищете (или разрабатываете) структуру (гобелен, стойки и т. Д.), Чтобы обеспечить то, что вам нужно. –

0

ли на самом деле не понимаю вашу проблему. Я запускаю multisites из того же webapp, упакованного как единая война.

Моя WAR организована следующим образом,

myapp/WEB-INF 
myapp/common 
myapp/site1 
myapp/site2 

Всех классы, домены верхнего уровня являются общими, но 2 сайтов имеют совершенно другую марку, тема и т.д. На сайте определенных файлы идут в отдельный каталог. Они имеют множество статических файлов, таких как javascript и изображения. Эти файлы хранятся в общий и можно ссылаться, используя относительный URL для каждого сайта, например,

../common/images/cart.jpg 

Все это поставляется в виде единого WAR и работает как единое приложение. Сайт доступен на

http://example.com/myapp/site1

Мы также имеем Apache передний конец с mod_rewrite и сайты, также доступны,

http://site1.example.com 
    http://site2.example.com 
+0

Нет места для небольших изменений между сайтами, поэтому сайты mus имеют точно такие же функциональные возможности, но не в основном такие же. В основном это то, что мы собираемся делать, и если сайт будет по-другому, мы будем иметь его в другом приложении, которое, очевидно, не имеет большого значения. – Slartibartfast

Смежные вопросы