Ein häufiges Problem bei Dateien aus dem Classpath Lesen wird immer Der Ort ist in Ihrer WAR-Datei korrekt.
In Java, ein Servlet namens myservlet konnte die Datei wie diese
InputStream is=MyServlet.getClass().getResourceAsStream("/path/to/file/example.txt")
Referenz, die eine Datei unter
gespeichert finden wird
WEB-INF/classes/path/to/file/example.txt
Hinweis der führende/welche fängt die Menschen oft aus.
Es ist möglich, dass der Anwendungscontainer aus dem lokalen Dateisystem liest (sagen Sie, wenn Sie externe Eigenschaften erhalten wollten und JNDI nicht verwenden wollten). Dafür würde man den üblichen Dateizugriff Prozess verwenden:
InputStream fis = FileInputStream(new File("/usr/share/myapp/another-example.txt"));
Natürlich, wenn man es Punkt DOM will, dann könnte myservlet folgende Angaben enthalten:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = dbf.newDocumentBuilder();
InputStream is = MyServlet.getClass().getResourceAsStream("/path/to/my/example.xml");
Document document = documentBuilder.parse(new InputSource(is));
// And start exploring the NodeList...
NodeList nodeList = document.getFirstChild().getChildNodes();
, die den Trick tun sollen.
@Gray Rowe- was, wenn ich kein Objekt von Servlet machen möchte ??? Wie kann ich diese MyServlet.getClass() verwenden. GetResourceAsStream ("/ Pfad/zu/meinem/Beispiel.xml"); – palAlaa
@Alaa Der obige Ansatz funktioniert für jede Klasse. Ihr Servlet könnte nur eine Instanz der Klasse aufrufen, die die Suche behandelt, ersetzen Sie einfach das MyServlet durch den entsprechenden Klassennamen. –
es funktioniert, muss ich den XML-Speicherort innerhalb des Servlet angeben, damit ich verwende: InputStream fis = this.getClass(). GetResourceAsStream ("/ FormFieldsNames.xml"); Vielen Dank – palAlaa