Ich versuche, Eclipse Kepler für Java EE 7. zu verwenden. Ich habe JBoss Tools bereits installiert und JBoss Wildfly erfolgreich als Server hinzugefügt. Meine Änderungen werden jedoch nicht automatisch bereitgestellt. Gibt es überhaupt eine App, die wie bei Glassfish automatisch installiert werden kann?
Klicken Sie bei Verwendung von Eclipse zweimal auf Ihren WildFly Server, um die folgenden Eigenschaften zu bearbeiten:
\.jar$|\.class$
.Das ist es. Viel Glück!
Sowohl @varantes als auch @Sean sind grundsätzlich korrekt, aber diese Antworten sind nicht vollständig.
Leider ist die einzige Möglichkeit in einer Java-Server-Umgebung eine vollständige Hot-Deployment ohne Ausfallzeiten, wenn Sie ein kostenpflichtiges JRebel - oder kostenloses gefedertes - Tool verwenden.
Für kleine Projekte gibt es einige Möglichkeiten, die Arbeit durch teilweise Hot-Deployment zu beschleunigen. Im Wesentlichen:
*.html
, werden *.xhtml
-Dateien sofort Reflektiert, sobald Sie den Browser aktualisieren.*.jsp
-Dateien funktioniert, sollten Sie in $ {wildfly-home}/standalone/configuration/standalone.xml<jsp-config/>
<jsp-config development="true"/>
starten Sie den Server neu und genießen Sie die heiße Bereitstellung von Webdateien.
Wenn Sie jedoch *.Java
-Quelldateien ändern, ist nur eine teilweise Hot-Bereitstellung möglich.
Wie @varantes in seiner Antwort feststellte, ist das Aktivieren von Application Reload Behavior mit einem auf \.jar$|\.class$
gesetzten Regex-Muster eine Option, die jedoch einen schwerwiegenden Nachteil hat: Das gesamte Modul wird neu gestartet, also:
Ich persönlich entmutige diese Lösung.
Die JVM unterstützt (im Debug-Modus) das Code-Swapping für Methodentexte. Solange Sie nur Körper vorhandener Methoden modifizieren, sind Sie zu Hause (null Ausfallzeiten, Änderungen werden sofort übernommen). Sie müssen jedoch die automatische Veröffentlichung in den Servereinstellungen deaktivieren, da sonst der Status der Anwendung durch die erneute Veröffentlichung zerstört wird.
Wenn Sie jedoch stark mit Java-Code arbeiten (Hinzufügen von Klassen, Anmerkungen, Konstruktoren), kann ich leider nur empfehlen, die Veröffentlichung auf Never publish automatisch (oder Herunterfahren des Servers) zu setzen. Wenn Sie Ihre Arbeit in Java-Dateien beendet haben, starten Sie neu Übergeben Sie Ihr Modul (oder den Einschalten-Server). Wie du willst.
Es funktioniert für kleine Java-Projekte, aber für größere ist JRebel von unschätzbarem Wert (oder nur gefedert), da alle oben beschriebenen Ansätze nicht ausreichen.
BTW: Auch wegen solcher Probleme haben Lösungen wie Rails
/Django
/Play! Framework
so große Popularität erlangt.
Viel Glück und schnelles Codieren!
Ich gehe davon aus, dass Sie die neueste Version von Wildfly (8.0 Beta 1 zum Zeitpunkt des Schreibens) verwenden.
Suchen Sie in der Konfigurationsdatei standalone.xml nach <jsp-config /> . Fügen Sie das Attribut development = "true" hinzu, und es sollte Hot-Deployment durchführen. Die resultierende Konfiguration sieht folgendermaßen aus:
<jsp-config development="true"/>
Fügen Sie in der Konfigurationsdatei in xPath = // servlet-container/jsp-config/Attribute (Entwicklung, Prüfintervall, Modifikationstestintervall, Rekompilierung bei Fehler) hinzu
<servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only">
<jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
</servlet-container>
(Es funktioniert in WildFly-8.0.0.Final)
Starten Sie den Server im Debug-Modus und verfolgen Sie die Chancen innerhalb der Methoden. Andere Änderungen Sie werden aufgefordert, den Server neu zu starten.