README.md | ●●●●● patch | view | raw | blame | history | |
src/java/de/uhilger/filecms/web/Initialiser.java | ●●●●● patch | view | raw | blame | history | |
src/java/de/uhilger/filecms/web/TestServlet.java | ●●●●● patch | view | raw | blame | history | |
web/WEB-INF/web.xml | ●●●●● patch | view | raw | blame | history |
README.md
@@ -18,11 +18,22 @@ ### Konfiguration Die Dateiverwaltung arbeitet mit relativen Pfadangaben und erhält den Ablageort von Dateien über die Angabe `de.uhilger.filecms.web.Initialiser.FILE_BASE` des Servlet-Kontext. Diese Angabe wird beim Start der Dateiverwaltung gebildet und kann im Deployment Descritor der Dateiverwaltung (Datei `WEB-INF/web.xml`) mit dem Context-Parameter `datenAblage` festgelegt werden. Die Dateiverwaltung erhält den Ablageort von Dateien über den JNDI-Eintrag ```` <Environment name="wbxFileBase" type="java.lang.String" value="/pfad/zu/den/daten" override="false" /> ```` Wenn die Angabe `wbxFileBase` wie oben als JNDI-Parameter angegeben wird, kann sie beispielsweise in der Datei `$CATALINA_BASE/context.xml` hinterlegt werden. #### Automatische Ermittlung des Ablageortes Ist die Angabe `datenAblage` im Deployment Descriptor der Dateiverwaltung leer, wird der Ablageort `../../../daten` ausgehend von `$CATALINA_BASE/webapps` verwendet. Wenn also z.B. das webapps-Verzeichnis in `/usr/local/tomcat/webapps` liegt, dann wird das Datenverzeichnis der Dateiablage in `/usr/daten` vermutet. Liegt es stattdessen in `/media/extmirror/srv/wbx/sys/base/webapps` dann lautet der Datenpfad `/media/extmirror/srv/wbx/daten`. Ist die Angabe `wbxFileBase` nicht zu finden oder leer, wird der Ablageort `../../../daten` ausgehend von `$CATALINA_BASE/webapps` verwendet. Wenn also z.B. das webapps-Verzeichnis in `/usr/local/tomcat/webapps` liegt, dann wird das Datenverzeichnis der Dateiablage in `/usr/daten` vermutet. Liegt es stattdessen in `/media/extmirror/srv/wbx/sys/base/webapps` dann lautet der Datenpfad `/media/extmirror/srv/wbx/daten`. ## Webanwendung herstellen src/java/de/uhilger/filecms/web/Initialiser.java
@@ -18,6 +18,7 @@ package de.uhilger.filecms.web; import de.uhilger.wbx.WbxUtils; import java.io.File; import java.io.IOException; import java.util.logging.Level; @@ -36,6 +37,7 @@ public static final String FILE_BASE = "filebase"; public static final String DATENABLAGE = "datenAblage"; public static final String WBX_FILE_BASE = "wbxFileBase"; /** * Bei der WebBox ist das Datenverzeichnis relativ zum Verzeichnis @@ -85,7 +87,9 @@ * ist anschliessend die Angabe unter Initialiser.FILE_BASE abrufbar */ protected void ablageErmitteln(ServletContext ctx) { Object o = ctx.getInitParameter(DATENABLAGE); //Object o = ctx.getInitParameter(DATENABLAGE); WbxUtils wu = new WbxUtils(); Object o = wu.getJNDIParameter(WBX_FILE_BASE, WbxUtils.EMPTY_STRING); try { if(o instanceof String) { String pfad = o.toString(); src/java/de/uhilger/filecms/web/TestServlet.java
New file @@ -0,0 +1,86 @@ /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package de.uhilger.filecms.web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author ulrich */ public class TestServlet extends HttpServlet { /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { /* TODO output your page here. You may use following sample code. */ out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet TestServlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Servlet TestServlet at " + request.getContextPath() + "</h1>"); out.println("</body>"); out.println("</html>"); } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> } web/WEB-INF/web.xml
@@ -45,6 +45,10 @@ <servlet-name>Feeder</servlet-name> <servlet-class>de.uhilger.filecms.web.FeedServlet</servlet-class> </servlet> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>de.uhilger.filecms.web.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TransitRS</servlet-name> <url-pattern>/rpc/*</url-pattern> @@ -65,6 +69,10 @@ <servlet-name>Feeder</servlet-name> <url-pattern>/feed/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/test/*</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30