Может кто-нибудь скажет мне, как создать ссылку для загрузки файла jar, который находится под папкой /WEB-INF/lib
от apache-tomcat
. Я в состоянии получить следующую банку местоположение файла:Как создать URL-адрес для загрузки файла jar, расположенный под папкой WEB-INF/lib apache-tomcat с удаленного сервера?
jar:file:/var/lib/tomcat7/webapps/cs/WEB-INF/lib/commons-fileupload-1.3.1.jar!/org/apache/commons/fileupload/disk/DiskFileItem.class
Я хочу построить скачать URL для этого банка файла, так что я могу загрузить с удаленного сервера, на мой локальный жесткий диск.
У меня следующий код для поиска Java-версии:
public static Map<String, String> getJarVersions(ICS ics, ServletContext context)
{
ServletContextResource resource = new ServletContextResource(context, "/WEB-INF/lib/");
File file = null;
try
{
file = resource.getFile();
}
catch (IOException e)
{
log.error("Error reading /WEB-INF/lib/ directory. ", e);
return new HashMap(0);
}
File[] jarFiles = file.listFiles();
Map<String, String> jarNameVersion = new HashMap();
File[] arr$ = jarFiles;int len$ = arr$.length;
for (int i$ = 0; i$ < len$;)
{
File jarFile = arr$[i$];
JarFile jarfile = null;
Manifest manifest = null;
try
{
jarfile = new JarFile(jarFile);
manifest = jarfile.getManifest();
if (manifest != null)
{
Attributes attrs = manifest.getMainAttributes();
String version = attrs.getValue("Implementation-Version");
String vendor = attrs.getValue("Implementation-Vendor");
if (vendor == null) {
vendor = "Not applicable";
}
if (version == null) {
version = "Not applicable";
}
version = version + " : " + vendor;
jarNameVersion.put(jarFile.getName(), version);
}
else
{
jarNameVersion.put(jarFile.getName());
}
if (jarfile != null) {
try
{
jarfile.close();
}
catch (IOException e)
{
log.error("Error thrown while closing the jar file ");
}
}
i$++;
}
catch (IOException e)
{
log.error("Error reading JAR/MANIFEST file . ", e);
}
finally
{
if (jarfile != null) {
try
{
jarfile.close();
}
catch (IOException e)
{
log.error("Error thrown while closing the jar file ");
}
}
}
}
return jarNameVersion;
}
}
Почему бы не переместить банки в место статического содержимого и оттуда оттуда? Это будет безопаснее – farrellmr
это только для внутреннего использования .. не для того, чтобы служить публике .. мы заходим в определенное приложение, где с программным обеспечением у меня есть доступ к местоположению папки jar. Я могу найти jar-версию и детали манифеста jar, но почему-то не знаю, как построить jar download url –