java ResourceLocator

Generic1

Top Contributor
Hallo,

ich habe in meiner Spring - Web- Application einen Ordner unter WebContent, in dem sich einige XML- Dateien befinden, die ich per AJAX zum Client senden möchte.
Ich hab dass in einem Servlet jetzt so gemacht, dass ich den absoluten Pfad angegeben habe, also unter Ubuntu: "/home/myname/myapplication/myproject/WebContent/myfolder/myxml.xml"

Das ist jetzt aber in zweierlei Hinsicht schlecht:

1. kann ich die Applikation nicht auf einem anderen Rechner/Server deployen
2. ich kann in der XML datei während des Betriebs nichts ändern.

Jetzt wollte ich Punkt 1 mal ausbessern, indem ich einen ResouceLocator verwenden wollte aber da wurde mir bei "ClassPathXMLResourceLocator#exists()" false zurückgegeben.

Weiß jemand, wie ich 1. am besten lösen könnte mit dem ResourceLocator, hat jemand eine Ahnung was ich da falsch mache bzw. hat jemand ein Beispiel wie man das macht.

zu 2.: Da wird mir wahrscheinlich nichts anderes übrig bleiben als das ich die XML- Files in eine DB speichere um diese dann zur Laufzeit ändern zu können, oder?

lg
 

FArt

Top Contributor
Hallo,

ich habe in meiner Spring - Web- Application einen Ordner unter WebContent, in dem sich einige XML- Dateien befinden, die ich per AJAX zum Client senden möchte.
Ich hab dass in einem Servlet jetzt so gemacht, dass ich den absoluten Pfad angegeben habe, also unter Ubuntu: "/home/myname/myapplication/myproject/WebContent/myfolder/myxml.xml"

Das ist jetzt aber in zweierlei Hinsicht schlecht:

1. kann ich die Applikation nicht auf einem anderen Rechner/Server deployen
2. ich kann in der XML datei während des Betriebs nichts ändern.

Jetzt wollte ich Punkt 1 mal ausbessern, indem ich einen ResouceLocator verwenden wollte aber da wurde mir bei "ClassPathXMLResourceLocator#exists()" false zurückgegeben.

Weiß jemand, wie ich 1. am besten lösen könnte mit dem ResourceLocator, hat jemand eine Ahnung was ich da falsch mache bzw. hat jemand ein Beispiel wie man das macht.

zu 2.: Da wird mir wahrscheinlich nichts anderes übrig bleiben als das ich die XML- Files in eine DB speichere um diese dann zur Laufzeit ändern zu können, oder?

lg

Resourcelocator ist m.E. der falsche Ansatz, bzw. sollte verwendet werden wenn andere Ansätze scheitern. Was spricht dagegen, die XML Dateien aus dem Klassenpfad des Servlets zu laden, bzw. warum müssen diese geändert werden (falsches Design?)...
Wenn das aus dem Klassenpfad nicht funktioniert, warum versuchst du es dann mit einem ClasspathResoruceLocator und nicht aus dem Filesystem, oder eben, wie du schon bemerkt hast aus der DB?
 
Zuletzt bearbeitet:

Generic1

Top Contributor
>> die XML Dateien aus dem Klassenpfad des Servlets zu laden, bzw. warum müssen diese geändert werden (falsches Design?)...

Wie kann ich das machen? Die XML- Dateien müssen deshalb geändert werden, weil da News (in meinem Fall Event- News) drinnenstehen, die sich von Zeit zu Zeit ändern.
 

FArt

Top Contributor
>> die XML Dateien aus dem Klassenpfad des Servlets zu laden, bzw. warum müssen diese geändert werden (falsches Design?)...

Wie kann ich das machen? Die XML- Dateien müssen deshalb geändert werden, weil da News (in meinem Fall Event- News) drinnenstehen, die sich von Zeit zu Zeit ändern.

Wer ändert diese Daten? Sind solche Daten nicht sinnvoller in einer DB aufgehoben? Welchen zwingenden Grund gibt es diese in Dateiform zu halten?
 

Generic1

Top Contributor
Sie sind dann leichter editierbar wenn ich z.B.: header und text in einem Tag habe und wenn ich diese dann mittels AJAX zum Client schick, dann ist XML im Client auch leichter auszulesen, deshalb hab ich mich für XML entschieden.
Wenn ich das ganze XML jetzt in der DB habe, dann muss ich das zuerst auslesen, dann eine XML daraus machen und dann erst mittels AJAX zum Client schicken -> das hab ich in diesem Fall als ziemlich aufwendig empfunden, deshalb hab ich gleich ein XML- File gemacht.
Fällt euch da vielleicht noch eine bessere?
 

FArt

Top Contributor
Wer editiert warum die XML Daten, also warum müssen die Daten editierbar sein?
Ist das ein Hack zur Entwicklungszeit? Soll produktiv an den Daten geändert werden?
 

Generic1

Top Contributor
Der Admin (also ich wenns meine WebSeite ist) editiert die XML - Dateien damit von zeit zu Zeit neue Infos am Client angezeigt werden.
Das sollte schon auch im produktiven Zustand funktionieren also ohen das ich neu deployen muss.
 

Generic1

Top Contributor
Ich frag mich jetzt gerade, wie ich das in der DB speichern soll, es gibt ja mehrere Events:

DB- Table:
Code:
ID | HEADER | TEXT
1     Header1   Text1
2     Header2   Text2 
....

Da müsste ich jetzt dann für jeden Event eine eigene Tabelle machen, da ja sonst die Texte zu allen Events in einer Tabelle wären und ich jetzt eigentlich nicht so richtig weiß nach was ich da filtern soll.
Auf der anderen Seite, für jeden Event eine neue Tabelle anlegen ist auch nicht das wahre.
Hat da jemand eine Idee wie ich aus einer Tabelle vernünftig ausfiltern kann?
lg
 

FArt

Top Contributor
Wenn es unbedingt XML Dateien sein müssen:
Die meisten Server unterstützen hot deployment. Baue dir einen Service (kann ein SLSB sein), welcher deine XMLs ausliefert. Dieses EJB wird mit den XMLs zusammend deployt und lädt die XMLs aus dem Klassenpfad. Wenn du die Dateien ändern möchtest, dann machst du ein Hotdeployment dieses Beans mit Ressourcen.
Das wäre ok, wenn das eher Ausnahmefälle sind.

Wenn das ein Feature der Applikation sein soll, dann ist XML (bzw. Files) die falsche Wahl. Schreibe die Daten in die Datenbank.

Wenn beides nicht passt, dann nimm einen passenden ResourceLocator, also einen der auf das Filesystem geht. Das finde ich persönlich aber nur dann eine gute Lösung, wenn eine Fileschnittstelle als Anforderung unabdingbar gesetzt ist.

Nach was willst du denn Filtern, wenn du die Dinger in die DB schreibst? Nach was filterst du denn jetzt auf Dateibasis?
 

Generic1

Top Contributor
Jetzt ist es so, dass ich in der View eine ComboBox habe und wenn ich einen Eintrag selektiere, dann schick ich diesen Eintrag zum Backend und dort gibt es genau eine Datei, die so heißt wie das selektierte Item z.B.: Münchner Lauf und im Backend häng ich dann noch ein xml drann -> die Datei heißt dann "Münchner Lauf.xml"
 

FArt

Top Contributor
Jetzt ist es so, dass ich in der View eine ComboBox habe und wenn ich einen Eintrag selektiere, dann schick ich diesen Eintrag zum Backend und dort gibt es genau eine Datei, die so heißt wie das selektierte Item z.B.: Münchner Lauf und im Backend häng ich dann noch ein xml drann -> die Datei heißt dann "Münchner Lauf.xml"

Aua... tu das nicht.
Das Editieren ist also eine regläre Funktion deiner Applikation und wird oft benötigt. Schreib das Zeug in eine Datenbank. Diese Fileschnittstelle ist ein äußerst schlechtes Design für dynamischen bzw. veränderbaren Content deiner Applikation.
 

Generic1

Top Contributor
Ja, ich weiß, deshalb die Frage hier, dann muss ich mir halt noch was suchen, nach dem ich filtere in meiner DB, die schaut ja dann so ungefähr aus:

Code:
            HEADER              |              TEXT
  
     Lauf Düsseldorf                       Dieser Lauf ist hervorragend :-) ...
     Marathon München                  blabla
     Düsseldorf                             Unterkunft in ...

Es kann aber jetzt in Düsseldorf 2 Läufe geben und ich weiß jetzt nicht genau, wie ich das am Besten machen kann, ich müsstewahrscheinlich eine ID vergeben oder so.
Hat da jemand eine Idee?

Und meine zweite Frage wäre jetzt, wenn ich die "Tuples" jetzt aus der DB auslese, macht es sinn dann aus diesem Tuples eine XML- Struktur zu erzeugen, damit ich die dann am Client einfacher verarbeiten kann?
lg
 

FArt

Top Contributor
Ja, ich weiß, deshalb die Frage hier, dann muss ich mir halt noch was suchen, nach dem ich filtere in meiner DB, die schaut ja dann so ungefähr aus:

Code:
            HEADER              |              TEXT
  
     Lauf Düsseldorf                       Dieser Lauf ist hervorragend :-) ...
     Marathon München                  blabla
     Düsseldorf                             Unterkunft in ...

Es kann aber jetzt in Düsseldorf 2 Läufe geben und ich weiß jetzt nicht genau, wie ich das am Besten machen kann, ich müsstewahrscheinlich eine ID vergeben oder so.
Hat da jemand eine Idee?

Und meine zweite Frage wäre jetzt, wenn ich die "Tuples" jetzt aus der DB auslese, macht es sinn dann aus diesem Tuples eine XML- Struktur zu erzeugen, damit ich die dann am Client einfacher verarbeiten kann?
lg

Der "Filter" ist doch jetzt im Prinzip im sprechenden Filenamen verbaut, oder? Da musst du somit nichts ändern. Sonst kannst du ja noch Stichworte vergeben, evtl. ein Datum dazu, eine laufende Nummer usw. Vielleicht auch Referenzen auf andere Beiträge pflegen (ältere oder verwandte) usw.

Wenn auf der Empfängerseite bereits XML verarbeitet wird oder wenn es einfach ist mit XML auf der Clientseite zu arbeiten, ist es nicht sehr kompliziert auf der Serverseite das XML on-the-fly zu generieren und über die Leitung zu schicken. Da würden mir APIs wie Castor oder JAXB uvm. einfallen, die ein Mapping von XML <-> Java-Klassen realisieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Java ServerFaces Anwendung mit XHTML & CSS Allgemeines EE 1
E modulare Java-Anwendung verteilen (Camel) Allgemeines EE 0
B Java Mail und idle() mit zig Emailadressen? Allgemeines EE 59
H JWebUnit Fehler: java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException Allgemeines EE 24
B Java mail API - möchte nur eine gewisse Anzahl von Emails in die Liste holen Allgemeines EE 3
M Rest mit Java 11 Allgemeines EE 6
M java.lang.SecurityException: class "javax.persistence.TupleElement"'s signer information does not match ... Allgemeines EE 1
F Java Programmierer Allgemeines EE 13
R Wie viel DevOps sollte ein Java-Entwickler kennen, der sich in Microservices spezialisiert? Allgemeines EE 5
Dimax JSP Probleme mit Java in JSP Allgemeines EE 21
Dimax JSP Auf button click java methode ausführen.Ist das möglich? Allgemeines EE 6
B Logging (log4j) in JAVA EE application - WildFly Allgemeines EE 15
A Java EE (am Cleint) und websocket Allgemeines EE 8
J Ich kann Java JDK nicht downloaden Allgemeines EE 6
R Aufbau zum Java EE Entwickler - Schulungen Allgemeines EE 0
G Java EE Hosting ? Allgemeines EE 6
P Java EE Videotutorials Allgemeines EE 1
R Java Enterpise entwickeln mit Virtualbox Allgemeines EE 6
A OutOfMemoryError: Java heap space Allgemeines EE 7
I Start Word from Java Allgemeines EE 1
T Java Jersey Interceptor Allgemeines EE 7
R Post Variable in Java Allgemeines EE 8
L JSP Fehlermeldung bei Verwendung von Java-Expression-Language Allgemeines EE 8
K Wie habt ihr Java EE gelernt? Allgemeines EE 11
hjpsoft JSF Lösung einer Aufgabe im "Workshop Java EE7" Allgemeines EE 5
S Welcher Java EE Applikationserver für RESTful Webservice? Allgemeines EE 2
T Java Login Allgemeines EE 1
L Certified Master Java Enterprise Architect Java EE Allgemeines EE 3
R Java EE 6, eclipse, maven, jsf, hibernate, mysql Allgemeines EE 8
D Einfaches Java Projekt funktioniert nicht Allgemeines EE 3
W Authentifizierung und Sessions in Java EE7 Allgemeines EE 0
OnDemand Task in Java ee Allgemeines EE 7
OnDemand JSF - java File Verständnisfrage Allgemeines EE 5
OnDemand Deployen ohne .java Files Allgemeines EE 0
E Wie kann ich über einen Suchfeld in Java Server Pages nach Datenbankinhalten suchen? Allgemeines EE 11
V Java EE 7 CDI, annotations und beans Allgemeines EE 1
G Bachelorthesis: Java oder PHP (CMS) Allgemeines EE 7
X Konsolenausgabe einer java klasse in eine jsp umleiten Allgemeines EE 7
S Aufruf eines EJBs aus einer nativen Java-Applikation Allgemeines EE 1
T Fertiges html javascrip css template in java EE application Allgemeines EE 0
F Eclipse/Java EE Debug-Problem Allgemeines EE 1
D Java Projekt goes Webservice Allgemeines EE 6
L Button Handling in JSP mit Java-Backend Allgemeines EE 2
Shams Frage zu Dowload von JAVA SDK Allgemeines EE 5
T Größeres Java EE Beispiel Projekt Allgemeines EE 4
N JavaScript schickt und Java empfängt? Allgemeines EE 4
O Java EE in Netbeans + allgemeine Fragen Allgemeines EE 5
H java selenium spezis? Allgemeines EE 4
H java selenium test connection refused Allgemeines EE 6
M Java EE-Technologie-Lern-Wahl Allgemeines EE 5
B [EJB] javax.inject.DefinitionException: bean not a Java type Allgemeines EE 5
J Java Dependencies auslesen Allgemeines EE 19
2 installation java EE Allgemeines EE 12
J PHP oder Java? Allgemeines EE 12
L Webseiten Formulare über Java Oberfläche ausfüllen? Allgemeines EE 2
T Java CMS Entwicklung : Welcher Weg ist besser? Allgemeines EE 9
F Gesucht: Gratis Server für Java Entwickler Allgemeines EE 4
J Einstieg in Java EE Allgemeines EE 5
aze Eclipse Java EE Web Project:Wo liegen die Servlets ? Allgemeines EE 4
S java Entities Problem Allgemeines EE 19
D Grundüberlegung Java Webprojekt Allgemeines EE 10
F Einstieg in Java EE - Beispielanwendungen Allgemeines EE 52
R JAVA EE - eigene Klassen aus EJB übernehmen Allgemeines EE 2
T "normales" Java Programm auf einen Server laufen lassen Allgemeines EE 3
M EE6+EJB+JavaLib: Error in annotation processing: java.lang.NoClassDefFoundError Allgemeines EE 4
M Was ist mit Java möglich? Allgemeines EE 13
T Komponenten zusammenhänge Java EE Allgemeines EE 7
A Java CMS Allgemeines EE 2
P Architektur Java EE <-> HTML5 Allgemeines EE 3
A Java Tomcat findet Website nicht Allgemeines EE 8
F Java EE Server nutzung kostenlos an Schule? (zB. mit Glassfish) Allgemeines EE 6
B Java EE, kickstart my heart Allgemeines EE 10
P Frage zu Java EE Design Patterns Allgemeines EE 3
G EJB und Java EE - No Persistence provider Allgemeines EE 5
zilti Java EE Hosting, worauf muss ich achten? Allgemeines EE 5
M Java EE6: Wie Login-Vorgang durchführen? Allgemeines EE 2
MQue Java Web- Application -> MVC Allgemeines EE 4
G Java <-> Flex Allgemeines EE 2
Spin Ant - Java Beans umsetzen Allgemeines EE 4
V "null" durch NICHTS ersetzen jsp und java beans Allgemeines EE 3
M Serialisierung und Klonen in Java Allgemeines EE 5
W JAVA Optionen auslesen Allgemeines EE 3
D Spring 3 vs. Java EE 6 Allgemeines EE 33
MQue CMS in Verbindung mit Java Allgemeines EE 16
X3TitanCore Java Servertechnologie Allgemeines EE 7
C WebStart Fehler nach update auf Java 1.6 Allgemeines EE 2
R Variablen statt Java-Methoden in EL's Allgemeines EE 4
T Suche Buch für: Large Scale Web-Apps | Clustering | Scaling in Java ? Allgemeines EE 4
G Vergleich zwischen Java Spirng und Ruby on Rails Allgemeines EE 9
K EJB Enterprise Java Beans Allgemeines EE 32
F Ich will mit Java Internetseiten bauen, aber wo hosten? Allgemeines EE 14
J OOP Java Array Problem Allgemeines EE 2
T Problem mit Java Transaction API Allgemeines EE 2
D Java EE vs. Spring/Hibernate Allgemeines EE 26
R Java EE Anfänger will mehr. Allgemeines EE 7
A Fragen zum Einstieg in Java EE Allgemeines EE 11
M Evolution der Web-Entwicklung im Java-Bereich Allgemeines EE 15
N erstes Java EE Projekt - Server/ EJB-Verbindung-Anfängerfage Allgemeines EE 17
G Von Java SE nach JavaEE umsteigen Allgemeines EE 31
K Java Application Server + ganttproject *.jar Anwendung Allgemeines EE 6

Ähnliche Java Themen

Neue Themen


Oben