Dies ist eine einfache Anwendung, die darauf abzielt, mithilfe von eingebettetem Tomcat und Jersey einen REST -Full -Web -Dienste zu erstellen, um die YML -Datei zu verwenden. Diese Anwendung verwendet auch eine JSP- und Freemarker -Vorlage, die durch REST -API -Aufruf gerendert wird. Es konzentriert sich hauptsächlich auf die Registrierung der Objektinstanz an ResourceConfig , anstatt die Klasse zu registrieren.
Die Anwendung erstellt zwei Tomcat -Kontextpfad. Einer für REST Full API -Endpunkt ist /api und eine weitere für die Webseite ist /webapp , die direkt vom Tomcat WebApp -Basisverzeichnis geladen wird /src/main/webapp .
File base = new File("src/main/webapp");
Context context = tomcat.addContext("/api", base.getAbsolutePath());
tomcat.addWebapp(null, "/webapp", base.getAbsolutePath());
Diese Anwendung verwendet eine YML -Datei für die Anwendungskonfiguration. Lesen Sie zuerst die Datei configuration.yml und übergeben Sie die Konfiguration an die Anwendung.
#configuration.yml
#setting server configuration
server:
port: 9292
#configure user name
user: "eigenharsha"
ResourceConfig ist eine Erweiterung der JAX-RS-Anwendungsklasse, bietet jedoch einige Registrierungsmethoden, um die Registrierung von Ressourcen und Anbietern freundlicher zu gestalten. Diese Anwendungsressource über Klasseninstanz mithilfe von public ResourceConfig register(Object component) registriert.
JSPMVCFeature und FreemarkerMVCFeature für JSP- und Freemarker -Vorlage, HTML/Angular/JavaScript direkt im Webbrowser geladen.
final ResourceConfig config = new ResourceConfig()
.packages(Main.class.getPackage().getName())
.register(new Resource(new Core(), configuration)) // create instance of Resource and dynamically register
.register(JspMvcFeature.class) // register jspMVC
.register(FreemarkerMvcFeature.class) // register FreemarkerMVC
.property(ServletProperties.FILTER_FORWARD_ON_404, true);
return new ServletContainer(config);
Hier finden Sie ein ausführliches Tutorial für programmatische API für das Erstellen von Ressourcen.
Dieses Projekt erfordert Maven.
$ git clone https://github.com/eigenharsha/jersey-mvc-jsp-freemarker-with-embedded-tomcat.git
$ cd jersey-mvc-jsp-freemarker-with-embedded-tomcat
$ mvn clean install
Ich habe eine Procfile für die Bereitstellung von Heroku erstellt. Ein detailliertes Tutorial für die Bereitstellung auf Heroku ist hier verfügbar.
$ web: sh target/bin/webapp
Wenn diese Anwendung bereitgestellt wird, können wir auf diese REST -Dienste zugreifen
| Ressource | Endpunkt |
|---|---|
| Dynamisch erstellte Ressource aufgerufen | http: // localhost: 9292/api/ressource |
| Benutzerinformationen aus der YML -Datei abrufen | http: // localhost: 9292/api/ressourcen/user |
| Freimaurer -Vorlage | http: // localhost: 9292/api/ressourcen/freemarker |
| JSP -Vorlage | http: // localhost: 9292/api/ressource/jsp |
| HTML -Seite | http: // localhost: 9292/webapp/index.html |
Fragen oder Vorschläge? Bitte zögern Sie nicht, mir eine E -Mail an [email protected] zu senden