gpt4 book ai didi

java - 使用 Servlet 读取 Jar 内的 list 文件

转载 作者:行者123 更新时间:2023-12-01 13:11:48 25 4
gpt4 key购买 nike

我认为我犯了一个简单的错误,但也许你们可以帮助我。我有一个 Jetty 网络服务器。我已经在以下位置部署了一个 servlet:

{Jetty-Folder}/webapps/BotServlet/WEB-INF
--------/lib/Server_BotServlet.jar
--------/web.xml

因此,Server_BotServlet 内部的 servlet 会适当启动,我可以通过适当的 url 访问它。我现在的问题是 Server_BotServlet.jar 内的 list 文件。

Server_BotServlet.jar
----> /META-INF/MANIFEST.MF

list 文件是使用 Eclipse 和表单中的 ANT 脚本添加的:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.4
Built-Date: 2014-04-01 18:53:54
Built-Version: 2014-04-01 18:53:54

问题:我无法在网络服务器中使用以下代码读取 list 文件:

    InputStream inputStream = getServletConfig().getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF");
if(inputStream == null) {System.out.println("Input stream is null1");}
try {
Manifest manifest = new Manifest(inputStream);
Attributes attributes = manifest.getMainAttributes();
versionString = attributes.getValue("Built-Version");
}
catch(Exception e) {
e.printStackTrace();
versionString = "N/A";
}

发生的情况是InputStream最终总是等于null。在另一种情况下,我让它打印出 getServletContext().getContextPath 并按其应有的方式显示 "/BotServlet/" 。如果我错了,请纠正我,但是当在运行时加载 jar 时,它会从上下文路径“运行”?或者我是否会错误地部署这些 jar,因为 getResourceAsStream() 似乎没有正确地看到 jar 文件。

我正在使用描述的方法 here .

最佳答案

Servlet 上下文是 /BotServlet/ 而不是 /BotServlet/WEB-INF/lib/Server_BotServlet.jar 文件。您可以将要读取的文件放入 /WEB-INF/lib/myfile.txt 中并访问该文件 - 或者您可以打开 jar (/BotServlet/WEB-INF/lib/Server_BotServlet.jar)并阅读您的 MANIFEST。实际上,这取决于您的最终目标是什么。

关于java - 使用 Servlet 读取 Jar 内的 list 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22799878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com