【问题标题】:How to specify path in Apache tomcat catalina for folder on different server?如何在 Apache Tomcat Catalina 中为不同服务器上的文件夹指定路径?
【发布时间】:2012-05-24 03:22:59
【问题描述】:

在 Apache Tomcat 上

C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\Catalina\localhost\

我们可以通过在 XML 中指定它来更改另一个文件夹,例如:THE_FOLDER.xml 并且在那个 xml 中我们可以更改那个 THE_FOLDER 路径

<Context path="/MF_PHRASES" reloadable="true" docBase="C:\Projects\Customers\test\phrases" workDir="C:\Projects\Customers\test\phrases" />

但它不适用于位于其他服务器上的文件夹:

<Context path="/MF_PHRASES" reloadable="true" docBase="\\192.168.0.100\c$\Projects\Customers\test\phrases" 
workDir="\\192.168.0.100\c$\Projects\Customers\test\phrases" />

不工作

有没有办法让它工作?

【问题讨论】:

  • 为什么要这样做?这似乎是一个问题,可以通过不同的方法更好地解决。也许数据库会是更好的解决方案。
  • 如果您将 Tomcat 作为服务运行,它将作为本地系统帐户运行,并且不太可能访问网络共享。它当然无法访问需要管理员权限才能查看的 c$。

标签: java tomcat windows-server-2003 catalina


【解决方案1】:

如果您在 Windows 上使用文件资源管理器制作网络驱动器,那么您会将远程路径分配给“本地”磁盘盘符。然后使用此路径。这必须有效,因为本地磁盘盘符和远程路径之间的映射是使用操作系统工具完成的。所有应用程序都将其视为本地驱动器。

另一种方法是尝试写如下内容:

file://192.168.0.100/c$/Projects/Customers/test/phrases

它可能会起作用,但我不确定。

第一种方式更可取。

【讨论】:

  • 第一种方式必须起作用。你在干嘛?转到文件资源管理器,将网络驱动器映射到此路径。叫它N:。不尝试该路径N:\Projects\Customers\test/phrases:只需打开命令提示符并运行命令dir N:\Projects\Customers\test/phrases。如果可行,请尝试将此确切路径放入 tomcat 配置中。
  • catalina.log: SEVERE: Error deploying configuration descriptor MF_PHRASES_NEW.xml java.io.IOException: The filename, directory name, or volume label syntax is incorrect at java.io.WinNTFileSystem.canonicalize0(Native Method) at java.io.Win32FileSystem.canonicalize(Unknown Source) at java.io.File.getCanonicalPath(Unknown Source) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:658) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
  • 第一种方法 cmd dir 工作,但 catalina 说它无法读取:SEVERE: Error starting static Resources java.lang.IllegalArgumentException: Document base Z:\Projects\Customers\test\phrases does not exist or is not a readable directory at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:142) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4319) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4488) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 2020-02-10
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
相关资源
最近更新 更多