如何设置 Tomcat 7 的 server.xml 以使用不同的 url 访问网络共享?

如何设置 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在“设置 Web 应用程序的上下文根目录和请求 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”提取文件,但没有成功。我需要做什么才能使其正常工作?我应该使用别名吗?这是否可能导致其他安全问题?

答案1

问题不在于 tomcat 设置。原来是应用程序将路径解释为 C 盘。我替换了应用程序中编辑的路径以指向共享。这解决了我的问题。一旦我正确设置它以指向正确的路径,Java 代码就可以访问共享。

相关内容