4

这是关于如何配置 Eclipse 以使用 `ehcache`的后续内容,在如何正确引用本地 XML Schema 文件中有一个绝对路径示例?

由于该xsd文件不再被托管,我从档案中下载了一份副本。我已将该文件放在我的资源目录中,并希望xsi:schemaLocation从我的项目的相对路径中引用它。我们同时拥有 windows 和 mac 开发人员,因此像这样的绝对路径约定是file:///c:/project/foo行不通的。

相对路径的另一种替代方法是,如果有一种方法可以引用 windows 和 mac 的系统属性,那么我可以执行 2 个条目,例如file:///$HOME/workspace/foo.

我的 Mac 上的项目存在于~/workspace/foo$HOME 的 echo 中,它提供了我的主路径。

我的spring-cache.xml存在于./src/main/webapp/WEB-INF/spring/

我的ehcache-spring-1.2.xsd存在于./src/main/resources/

以下是我尝试过但没有成功的一些:

        file:///$HOME/workspace/foo/src/main/resources/ehcache-spring-1.2.xsd
        file:///./src/main/resources/ehcache-spring-1.2.xsd             
        file:///../../../../resources/ehcache-spring-1.2.xsd
        file:///../../../../resources/ehcache-spring-1.2.xsd
        ../../../../resources/ehcache-spring-1.2.xsd
        file://../../../../resources/ehcache-spring-1.2.xsd
        file://$HOME/workspace/foo/src/main/resources/ehcache-spring-1.2.xsd
        file://./src/main/resources/ehcache-spring-1.2.xsd              
        file://../../../../resources/ehcache-spring-1.2.xsd

我似乎也有问题让它从绝对路径引用文件,所以也许有不同的方式来引用 mac 上的文件?例如以下不起作用:

file:///Users/me/workspace/foo/src/main/resources/ehcache-spring-1.2.xsd
file:////Users/me/workspace/foo/src/main/resources/ehcache-spring-1.2.xsd
file://Users/me/workspace/foo/src/main/resources/ehcache-spring-1.2.xsd
4

1 回答 1

3

认为我的问题是 webapp 目录可能无法查看资源文件夹。

我这样说是因为基于对以下堆栈溢出问题的阅读,看起来相对路径的东西应该非常简单:带有 XML Schema 本地副本的 XML FileHow to use Schema that is on local machine in XML document

然后我尝试暴力破解引用,以防它与部署目录或类路径有关,并且以下所有操作都失败了:

../../../../resources/ehcache-spring-1.2.xsd
../../../resources/ehcache-spring-1.2.xsd
../../resources/ehcache-spring-1.2.xsd
../resources/ehcache-spring-1.2.xsd
./resources/ehcache-spring-1.2.xsd
../ehcache-spring-1.2.xsd
./ehcache-spring-1.2.xsd

解决方案:

但是,通过将 xsd 文件从 移动./src/main/resources/到 ,./src/main/webapp/WEB-INF/spring/我就能够正确/轻松地引用它ehcache-spring-1.2.xsd

于 2017-07-14T16:15:12.697 回答