Tomcat - Mehrere Verzeichnisse für die jsp

Status
Nicht offen für weitere Antworten.

mmaki

Mitglied
Hallo.

Ich brauche mal eure Hilfe. Ist es möglich Tomcat so zu konfigurieren, dass die jsp eines gleichen Contexts in mehreren Verzeichnissen abgelegt sind?

Im Detail: In unserer Firma gibt es Basis-jsp und Kundenspezifische jsp. Die sind im SVN folgendermassen abgelegt:

/base/jsp/*
/kunde1/jsp/*
/kunde2/jsp/*
/kunde3/jsp/*

Bei der Auslieferung an den Kunden werden da einfach zuerst die Basis-jsp kopiert und dann die Kundenspezifischen jsp drüberkopiert. Soweit ist das ja auch in Ordnung, nur zum Entwickeln ist diese Struktur echt mühsam. Tomcat ist lokal so konfiguriert, dass die jsp vom /base/jsp kommen. Wenn ich jetzt etwas in den jsp von kunde2 mach, muss ich immer diese jsp ins /base/jsp/ kopieren, damit ich das bei mir lokal testen kann. Ausserdem hab ich dann das jsp immer doppelt in meiner IDE; BreakPoints muss ich in der base-jsp setzen und ändern in der kunden-jsp...

Gibt es irgendeine Möglichkeit, Tomcat dazu zu bringen, dass er zuerst die jsp im kunden-verzeichnis holt und wenn nicht gefunden vom base?

Ich möchte möglichst auf FileSyncs und dergleichen verzichten um mich möglichst einfach und effizient auf das wesentliche zu konzentrieren. Leider kann ich auch nichts an den SVN-Strukturen ändern... Ich hoffe jemand kann mir helfen...

Danke & Gruss
mmaki.
 

Noctarius

Top Contributor
Apache davor hängen und mit URL Rewrite "http://xxx.localhost" umbiegen nach "http://localhost/xxx", so zumind. mach ich das in der Firma. Alternativ könntest du deinem base.jsp einen Parameter mitgeben "cs" (für CustomerDesign) und überprüfen ob dieser gesetzt wurde, falls ja Redirect senden.
 

mmaki

Mitglied
Danke erst mal für die Antwort. Ich weiss jetzt nicht ob das mein Problem löst?

Vielleicht muss ich noch präzisieren. Im SVN sind die jsp folgendermassen abgelegt:
Code:
base/
	jsp/
		a.jsp
		b.jsp

kunde1/
	jsp/
		c.jsp
		d.jsp

kunde2/
	jsp/
		c.jsp
		d.jsp
Beim Kunden wird dann jeweils folgendermassen ausgeliefert
Code:
jsp/
	a.jsp
	b.jsp
	c.jsp
	d.jsp
Also ins gleiche Verzeichnis wird dann jeweils zuerst das base, danach das Kundenspezifische drüber kopiert.

Ich würde jetzt gerne bei mir lokal Tomcat so konfigurieren, dass es bei mir lokal so verhält, wie wenn obiges gemacht werden würde. Dadurch könnte ich lokal immer an den SVN-Files direkt arbeiten, ohne dass ich zum Testen die kundenspezifischen ins base/jsp/ kopieren muss.

Zur Zeit ist bei mir lokal das base.xml folgendermassen:

[XML]
<Context path="/base"
reloadable="true"
docBase="...\base\jsp"
workDir="...\base\jsp\.work" />
[/XML]
Ich suche eine Lösung in der Form (das ist jetzt keine gültige Definition, aber nur mal so zum besseren Verständnis des Problems):
[XML]
docBase="...\kunde1\jsp;...\base\jsp"
[/XML]

Sozusagen zuerst kunde1\jsp, dann base\jsp. Vielleicht hat jemand eine gute Lösung wie ich lokal an den verschiedenen SVN-Files arbeiten kann (also base und kunden), ohne jedes Mal die kundenspezifischen in die base kopieren zu müssen…

Danke und Gruss
mmaki.
 

Noctarius

Top Contributor
Warum kopier ihr diese drüber und lasst nicht nachschauen ob es ein Kundendesign gibt und dann eventuell weiterleiten?

Ansonsten keine Ahnung ob man den Tomcat so einrichten kann, da wir alle Kundendesigns parallel brauchen und erst zur Laufzeit entschieden wird, welches anzuzeigen ist.
 
M

maki

Gast
Finde dieses ganze "System" suboptimal, würde da persönlich zu einem Branch pro Kunde tendieren, mit den genau den Dateien in der Version die für den Kunden gedacht sind.
 

Noctarius

Top Contributor
Ich würde das ganze eigentlich mit einem Templatesystem ausstatten und nur das Design zur Laufzeit anpassen. Hunderte JSPs anpassen wenn irgendwo ein Bug ist, würde mich zum kot.... bringen :D
 
M

maki

Gast
Dafür gibt es doch SVN Merge ;)

Aber wenn wirklich nur das Layout betroffen ist und keine Logik dann ist ein Templatemechanismus wirklich die bessere Lösung :)
 

mmaki

Mitglied
Finde dieses ganze "System" suboptimal, würde da persönlich zu einem Branch pro Kunde tendieren, mit den genau den Dateien in der Version die für den Kunden gedacht sind.

Natürlich wäre das bezüglich Übersicht "welcher Kunde was hat" am Besten... Nur (wie Noctorius bereits erwähnte) ist das viel zu aufwendig, da man bei Änderungen in der Basis diese dann 'hunderte' mal machen (respektive in allen Kundenprojekten portieren) muss... Abgesehen davon ist es ja auch gut diese Basis-jsp nicht redundant zu haben...

Ich würde das ganze eigentlich mit einem Templatesystem ausstatten und nur das Design zur Laufzeit anpassen. Hunderte JSPs anpassen wenn irgendwo ein Bug ist, würde mich zum kot.... bringen :D

Mit einem Templatesystem wäre das vom Aufbau sicherlich gut zu lösen. Nur, ich bin ziemlich neu in der Firma und kann jetzt nicht gleich mit einer architekturiellen/organisatorischen Änderungen in Haus fallen... :shock:
 

Noctarius

Top Contributor
Mit einem Templatesystem wäre das vom Aufbau sicherlich gut zu lösen. Nur, ich bin ziemlich neu in der Firma und kann jetzt nicht gleich mit einer architekturiellen/organisatorischen Änderungen in Haus fallen... :shock:

Echt nicht? Mist, dann hab ich hier vor 2 Jahren was falsch gemacht :D

Solange es das System einfacher zu warten macht kann man alles
 

mmaki

Mitglied
Ja, bin auch deiner Meinung... Nur bin ich hier in einem Tochter-Unternehmen und der Base-Teil wird nicht hier gemacht. Da ist es schon etwas schwieriger als 'Aussenstehender' gleich so etwas anzuzetteln...

Ich werd mal schauen was sich machen lässt...

Bezüglich mehereren Pfaden für den gleichen Context hab ich nochmals ge'googelt... konnte aber nichts finden... ;( auch in der Tomcat-Doku steht dazu nichts... Ich denke es wird wohl nicht gehen (wäre aber sicherlich keine schlechte Sache gewesen...)
 

mmaki

Mitglied
Danke jedenfalls für eure Hilfe und den Input... Melde mich wenn sich was ergeben hat...

Gruss
mmaki.
 

Noctarius

Top Contributor
wäre aber sicherlich keine schlechte Sache gewesen...

Dazu haben maki und ich ja schon unsere Meinungen abgegeben. Doch wäre es. Das hat gleich mal mehrere Gründe.
- Wie wird der richtige CP ausgewählt?
- Wann ist welcher CP richtig?
- Soll in bestimmten Fällen der Basis-CP genommen werden?
- In welcher Reihenfolge sollen die CP nach entsprechend vorhandenen JSPs überprüft werden?
- Warum gibt es Template-Systeme und MVC?

edit:
1. Apache Anfrage: "xyz.domain.tld"
2. mod_rewrite: routing an tomcat mit www.domain.tld/?design=xyz
3. index.jsp: if "webapp/ROOT/design/xyz" exists ? weiter 4 : weiter 6
4. index.jsp: if "webapp/ROOT/design/xyz/index.jsp" exists ? weiter 5 : weiter 6
5. index.jsp: sendRedirect("design/xyz/index.jsp")
6. index.jsp: if "webapp/ROOT/design/xyz/design.css" exists ? template.setCss("design/xyz/design.css") : template.setCss("design/default/design.css")
7. index.jsp: Daten senden

-----> Bis Punkt 6 könntest du ein ähnliches System implementieren, dass prüft ob im Kundendesign die Datei existiert und wenn ja dahin weiterleiten. Ansonsten wäre auch ein Servletfilter möglich um ein minimales MVC zu bauen. Diese Variante war für uns einfacher, weil von über 70 Designs nur 1 Design soweit abweicht, dass es ein eigenes JSP braucht.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
ruutaiokwu Servlet Tomcat Versionsproblem? Web Tier 4
I JSF JSF, Tomcat, Server Faces und maven Web Tier 3
feinperligekohlensaeure JSF JSF + Tomcat 9 | HTTP Status 404 |(com.sun.faces.config.ConfigureListener?) Web Tier 1
R Tomcat - java.lang.OutOfMemoryError: PermGen space Web Tier 0
puba mit JDev entwickelter WS auf Tomcat deployen Web Tier 2
R JSF Tomcat 7 & JSF - UnsupportedOperationException Web Tier 1
G Probleme mit Java + Tomcat | Cannot switch on a value of type String for source level below 1.7 Web Tier 8
S Tomcat 8.0.9 logging Web Tier 0
S Servlet Tomcat 8.0.9 logging Web Tier 13
D JSP Anfängerfrage - Ändern von JSP / Tomcat Web Tier 4
R Tomcat 7 und SSL Web Tier 3
J JSP Web Applikation auf virtuellem Tomcat Server Web Tier 1
T JSF in Eclipse mit Tomcat Web Tier 0
S JSF Tomcat in Eclipse einbinden (JSF) Web Tier 0
G Magnolia CMS - jedes mal Tomcat restart Web Tier 7
A Wartezeit nach Tomcat start wegen Servlets zu hoch Web Tier 2
M tomcat anwendungsabhängige konfigdateien Web Tier 6
H JSP, Eclipse, Tomcat - Java Klasse wird nicht gefunden Web Tier 8
C Tomcat wirft keine ViewExpiredException Web Tier 8
C Tomcat + Eclipselink = NotSerializable Exception? Web Tier 2
M JSP Problem beim deployen auf Tomcat Web Tier 2
A Servlet File Upload funktioniert nur lokal auf Entwicklungsrechner, nicht in Tomcat Web Tier 5
T Tomcat mit Servlets Problem Web Tier 7
B JSF JSF1.1 @Tomcat 5.5 für ein neues Projekt Web Tier 18
P JSF Umgebungsvariablen bei Tomcat-Start setzen Web Tier 4
D Tomcat/Struts2 Benutzer bestimmt Name der URL Web Tier 2
T Tomcat: Packete dynamisch auslesen und Klassen erzeugen Web Tier 3
S Servlet Problem mit Tomcat Web Tier 3
M Classpath für JPA in Tomcat Webapp: Wie konfigurieren? Web Tier 4
reibi Tomcat : Änderbare Config-Files Web Tier 5
reibi Servlet Tomcat : Display name und version setzen Web Tier 3
JCODA Tomcat ohne Fenster starten Web Tier 5
P Eclipse zeigt Errors an, die auf Tomcat nicht auftreten Web Tier 2
B Tomcat 6 ergibt Fehler - java.net.SocketException Web Tier 2
L Services in Tomcat einbinden? Web Tier 2
B JSF Tomcat Windows Linux equals Problem Web Tier 3
N JSP org.apache.tomcat cannot be resolved to a type InstanceManager cannot be resolved to a type Web Tier 4
S Tomcat 7, Struts, JPA baut keine Verbindung auf Web Tier 13
M Geschwindigkeit von Tomcat / JavaWebanwendungen Web Tier 3
D Probleme mit Tomcat Web Tier 3
M Tomcat 6 Umlaut Probleme Web Tier 2
F No Factories configured for this Application - Myfaces mit Tomcat Web Tier 1
T jsf Tobago in Tomcat classpath aufnehmen Web Tier 2
A Beispiel wirft Fehler. JSF 2.0 / Tomcat / Eclipse Web Tier 2
J Tomcat-Server mit JSF auf Eclipse einrichten Web Tier 7
F umzug von tomcat 4 auf tomcat 6 Web Tier 2
J tomcat webapp restarten Web Tier 2
ruutaiokwu tomcat autodeploy Web Tier 7
I Tomcat aktualisiert CSS - Datei nur ab und zu Web Tier 4
T Tomcat-Projektverzeichnis Web Tier 13
E JSF Applikation läuft nicht über Tomcat Web Tier 3
F JApplet in Tomcat-Umgebung funktioniert mal wieder nicht ... Web Tier 8
T Tomcat, JSP, UTF-8 und URL-Codierung Web Tier 4
A Hat Tomcat einen Cache? Web Tier 5
S Tomcat Heap Memory erhoehen..? Web Tier 4
I Rich Faces nur mit JBoss oder auch Tomcat? Web Tier 7
S Tomcat / Eclipse Probleme Web Tier 2
T Tomcat Projekt ohne Eclipse starten Web Tier 11
A Tomcat - JSP läuft nicht Web Tier 2
reibi access.log in Tomcat ... ist das möglich? Web Tier 2
R Fehler 1053 beim Beenden von Tomcat Web Tier 25
A Tomcat - JSP ausführen Web Tier 8
thE_29 Tomcat - Applications(Context) bekommen Web Tier 19
A Tomcat: beim Start des Servers einmalige Aktion aufrufen (Problem gelöst) Web Tier 2
T Hibernate, Debuggingparameter Tomcat Web Tier 3
A JDBC in Tomcat einbinden Web Tier 3
P Tomcat funktioniert nicht so wie er sollte Web Tier 11
C Tomcat total memory Web Tier 11
C Apache-Tomcat Web Tier 13
F ssl, tomcat und jsp anwendungen Web Tier 5
G Tomcat 4.1 Experimente 8) Web Tier 3
S Tomcat JSP context.xml - Standartpfad einstellen Web Tier 3
J Fehler Tomcat/JSP findet Methode nich Web Tier 3
jann Tomcat und Kompression Web Tier 9
Q tomcat konfiguration - rewrite Web Tier 3
A TomCat will nicht - Wieso? Web Tier 5
Q Auth. per Tomcat Web Tier 4
O kurze Frage zur Tomcat Installation Web Tier 2
G Probleme mit Tomcat Web Tier 14
G Tomcat findet angeblich die Datei nicht. Web Tier 8
J Tomcat - web.xml und package . Web Tier 4
L JSP Tomcat Login Web Tier 6
G SCHWERWIEGEND: NullPointerException bei Tomcat Web Tier 4
U Java Application auf Tomcat Web Tier 5
Y JSF - Exception bei Tomcat Start Web Tier 4
O Source-Code vom Tomcat kompilieren lassen Web Tier 6
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
snatkoeln Mehrere Dyn. Web Projekte im gleichem Context Root Web Tier 0
FINF_AW_Alex Mehrere "selectOne" persistieren Web Tier 9
W Servlet SPEICHERN UNTER-Dialog für mehrere Dateien Web Tier 4
J mehrere browser-tabs gleichzeitig Web Tier 11
M JSF Zugriff auf mehrere Formulareinträge in einem Validator Web Tier 9
C jstl: collection property auf mehrere seiten Web Tier 2
K jquery.get() mehrere Parameter Web Tier 2
S JSF Templateproblem: Ein Template mehrere Clients Web Tier 2
M [JSF] Mehrere Nachrichten zusammenfassen. Web Tier 2
M JSF 2 / Mehrere Validatoren Web Tier 4
P Struts2 - Mehrere Methoden/Actions in einer Klasse + Validation Web Tier 2
R Mehrere Webservices gleichzeitig abrufen Web Tier 2
pusteblume Mehrere Objekte einer Bean Web Tier 10

Ähnliche Java Themen

Neue Themen


Oben