如何解决从war文件中的xml文件中获取值,而无需提取
我想从war文件中存在的jsp文件中读取一行。 jsp文件的路径始终相同,所以我知道要在哪里查找。我如何从war文件中的jsp中提取行,而不提取整个war文件?我不想提取,因为它至少需要几分钟才能完成,我只想从该行中获取版本值(1.2.3.210)。这就是结构的样子-
war file name --> final.war
jsp location inside the war file --> folder1/folder2/version.jsp
line inside the jsp file --> <param><value>version=1.2.3.210</value></param>
解决方法
.war
文件只是一个zip文件,因此我们可以使用unzip
做您想做的事情。假设我有一个文件sample.war
,内容如下:
Archive: ../sample.war
Length Date Time Name
--------- ---------- ----- ----
376 07-30-2007 16:26 hello.jsp
0 07-30-2007 16:26 images/
1441 07-30-2007 16:26 images/tomcat.gif
636 07-30-2007 16:26 index.html
0 07-30-2007 17:18 META-INF/
106 07-30-2007 17:18 META-INF/MANIFEST.MF
0 07-30-2007 16:26 WEB-INF/
0 07-30-2007 16:26 WEB-INF/lib/
813 07-30-2007 16:26 WEB-INF/web.xml
0 07-30-2007 16:26 WEB-INF/classes/
0 07-30-2007 16:26 WEB-INF/classes/mypackage/
1480 07-30-2007 16:26 WEB-INF/classes/mypackage/Hello.class
--------- -------
4852 12 files
我可以使用unzip
将文件index.html
提取到标准输出,如下所示:
unzip -p sample.war index.html
要从输出中获取特定行,只需将其通过管道插入sed
中即可。例如,提取包含<title>
的行:
$ unzip -p sample.war index.html | sed -n '/<title>/p'
<title>Sample "Hello,World" Application</title>
,
这对我有用。我不必安装jar,因为它已在CentOS中提供
jar -xf final.war folder1/folder2/version.jsp
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。