Windows-Server-2008-R2

如何設置 Tomcat 7 的 server.xml 以使用不同的 url 訪問網路共享?

  • December 6, 2012

我在 Windows 2008 R2 伺服器上安裝了 Apache Tomcat 7.0。Tomcat 可以訪問共享“\server\share”,其中包含我想在我的 Web 應用程序中使用“/foo/Documents”訪問的文件文件夾。

當我將文件路徑設置為“//server/share/documents/doc1.doc”時,我的應用程序能夠訪問這些文件。我不希望文件伺服器的路徑暴露在我的應用程序中的文件連結上。我希望能夠將路徑設置為“/foo/Documents/doc1.doc”。

http://www3.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_More.html中的“設置上下文根目錄和 Webapp 的請求 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 "%r" %s %b" />
   <Context path="/foo" docBase="//server/share" reloadable="false"></Context>
 </Host>

添加了底部的上下文。然後我嘗試使用“/foo/Documents/doc1.doc”提取文件,但沒有成功。我需要做什麼才能使其正常工作?我應該改用別名嗎?這可能會導致其他安全問題嗎?

問題不在於tomcat設置。原來是應用程序正在解釋 C 驅動器上的路徑。我將應用程序中已編輯的路徑替換為指向共享。這解決了我的問題。一旦我正確設置它以指向正確的路徑,Java 程式碼就可以訪問共享。

引用自:https://serverfault.com/questions/453195