Windows-Server-2008-R2
如何設置 Tomcat 7 的 server.xml 以使用不同的 url 訪問網路共享?
我在 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 程式碼就可以訪問共享。