3 Stimmen

AWS SWF Flow Framework - Eclipse AspectJ Load-Time Weaving

Hat jemand geschafft, die AWS SDK-Beispiele für Simple Workflow und das Flow Framework richtig zum Laufen zu bringen? Ich habe den Eclipse-Setup-Anweisungen (http://docs.amazonwebservices.com/amazonswf/latest/awsflowguide/setup.html) aufs genauste gefolgt, aber keine Klassen werden generiert. Als Ergebnis kann mein Projekt nicht gebaut werden, weil überall fehlende *Client-Klassen existieren.

Ich habe dies sowohl mit den Beispielen im SDK als auch mit dem ImageProcessing Beispiel versucht, das angeboten wird, wenn man sich zum ersten Mal in die SWF Admin Console einloggt. Kollegen können es ebenfalls nicht zum Laufen bringen.

4voto

Steffen Opel Punkte 62276

Ich bin in diesem Zusammenhang auf zwei (potenziell nicht zusammenhängende) Probleme gestoßen:

1) Möglicherweise haben Sie noch eine wichtige Voraussetzung übersehen (es ist leicht zu übersehen, mir ist das auch passiert ;) - siehe Einrichten der Entwicklungsumgebung:

Wenn Sie die Eclipse-Entwicklungsumgebung verwenden, [...] installieren Sie das AWS Toolkit für Eclipse unter Verwendung der Aktualisierungswebsite http://aws.amazon.com/eclipse/. Vergewissern Sie sich, dass Sie die Amazon Simple Workflow Service (SWF)-Tools installieren. Dieses Plug-In verarbeitet unter anderem die Annotationen und generiert die Client-Klassen. [Hervorhebung von mir]

Nachdem ich diesen Fehler behoben hatte, begann die Kompilierzeit-Webung die Klassen beim Build wie erwartet zu generieren.

2) Mein ursprüngliche Antwort befasst sich mit einem nachfolgenden Problem des fehlenden AspectJ-Runtimes aufgrund eines offensichtlichen Konflikts zwischen AspectJ, bereitgestellt über das SpringSource Tool Suite (STS) und den AspectJ-Entwicklertools für Eclipse. Ich habe immer noch nicht herausgefunden, ob dies möglicherweise nur ein lokales Problem meiner STS-Installation war - sehen Sie bitte meine Antwort für Details, falls dieser Konflikt auch auf Sie zutrifft.

3voto

Steffen Opel Punkte 62276

Aktualisierung

Bitte sehen Sie sich zuerst meine zweite Antwort an, die einen einfach zu übersehenden, aber wichtigen Voraussetzungsschritt behandelt; das problem, das in der unten stehenden ursprünglichen Antwort behandelt wird, könnte tatsächlich nur ein Konfigurationsproblem mit meiner STS-Installation sein.


Verwenden Sie zufällig SpringSource Tool Suite (STS)? Es scheint sich um einen Konflikt zwischen der implizit von STS installierten AspectJ-Unterstützung (oder Spring Roo zum Beispiel) und den dokumentierten AspectJ-Entwicklungswerkzeugen für Eclipse zu handeln, die beispielsweise über den integrierten Eclipse Marketplace-Client installiert werden müssen.

Ich habe eine Eclipse Indigo-Installation mit einer nachträglichen STS-Installation über die STS Eclipse-Update-Site (d.h. nicht das SpringSource-Download-Paket), aber trotzdem das gleiche Problem erlebt. Die Installation der AspectJ-Entwicklungswerkzeuge für Eclipse aus dem Marketplace hat daran nichts geändert, trotz einiger Konfigurationsversuche (obwohl kein Fehler protokolliert wurde), insbesondere das fehlende AspectJ-Runtime-Jar ist nirgendwo zu sehen (org.aspectj.runtime.source_1.6.12.20110613132200.jar in meinem Fall).

Allerdings wird bei der Verwendung des identischen Eclipse-Pakets und der Installation nur der AspectJ-Entwicklungswerkzeuge für Eclipse tatsächlich das AspectJ-Runtime installiert und das Beispiel funktioniert einwandfrei.

Viel Glück!

1voto

csdroid Punkte 756

Es ist interessant zu bemerken, dass die Anweisungen zur Verwendung der Ladungszeitweberei im Einrichten der Entwicklungsumgebung -Dokument genau so funktionieren wie mit Eclipse 3.6 (Helios) , aber nicht problemlos mit Eclipse 3.7 (Indigo) . Wenn Sie das Eclipse-Protokoll für den Unterschied zwischen den beiden Versionen betrachten, scheint es, dass die log4j - und freemarker -Abhängigkeiten fehlen, wenn Indigo ausgeführt wird, aber wahrscheinlich mit Helios vorhanden sind. Es ist auch erwähnenswert, dass Sie die Kompilierzeitweberei auch problemlos mit IntelliJ IDEA zum Laufen bringen können (ich verwende die Community-Edition, aber es sollte genauso gut mit einer lizenzierten Version funktionieren).

1voto

Lophat Punkte 11

Ich habe die Java-Beispiele in der Befehlszeile auf OSX zum Kompilieren gebracht, indem ich Folgendes gemacht habe:

  1. Setzen Sie eine Umgebungsvariable in meiner .profile-Datei: export AWS_SWF_SAMPLES_CONFIG=$HOME/aws-java-sdk/1.4.7/samples/AwsFlowFramework
  2. Laden Sie junit-4.11, apache-log4j-1.2.17 und spring-framework-3.2.3 von ihren jeweiligen Herausgebern herunter
  3. Kopieren Sie die heruntergeladenen Dateien nach $HOME/aws-java-sdk/1.4.7/third-party
  4. Bauen Sie durch Ausführen von "ant compile" in $HOME/aws-java-sdk/1.4.7/samples/AwsFlowFramework

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X