Play! Applications und der App-Context
Es ist möglich, eine Play!-Anwendung sehr einfach in eine WAR-Struktur zu übertragen und in einen Application-Server zu deployen.
Dies ist recht gut unter Deployment options in der Play!-Dokumentation recht gut erklärt. Was hier allerdings verschwiegen wird ist, wie man den notwendigen Context beim Routing konfiguriert. (Der Context ist der Pfad der Anwendung, welcher standardmäßig vom Namen des WAR-Archivs abgeleitet wird, oder per Descriptor konfiguriert wird) – heißt das Archiv testapp.war ist der Context /testapp.
Innerhalb einer Play!-App muss der Context sowohl in der Config Datei, als auch im Routing definiert werde:
application.conf
... context=testapp ...
Danach lässt sich in der routes Datei der Context in die Routen konfigurieren:
# Routes # This file defines all application routes (Higher priority routes first) # ~~~~ %{ context = play.configuration.getProperty('context', '') }% # Home page GET ${context} Application.index GET ${context}/ Application.index # Map static resources from the /app/public folder to the /public path GET ${context}/public/ staticDir:public GET ${context}/Users/like/{uid} Users.like GET ${context}/Users/{uid}/show Users.show ...