Назад | Перейти на главную страницу

Как настроить server.xml Tomcat 7 для доступа к общему сетевому ресурсу с другим URL-адресом?

У меня Apache Tomcat 7.0 установлен на сервере Windows 2008 R2. Tomcat имеет доступ к общему ресурсу \ server \ share, в котором есть папка документов, к которой я хочу получить доступ с помощью / foo / Documents в моем веб-приложении.

Мое приложение может получить доступ к документам, если я установил путь к файлу //server/share/documents/doc1.doc. Я не хочу, чтобы путь к файловому серверу отображался в моей ссылке на файл в моем приложении. Я хочу указать путь к '/foo/Documents/doc1.doc'.

В http://www3.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_More.html в пункте «Настройка корневого каталога контекста и URL-адреса запроса веб-приложения» номер два говорится, что я могу переименовать путь, поместив контекст в файл server.xml. Я положил

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    <Context path="/foo" docBase="//server/share" reloadable="false"></Context>
  </Host>

Добавлен контекст внизу. Затем я попытался вытащить файл с помощью /foo/Documents/doc1.doc, и это не сработало. Что мне нужно сделать, чтобы он работал правильно? Должен ли я вместо этого использовать псевдоним? Есть ли другие проблемы с безопасностью, которые это может вызвать?

Проблема была не в настройке Tomcat. Оказалось, что приложение интерпретировало путь к диску C. Я заменил отредактированный путь в приложении, чтобы он указывал на общий ресурс. Это устранило мою проблему. Код Java получил доступ к общему ресурсу, как только я правильно настроил его, чтобы указать правильный путь.