Kann ich sowohl @Post als auch @Get auf dieselbe Weise verwenden

8

Ich möchte sowohl @Post als auch @Get auf dieselbe Weise verwenden wie

%Vor%

Selbst wenn ich so schreibe, habe ich Fehler bekommen. Was ich will, ist, was immer ich bekomme oder an die gleiche Stelle sende, die gleiche Methode funktioniert. Ist es möglich? Jetzt trenne ich zwei Methoden, eine für get und eine für post.

    
swemon 27.06.2013, 08:57
quelle

2 Antworten

7

Leider sollte nur einer verwendet werden, um eine Jersey-Ausnahme zu vermeiden. Aber Sie könnten etwas tun wie:

%Vor%

Wenn Sie das innere Verhalten Ihrer Funktionen ändern möchten, müssen Sie nur eine Funktion ändern.

Beachten Sie, dass der Methodenname in Java für get vs post anders sein muss.

    
nicou50 27.06.2013, 15:48
quelle
1

Nachdem ich viel gesucht habe, um die obige Lösung zu vermeiden, habe ich nichts gefunden ....

Dann entschied ich mich, eine benutzerdefinierte Annotation zu erstellen, damit ich keine Zeit mit Duplizierungsmethoden verschwenden musste.

Hier ist der GitHub-Link: Jersey-Gest

Sie können GET- und Post-Methoden für eine einzelne Annotation erstellen, indem Sie daraus eine neue Klasse generieren.

Ich hoffe, es hilft dir genauso, wie es mir geholfen hat:)

Bearbeiten:

Wenn der obige Link aus irgendeinem Grund nicht mehr funktioniert, habe ich Folgendes getan:

  • Erstellt eine Kompilierungszeit-Annotation @RestMethod für Klassenmethoden.
  • Erstellt eine Kompilierungszeit-Annotation @RestClass für Klassen.
  • Erstellen Sie einen AnnotationProcessor, der eine neue Klasse mit den entsprechenden Annotationen von Jersey generiert und für jede Methode eine GET -Methode und eine POST -Methode erstellt, die zur ursprünglichen Methode mit @RestClass .

Alle mit @RestMethod markierten Methoden müssen statisch sein und in einer Klasse enthalten sein, die mit @RestClass versehen ist.

Beispiel (TestService.java):

%Vor%

Erzeugt etwas wie (TestServiceImpl.java):

%Vor%     
Rob 04.07.2014 03:04
quelle

Tags und Links