2010-01-06 5 views
0

Я создал веб-приложение в Netbeans, и он упаковывает приложение в файл под названием «aa-bb.war». Когда я запускаю проект в netbeans, я могу получить к нему доступ на «localhost: 8080/aa/bb». Это все хорошо.Пути Tomcat и Context

Перемещение файла .war в стандартную установку tomcat, хотя и дает мне проблемы. Когда я бросаю .war в каталог «webapp», он взорвался в «webapp/aa-bb», но я действительно хочу «webapp/aa/bb» (обратите внимание на «-» против «/» между «aa» и «bb») ... поэтому bb должен находиться в подкаталоге «aa».

Мое понимание этого связано с тем, что tomcat использует имя файла .war для создания взорванного каталога, и поэтому, поскольку война называется «aa-bb», она явно использует дефис. Мой файл «context.xml» имеет правильный путь «aa/bb», но я прочитал, что Tomcat 5+ проигнорирует путь контекста, указанный в .war, и создаст путь, основанный на имени файла.

Как заставить tomcat использовать подкаталог (это может показаться небольшой разницей в полученном url («aa-bb» против «aa/bb»), но на самом деле это большая проблема по причинам, (просто усложняет ситуацию).

ответ

0

Стандартная структура развертывания tomcat заключается в том, что все приложения находятся в иерархии первого уровня. Любой файл context.war, который вы бросаете в свою папку приложений, в конечном итоге станет доступен через http://host/context. Я уверен, что вы не можете заставить подкаталог aa/bb вы упомянуть, но вы могли бы обмануть реализацию: (1) сделать приложение aa.war, (2) создать каталог в вашем приложении aa bb, который имеет все ваши jsps и (3) если у вас есть сервлеты или фильтры, то также измените отображение o f для bb/servlet.

+0

Это интересно, никогда не пробовал ... Я использую netbeans для упаковки, хотя, вы знаете, как заставить netbeans/ant сбрасывать все в подкаталог «bb»? – user85116

0

Какие у вас есть варианты? Я не знал, что Tomcat в последнее время игнорирует path="".

  1. пут апаша спереди и использовать mod_redirect или mod_proxy воронка запросов на аа/BB в Apache с AA-BB в Tomcat.

  2. Использовать UrlRewriteFilter iside webapp, в зависимости от того, какой веб-каркас вы используете (если есть?). Назовите ваш webapp aa.war, а затем сообщите UrlRewriteFilter о том, чтобы запросить для/bb/внутри приложения запросы только/вместо.

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