tomcat 5.5 настройка пути к контексту с виртуальными хостами (не в каталоге webapps) - PullRequest
0 голосов
/ 10 февраля 2010

Я работаю веб-разработчиком в течение нескольких лет (некоторые ASP, в основном PHP), а в последние два года недавно освоила Java / JSP.

Одна вещь, которую я неоднократно пробовал, но продолжаю терпеть неудачу, - это способ настроить работающее приложение JSP в другом месте, которое НЕ является папкой webapps. Качание моего приложения из веб-приложений не кажется для меня проблемой.

Может ли кто-нибудь помочь сломать это или указать мне, чтобы опубликовать где-то, что обрисовывает в общих чертах это?

Я неоднократно гуглял, читал и перечитывал документацию на веб-сайте apache.org, но, похоже, до сих пор не понимаю: (

Я пытаюсь настроить «взорванный» сайт (папки и файлы разделены - не является частью WAR).

Я знаю, что МОГУ редактировать файл server.xml, но не должен (не то, чтобы это имело значение ... даже когда я пытаюсь отредактировать, что мне не удалось).

Я знаю, что что-то упускаю из-за того, как работают пути. Я ДУМАЮ, что понимаю, но я так не думаю.

Любая помощь приветствуется !!

Люблю этот сайт.

- Я решил перефразировать мой вопрос более подробно -

Допустим, у меня есть структура каталогов следующим образом (** ПРИМЕЧАНИЕ: веб-проект НЕ находится в каталоге tomcat / webapps)

/webproject
/webproject/htdocs
/webproject/htdocs/images
/webproject/htdocs/images/logo.gif
/webproject/java
/webproject/java/page1.jsp
/webproject/java/page2.jsp 

Я хотел бы настроить виртуальный хост, чтобы я мог просматривать свой проект с помощью URL: http://webproject

Я ДУМАЮ, все, что мне нужно, это две вещи (я использую apache):

  1. запись 'VirtualHost' в моем файле httpd.conf.
  2. некоторый тип файла контекста или фрагмент где-то.

Я прав? Если да, может ли кто-нибудь помочь мне определить эти два элемента?

Кроме того, если я хочу использовать относительный к домену URL для ссылки на мой файл logo.gif с любой из моих страниц jsp, как бы выглядел мой путь?

Что, если я хочу использовать относительный к домену URL для ссылки на page2.jsp из page1.jsp?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2010

ОК, после борьбы с этим я наконец-то заставил его работать.Я не говорю, что это лучший (или даже правильный!) Способ сделать это, но это то, что в конечном итоге сработало для меня локально на моей машине с Windows (под управлением WAMP) и на удаленном сервере под управлением Linux.

пути, перечисленные там, где они были для моей среды.Очевидно, что это может отличаться для вашей ситуации.

ПЕРЕД ПЕРВЫМ (только для Windows)

В Windows вам необходимо настроить запись в файле hosts для нового"домен".

WIN - C: \ Windows \ System32 \ drivers \ etc \ hosts

127.0.0.1 webproject.local

FIRST

Необходимо отредактировать httpd.conf и добавьте виртуальный хост

WIN - C: \ wamp \ bin \ apache \ Apache2.2.11 \ conf \ extra \ httpd-vhosts.conf

LINUX - / etc / httpd /conf / httpd.conf

 <VirtualHost *:80>
     DocumentRoot "C:\wamp\www\webproject"
     ServerName webproject.local
 </VirtualHost>

SECOND

Настройка host и context в файле server.xml.Из того, что я читал в Интернете, редактирование server.xml не рекомендуется, но это был единственный способ, которым я мог это выяснить.

WIN - C: \ Program Files (x86) \ Apache Software Foundation \ Tomcat 5.5 \ conf \server.xml

LINUX - etc / tomcat5 / server.xml

<Host name="webproject" debug="0" appBase="webapps" unpackWARs="true">
   <Context path="" docBase="C:/wamp/www/webproject"/>
   <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="webproject.local_error-log." suffix=".txt" timestamp="true"/>
</Host>

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

0 голосов
/ 11 февраля 2010

ОДНАКО, если в моем приложении есть пути, которые ссылаются на ресурсы (изображения, скрипты и т. Д.), Используя путь, начинающийся с корня (т.е. не найден.

Знаете ли вы, что эти пути должны быть URL-адресами относительно текущего URL-адреса запроса (одного из страниц JSP) и, таким образом, не путей файловой системы локального диска относительно их расположения на локальном диске файловая система? Поскольку вы используете /htdocs, это выглядит так, как будто вы думали о последнем.

Таким образом, если, например, страница JSP запрашивается http://example.com/context/page.jsp, а foo.gif фактически доступен http://example.com/context/images/foo.gif, то вам необходимо использовать любой относительный к странице URL:

<img src="images/foo.gif">

или относительный к домену URL:

<img src="/context/images/foo.gif">

или относительный к протоколу URL:

<img src="//example.com/context/images/foo.gif">

или абсолютный URL:

<img src="http://example.com/context/images/foo.gif">
...