2016-03-30 13 views
0

Jersey JAX-RS REST API application ist so ziemlich wie hier beschrieben, die oben auf Grizzly-Container läuft. Es ist erforderlich, den Ordner src\main\webapp mit der AngularJS-App, die die REST-API verwendet, zuzuordnen/zu hosten.Welche Möglichkeiten gibt es, um AngularJS-Frontend auf demselben Server wie die JAX-RS-REST-API verfügbar zu machen?

Im Moment ist der REST-API in Main mit Hilfe von Grizzly Bootstrap ist:

GrizzlyHttpServerFactory.createHttpServer(....); 

Welche Möglichkeiten gibt es, sowohl die REST-API und Frontend auf demselben Server zu laufen? Wie wird es eingerichtet?

Antwort

0

GrizzlyHttpServerFactory.createHttpServer(....); gibt eine Instanz von HttpServer zurück, bei der es sich lediglich um einen generischen Server handelt, der mit einem Netzwerk-Listener und einem Jersey http-Handler vorkonfiguriert ist.

Als solches ist es Griffe nur REST reuquest (von Jersey http-Handler), aber Sie können Ihre eigenen HTTP-Handler fügen Sie Ihre Web-App (html, js, css, ...) zu behandeln:

HttpServer server = GrizzlyHttpServerFactory.createHttpServer(....); 
server.getServerConfiguration().addHttpHandler(....) // add your handler here and map it to URL 

Werfen Sie einen Blick auf die Jersey source code für weitere Details.

+0

Es könnte nützlich sein, dieses Micro-http-Server-Framework zu verwenden: https://github.com/AdamBien/nano/blob/master/nano/src/main/java/nano/Server.java. Sie können Server.java als Beispiel nehmen und 'Contexts.create (server, p));' mit dem von createHttpServer (...) zurückgegebenen Server verwenden. – OndrejM