Eclipse WTP vs sydeo, "bedient Module ohne Veröffentlichung"

103

Ich habe das Problem, die Leistung des Plugins sysdeo mithilfe des integrierten Plugins WTP von Eclipse zu ermitteln.

Um die Migration und damit den Vergleich durchzuführen, habe ich beide in separaten Projekten innerhalb von Eclipse installiert.

Ich habe einen Unterschied in der Produktivität festgestellt, wie ich verstanden habe: WTP muss Quellen in einem Verzeichnis veröffentlichen, damit Tomcat sie arrangiert. Dieser "Pulish" ist lang: Der Kontext muss neu aufgeladen werden, damit die Änderungen sichtbar sind. (5 trocken in den meisten Yards 15 Sekunden - 20 Sekunden in den längsten).

Sysdeo nein; Die Ziele des Verzeichnisses Eclipse werden folglich projektintern erstellt, sobald eine Änderung durch eine Datei vorgenommen wird. Eclipse wird erstellt und diese Änderungen sind sofort verfügbar (F5 im Browser und wir haben das Ergebnis sofort).

Hier ist meine Konfiguration des Servers:

Mit der Option "Module ohne Veröffentlichung bedienen" können Sie genau festlegen, was sydeo ausmacht: Wählen Sie das Build-Verzeichnis des ausgeführten Projekts. Diese Konfiguration drückt sich in der Kontextdatei aus. (Um es zurückzubekommen, habe ich "Publish moduliert Kontexte zum Serparieren von XML-Zeilen" aktiviert.)

Vergleich dieser Dateien:

  • Hier ist die Kontextdatei, die von sysdeo generiert werden soll
< Context path="/tatoile _syseo" reloadable="false" docBase="D:\32bit\serveur32bit\workspace\tatoile _syseo" workDir="D:\32bit\serveur32bit\workspace\tatoile _syseo\work" />
  • Der per WTP zu generierende Dateikontext

<? xml version = "1.0" encoding = "UTF-8"?> <Context docBase = "D: \ 32bit \ serveur32bit \ workspace \ tatoile \ web" path = "/ tatoile" reloadable = "true" source = "org .eclipse.jst.jee.server: tatoile "> <Resources className =" org.eclipse.jst.server.tomcat.loader.WtpDirContext "extraResourcePaths =" / WEB-INF / classes | D: \ 32bit \ serveur32bit \ workspace \ tatoile \ build \ classes "virtualClasspath =" D: \ 32bit \ serveur32bit \ workspace \ tatoile \ build \ classes "/> <Loader className =" org.eclipse.jst.server.tomcat.loader.WtpWebappLoader "useSystemClassLoaderAsParent =" false " virtualClasspath = "D: \ 32bit \ serveur32bit \ workspace \ tatoile \ build \ classes" /> <JarScanner scanAllDirectories = "true" /> </ Context>

Später analysieren diese beiden Dateien ist gleich.

Kehren wir nun zum Problem zurück. Ich benutze den gleichen Server, daher sind beide oben genannten Kontextdateien für diesen definiert. Erfahrung: Ich starte den Tomcat über das Plugin Sysdeo, die Ladevorgänge in zwei Kontexten werden so ausgeführt, dass WTP die andere Art von WTP konfiguriert. Beide Behörden reagieren gleich, die Änderungen sind in tatoile _syseo und tatoile unmittelbar.

Andererseits starte ich tomcat über das Plugin WTP (Tab Server etc.) in Eclipse, die Änderungen werden nicht sofort in beiden Projekten tatoile _syseo und tatoile vorgenommen. Hinweis: Das automatische Neuladen muss unbedingt in Aktiviert sein, damit die Änderungen berücksichtigt werden. (Wenn der Server anzeigt, dass er den Kontext neu geladen hat, können wir die Änderungen sehen.)

Geben Sie hier die Bildbeschreibung ein

Ich schließe daraus, dass die Konfiguration von Kontexten nicht der Grund ist, sondern die Art und Weise, wie das Plugin Tomcat startet. und da oder ich trockne ...

Hier ist das WTP-Projekt:

Geben Sie hier die Bildbeschreibung ein

Vsplit
quelle
5
Haben Sie Probleme mit Sysdeo oder WTP? OTOH WTP benötigt mit Sicherheit mehr Zeit für Änderungen, da dies für die Neuveröffentlichung erforderlich ist: (1) Erstellen von Klassen (2) Aufheben der Bereitstellung alter Web-App (3) Kopieren des Build-Ergebnisses in den Bereitstellungsordner von Tomcat (4) Tomcat startet automatisch App. Währenddessen werden mit sysdeo die Klassen im RAM im laufenden Betrieb geändert, sobald Änderungen vorgenommen werden (gekennzeichnet durch ein neues Datum in allen Klassendateien). Dann gibt es einige Einschränkungen für Änderungen, die nicht im laufenden Betrieb vorgenommen werden können (wenn Sie neue Methoden hinzufügen, ändert sich auch die Klassenstruktur). In diesem Fall wird eine Warnung ausgegeben.
Ich habe sowohl Sysdeo als auch WTP für dasselbe Projekt verwendet. Der wichtigste Unterschied, den ich bemerkte, war, dass mir die Konfiguration von Sysdeo einfacher erschien, aber dies könnte voreingenommen sein.
Markus
2
Das Problem wurde durch Hinzufügen von MAVEN mit WTP-Bereitstellung gelöst. Keine Leistungsprobleme. Keine Leistungsprobleme und ich aktiviere nicht "Serve Module ohne Veröffentlichung"
Vsplit
1
Wenn Sie das Problem gelöst haben, können Sie eine Antwort posten?
Anubian Noob
@ AnubianNoob ja, wenn ich in meinem vorhergehenden Beitrag erklärt habe. Ich habe das Problem mithilfe der Maven-Konfiguration gelöst.
Vsplit

Antworten:

3

Die Antwort zitiert aus @Vsplit

Das Problem wurde durch Hinzufügen von MAVEN mit WTP-Bereitstellung gelöst. Keine Leistungsprobleme ... und ich aktiviere keine Servemodule ohne Veröffentlichung

Marko
quelle
-1 Dies ist keine Antwort. Bitte fügen Sie die Antwort mit weiteren Details hinzu.
Isaac G Sivaa
1
Hallo, ich bedaure meine späte Antwort. Aber wie Sie bemerken müssen, kann ich das Problem mit dem Sysdeo-Plugin nicht lösen. Aber ich benutze Maven Plugin mit WTP De Deployment. Sie können dieses Beispiel Tutorial youtube.com/watch?v=YeC7XQho-O0
Vsplit
2

Suchen Sie auf dem Plugin-Marktplatz nach einem kostenlosen Plugin namens m2e-wtp. Damit werden die bereitgestellten Umfangsprobleme behoben. Was Klassen betrifft, die nicht bereitgestellt werden, sind die üblichen Orte, die ich betrachte, die Bereitstellungsassembly und / oder der Java-Erstellungspfad. Stellen Sie sicher, dass alle Einträge (und die abhängigen Module) vorhanden sind und sich an der richtigen Stelle befinden.

Shrinidhi Krishnakumar
quelle