Gug*_*see 6 java resources tomcat path
我正在研究部署在Tomcat服务器上的大型应用程序.只有一个.jsp页面,所有UI都是使用ext-js完成的.
有很多.java类.在其中一个类(执行验证)中,我想添加XML验证,为此我需要访问.xsd文件.
我的问题是我不知道如何干净地找到我的.xsd文件的路径.
我将把.xsd文件放在css /,images /等旁边的一个库中.
我以一种糟糕的方式知道如何:我调用System.getProperty("user.home")并从那里找到我的webapp,xsd /文件夹和.xsd文件.
但是这样做的"干净"方式是什么?
我应该在哪里找到我的webapp(或我的webapp资源)的路径,我应该如何将这些信息传递给执行验证的.java类?
Bal*_*usC 15
对于公共Web内容中的文件,ServletContext#getRealPath()确实是要走的路.
String relativeWebPath = "/path/to/file.xsd";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
File file = new File(absoluteDiskPath);
// ...
Run Code Online (Sandbox Code Playgroud)
但是,我无法想象有意将XSD文件提供给公共,并且需要XSD的Java类似乎不是servlet.所以,我建议只将XSD文件放在类路径中,然后从那里抓取.假设它已被放置在包中com.example.resources,您可以从类路径加载它,如下所示:
String classpathLocation = "com/example/resources/file.xsd";
URL classpathResource = Thread.currentThread().getContextClassLoader().getResource(classpathLocation);
// Or:
InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream(classpathLocation);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19932 次 |
| 最近记录: |