2017-02-16 4 views
0

Ich versuche, auf GeoLiteCity-Datei zuzugreifen, es funktioniert auf meinem lokalen Computer, aber nicht in der Cloud (Azure) Pfad abrufen. Datei gespeichert genau Hierarchie wie:Zugriff auf lokale Datei in Cloud-Umgebung

/src/main/resources/database/GeoLiteCity.dat 

Mein Code:

void getFile() { 
    if (this.file == null) { 
     try { 
      URL url = this.getClass().getClassLoader().getResource("database/GeoLiteCity.dat"); 
      this.file = new File(url.toURI()); 
      System.out.println(file.getPath().toString()); 

     } catch (Exception ex) { 
      System.out.println(file.getPath().toString(),ex); 
     } 
    } 
} 
+0

Welchen Azure-Dienst haben Sie verwendet? Azure WebApps oder Cloud-Dienste? –

Antwort

0

Annahme, dass der Code ein Teil der Java WebApp läuft auf Tomcat ist. Nach meiner Erfahrung, wenn Sie die Ressource über die Methode this.getClass().getClassLoader().getResource("<the data file path relative to the root classes path>") erhalten möchten, so stellen Sie sicher, dass die Datendatei GeoLiteCity.dat unter dem Pfad webapps/<your-webapp-name>/WEB-INF/classes/database/.

Wenn Ihre Webanwendung in Azure WebApp bereitgestellt wurde, können Sie versuchen, den absoluten Pfad der Datendatei in Azure WebApp zu verwenden, z. B. D:/home/site/wwwroot/webapps/<your-webapp-name>/<the data file path>, und nur new File("<the absolute path of data file>") verwenden.

Verwandte Themen