Rest Server über Jersey Low Code starten

lam_tr

Top Contributor
Hallo zusammen,

ich bin dabei einen Anwendung zu implementieren womit ich mit dem Low Code Prinzip, Rest Server mit Resourcen direkt über XML beschreiben und starten kann.

Der Jersey RestServer kann ich aktuell wie folgt starten
Java:
import java.net.URI;

import org.glassfish.jersey.jdkhttp.JdkHttpServerFactory;
import org.glassfish.jersey.server.ResourceConfig;

public class RestServer {

    public static void main(String[] args) {
        ResourceConfig rc = new ResourceConfig().packages("jerseyhttp");
        JdkHttpServerFactory.createHttpServer(URI.create("http://localhost:8080/api"), rc);
    }
}

Und die Resourcen kann man dann so implementieren, also das ist jetzt nur ein Beispiel aus dem Netzt 🙂
Java:
public class DatingResource {

    @GET
    @Path("dating")
    @Produces(MediaType.TEXT_PLAIN)
    public String dating() {
        return "Afra, Ange, Ceri, Dara, Ha, Jun, Sevan";

    }

    @GET
    @Path("userList")
    @Produces(MediaType.TEXT_PLAIN)
    public String userList() {
        return "Afra, Ange, Ceri, Dara, Ha, Jun, Sevan";

    }
}

Später möchte ich die Resourcen in XML beschreiben und beim Starten der RestServer es als Resource einbinden, e.g.
Java:
<Resource path="userList" type="GET" produces="TEXT_PLAIN" controllerUri="DatingResource" method="dating"></Resource>
<Resource path="dating" type="GET" produces="TEXT_PLAIN" controllerUri="DatingResource" method="userList"></Resource>

Der programmatische Teil funktioniert ja schon. Jetzt benötige ich einen Ansatz damit die XML als Resource darstellt. Ich denke, das hauptproblem ist der Jersey Server liest die Resource Klasse anhand von der Annotation, wenn die Klasse nicht vorhanden ist, dann würde es nicht gehen oder?

Hoffe ihr habt da ein paar Tipps für mich.

Grüße
lam
 
Ich verstehe nicht warum man die JAX-RS Resource implementiert und dann nochmals mittels xml definiert (ergibt keinen Sinn).
Aber Programmatisch kann man das direkt als Resource bei Jersey nachlesen (HIER).
 
Ich verstehe nicht warum man die JAX-RS Resource implementiert und dann nochmals mittels xml definiert (ergibt keinen Sinn).
Aber Programmatisch kann man das direkt als Resource bei Jersey nachlesen (HIER).
Danke für die Antwort.

Und ja es macht eigentlich keinen Sinn wenn ich den Controller mit übergebe. Die Anwendung soll den RestServer starten und optional sollen im Nachgang Resource Konfiguration in die Anwendung ergänzt werden können.
 
Kann ich das dynmaisches Registrieren der Resourcen nachdem der Server schon gestartet machen? Und wenn ein Resource in der ResourceConfig registriert ist, kann man im Nachgang nicht mehr unregistrieren?
 
Ich würde mal sagen, nachdem du die Konfiguration während dem Start angibst, eher nicht, aber was sagt die Dokumentation von Jersey dazu?
 
Rein aus Interesse. Was ist denn der Use-Case für dein Vorhaben?
Ich mache gerade ein Rest Server Designer, womit man ein Rest Server mit Ressourcen per UI zusammenklicken kann und per Knopfdruck soll der Server mit ausgewählten Ressourcen gestartet werden. Dabei dachte ich nur, eventuell kann man zur Laufzeit des Servers nicht gewünschte Ressourcen stoppen oder unregistrieren und bei Bedarf wieder reinholen.

Ressourcen sind in dem Fall, Auslesen von Daten von der DB, Datei, Bilder.
 

Zurück
Oben