Запуск нескольких сайтов из одного веб-приложения на Java - PullRequest
1 голос
/ 02 октября 2009

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

Предыдущий слегка связанный вопрос: Теги Jsp вне WEB-INF / теги

Ответы [ 2 ]

1 голос
/ 02 октября 2009

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

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

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

0 голосов
/ 02 октября 2009

Не очень понимаю вашу проблему. Я запускаю мультисайты из одного и того же веб-приложения, упакованные как одна война.

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

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

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

  ../common/images/cart.jpg

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

http://example.com/myapp/site1

У нас также есть интерфейс Apache с mod_rewrite, и сайты также доступны как

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