Ich möchte eine XML-Datei zu meinem Java ee-Projekt hinzufügen und sie in meinem Code verwenden, aber wenn ich die Datei aus dem src-Verzeichnis adressiere, versteht sie meine Adresse nicht und sucht nach einer Datei im bin-Verzeichnis von tomcat. Mein Projekt verwendet Wicket Framework und JavaEE. weiß jemand, wie die Datei zu adressieren ist oder wo sollte ich die Datei für den Zugriff aus dem Projekt platzieren?Wie füge ich Java EE-Projekten eine Datei hinzu?
Antwort
Wenn Ihre XML-Datei eine Ressource ist, auf die nur serverseitig zugegriffen werden muss, ist es am besten, sie im WEB-INF-Verzeichnis innerhalb Ihres War oder in einem Unterverzeichnis innerhalb des WEB-INF zu platzieren. Auf diese Weise stellen Sie sicher, dass die Ressource nicht über das Internet zugänglich ist.
Dann können Sie es abrufen ServletContext.getResource verwenden, wie von Peter D.
wies darauf hin,Zum Beispiel in einem Servlet Sie es auf diese Weise abrufen kann (Ausnahme weggelassen Abwicklung):
String path = "/WEB-INF/my.xml";
URL url = getServletConfig().getServletContext().getResource(path);
InputStream in = url.openStream();
// read content from input stream...
In Ihrem Servlet können Sie:
this.getServletContext().getResource(path);
public java.net.URL getResource(java.lang.String path)
throws java.net.MalformedURLException
Gibt eine URL an die Ressource, die auf einen bestimmten Pfad zugeordnet ist. Der Pfad muss mit einem "/" beginnen und wird als relativ zum aktuellen Kontextstamm interpretiert.
Mit dieser Methode kann der Servlet-Container eine Ressource für Servlets aus beliebigen Quellen verfügbar machen. Ressourcen können sich auf einem lokalen oder entfernten Dateisystem, in einer Datenbank oder in einer WAR-Datei befinden.
Der Servlet-Container muss die URL-Handler und URLConnection-Objekte implementieren, die für den Zugriff auf die Ressource erforderlich sind.
Diese Methode gibt null zurück, wenn dem Pfadname keine Ressource zugeordnet ist.
Einige Container können möglicherweise das Schreiben auf die von dieser Methode zurückgegebene URL mit den Methoden der URL-Klasse zulassen.
Der Ressourceninhalt wird direkt zurückgegeben. Beachten Sie daher, dass das Anfordern einer JSP-Seite den JSP-Quellcode zurückgibt. Verwenden Sie stattdessen einen RequestDispatcher, um Ergebnisse einer Ausführung einzuschließen.
Diese Methode hat einen anderen Zweck als java.lang.Class.getResource, der nach Ressourcen auf der Basis eines Klassenladeprogramms sucht. Diese Methode verwendet keine Klassenladeprogramme.
Normalerweise wird src zur Laufzeit nicht verwendet. Ich benutze keinen Tomcat, aber in meiner Umgebung habe ich Aufgaben erstellt, die Nicht-Java-Dateien von src in das Verzeichnis bin kopieren.
Möglicherweise müssen Sie die Datei öffnen, indem Sie den Klassenlader getResourceAsStream() verwenden, so dass Sie dieselben Verzeichnisse durchsuchen, aus denen Ihre Klassen stammen.
Dies setzt voraus, dass Sie die XML in die Anwendung liefern möchten. Alternativ können Sie es lieber woanders haben. URI-Ressourcenreferenzen helfen möglicherweise
Warum platzieren Sie die XML-Datei nicht in Ihrem Ressourcenverzeichnis. Sie können auf jede Klasse zugreifen mit:
MyClass.class.getClassLoader(). GetResourceAsStream (Dateiname);
- 1. Wie füge ich eine lokale Datei in JSfiddle hinzu?
- 2. Wie füge ich eine .svc-Datei in Visual Studio hinzu
- 3. Wie füge ich einer CSV-Datei eine neue Spalte hinzu?
- 4. Wie füge ich beim Herunterladen einer Datei eine Erweiterung hinzu?
- 5. Wie füge ich eine benutzerdefinierte Überprüfungsregel hinzu?
- 6. Wie füge ich Firefox eine Schaltfläche hinzu?
- 7. Wie füge ich eine Logout-Funktion hinzu?
- 8. Wie füge ich datetimepicker hinzu und füge zweiten hinzu?
- 9. Wie füge ich Multithreading hinzu?
- 10. Wie füge ich einer bestehenden Datei in Java eine neue Textzeile hinzu?
- 11. Wie füge ich JMenuBar Shortcuts hinzu?
- 12. Wie füge ich zwei java.lang.Numbers hinzu?
- 13. Spring Security: Java Config: Wie füge ich den Methodentyp hinzu?
- 14. In Java, wie füge ich domainübergreifenden Zugriff hinzu
- 15. Java, Wie füge ich Werte zum Objekt-Array hinzu
- 16. Wie füge ich ein Wasserzeichen zu einer PDF-Datei hinzu?
- 17. Wie füge ich einer JTextArea eine Rechtschreibprüfung hinzu?
- 18. Wie füge ich eine Zeile am Ende meiner Tabelle hinzu?
- 19. Wie füge ich Text zu einem Bild in Java hinzu?
- 20. Java: Wie füge ich Bild zu Jlabel hinzu?
- 21. Wie füge ich Mnemonics in Java Swing hinzu?
- 22. Wie füge ich den neuen Währungscode zu Java hinzu?
- 23. ActionMailer - Wie füge ich einen Anhang hinzu?
- 24. Wie füge ich Datenattribute zu Html.BeginForm hinzu
- 25. Wie füge ich meinem iOS/Xcode-Projekt eine MP3 hinzu?
- 26. Wie füge ich eine neue Seite hinzu und füge alle Produkte dazu in opencart hinzu?
- 27. Wie füge ich mehrere Spalten zu einer Tabelle hinzu und füge Standardeinschränkungen für eine davon hinzu?
- 28. Wie füge ich eine leere Zeile zwischen zusammengeführten Dateien hinzu
- 29. CMake: Wie füge ich eine benutzerdefinierte generische Kompilierungsregel hinzu?
- 30. Wie füge ich ein Skriptpaket bedingt hinzu?
geben Kredit/Link, wo es fällig ist: http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/ServletContext.html # getResource (java.lang.String) –
sein JEE, müssen wir wirklich sagen, woher es kommt? Die Antwort ist hilfreich und relevant, es wird kein Downvote – djna
ausgeführt, aber es wird einfach kopiert und aus der Quelle eingefügt, ohne einen Bezug darauf zu haben. –