2016-08-26 24 views
0

/WEB-INF/libフォルダの下にあるjarファイルのダウンロードリンクを作成する方法を教えてください。apache-tomcatです。私は私のローカルのハードディスクにリモートサーバからダウンロードできるように、このjarファイルのダウンロードURLを構築したいapache-tomcat WEB-INF/libフォルダの下にあるjarファイルのダウンロードURLをリモートサーバから作成するには?

jar:file:/var/lib/tomcat7/webapps/cs/WEB-INF/lib/commons-fileupload-1.3.1.jar!/org/apache/commons/fileupload/disk/DiskFileItem.class 

:私は、として次のjarファイルの場所を取得することができています。

私は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; 
    } 
} 
+0

jarを静的コンテンツの場所に移動し、そこから配信してみませんか? – farrellmr

+0

それは内部だけです..公共のためのサービスではありません。私たちは特定のアプリケーションにログインします。プログラムでは、私はjarフォルダの場所にアクセスできます。私はjarのバージョンとjarのマニフェストの詳細を見つけることができますが、何とかjarのダウンロードURLを構築する方法が分かりません –

答えて

0

をそれは、URLに対するアクセス要求からのtomcatにより保護されているので、あなたは、WEB-INFフォルダの下に任意のリソースに直接アクセスすることはできません。

WEB-INF内から任意のリソースにアクセスする必要がある場合は、このWEB-INF要素にアクセスしてそれらを返すJavaコンポーネント(サーブレット、フィルタ、コントローラなど)を構築する必要があります。

+0

はい、私はjarのバージョンを見つけるための実装を持っています。私はjarのバージョンを見つけるためのコードを含めるように私の質問を編集しましたが、私はjarファイルをダウンロードできるようにjarのダウンロードリンクを生成することができません。このコードはJSPスクリプトレット内に記述されています –

関連する問題