Announcement

Collapse
No announcement yet.

dateizugriff in jsf / relativer pfad zu basisverzeichnis?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • dateizugriff in jsf / relativer pfad zu basisverzeichnis?

    Hallo zusammen!

    Ich möchte in meiner JSF Anwendung mittels eines FileWriters Texte in eine log Datei schreiben, und weiss leider nicht genau, wie ich den relativen Pfad zu dieser Datei angeben soll. Bei einer "normalen" Java Anwendung würde ich ja den Pfad relativ vom Basisverzeichnis aus angeben, wie aber mache ich das bei einer JSF Anwendung? Hab schon alles mögliche ausprobiert, aber irgendwie hat nix geklappt.

    Hier der Codeausschnitt der Klasse, in der der Filewriter benutzt werden soll :

    try
    {
    FileWriter fileWriter = new FileWriter("dbmsverbindung.log");
    PrintWriter logWriter = new PrintWriter(fileWriter);
    DriverManager.setLogWriter(logWriter);
    System.out.println(
    "\nMeldungen der Klasse DBMSVerbindung finden Sie in der Datei\n"+
    "logs/dbmsverbindung.log.\n");
    String meldung =
    "\nLogbuchmeldungen der Klasse DriverManager werden in die Datei\n"+
    "\"logs/dbmsverbindung.log\" umgelenkt.\n";
    // Logschreibung in der Datei beginnen
    dateilogging = true;
    protokolliereMeldung(meldung,null);
    }

    Wo muss ich also nun die Datei "dbmsverbindung.log" in meiner JSF-Projektverzeichnisstruktur anordnen, damit ich so wie angegeben drauf zugreifen kann?

    Übrigens klappt das ganze wenn ich eine absolute Pfadangabe einsetze, also was wie "C:/Projekt/src/dbmsverbindung.log".

    Besten Dank für jeden Tipp!

  • #2
    Hey,

    benutze einfach mal die $CATALINA_HOME Umgebungsvariable, dann kannst du dich weiter ins Log Verzeichnis vom Tomcat bewegen. CATALINA_HOME
    kannst du so auslesen

    System.getenv("CATALINA_HOME") ;


    Hoffe es hilft

    Comment


    • #3
      ServletContext

      Hi,

      JSF-Seiten werden wie JSPs im Servlet-Container zu Servlets kompiliert. Man kann sich also einfach den Servlet-Context holen und hat damit den Pfad auf das WebContent-Verzeichnis, welches die Root dieser Application ist.
      Einfach folgende zwei Zeile benutzen:
      ServletContext context = (ServletContext) FacesContext.getCurrentInstance().getExternalConte xt().getContext();
      String realPath = context.getRealPath("/");

      Gruß
      Holger

      Comment

      Working...
      X