Java Web Services via REST bereitstellen
ulrich
2014-11-18 3f6c852e740be30d9f25848f6385596c097d0b5d
src/de/uhilger/transit/web/TransitServletRS.java
@@ -18,29 +18,45 @@
package de.uhilger.transit.web;
import javax.servlet.*;
import de.uhilger.transit.JavaServer;
import de.uhilger.transit.JsonFlatWandler;
import de.uhilger.transit.JsonWandler;
import de.uhilger.transit.NutzerKontext;
import de.uhilger.transit.XmlWandler;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.util.logging.*;
import de.uhilger.transit.*;
/**
 * Das TransitServlet macht beliebige Klassen und Methoden
 * Das TransitServletRS macht beliebige Klassen und Methoden
 * ueber HTTP zugaenglich. 
 * 
 * <p><b>Achtung:</b>Das TransitServlet sollte nur in einem
 * <p>Methodenaufrufe über dieses Servlet erfolgen in der Form<br>
 * <code>
 * http://server:port/contextpfad/servletpfad/name.der.package.Klasse/methode/antwortformat/param1/param2/../paramN
 * </code></p>
 *
 * <p>Standardmäßig werden von Transit die Antwortformate JSON, JSONFLAT und XML
 * bereitgestellt. Über die Schnittstelle Wandler lassen sich weitere Formate
 * hinzufügen.</p>
 *
 * <p><b>Achtung:</b>Das TransitServletRS sollte nur in einem
 * per Authentifizierung und Autorisierung geschuetzten 
 * Bereich einer Webanwendung bereitgestellt werden da andernfalls 
 * durchweg alle Klassen und Methoden, die sich auf dem Server 
 * finden, zugaenglich werden.</p>
 * 
 * <p>Fuer die Bereitstellung von Funktionen ist eine Berechtigungspruefung  
 * noetig, die am besten in Form eines Filters implementiert wird.</p>
 * noetig, die am besten in Form eines Filters implementiert wird.
 * Transit stellt hierfür die Klassen Waechter und RechtePruefer bereit.</p>
 * 
 * @author Copyright (c) Ulrich Hilger, http://uhilger.de
 * @author Published under the terms and conditions of
@@ -184,7 +200,7 @@
          buf.append("<p>Ergebnis von server.klasseFinden ist null (Klasse nicht gefunden?).</p>");
        }
      } else {
        buf.append("<p>Klasse " + klassenName + " nicht erlaubt.</p>");
        buf.append("<p>Klasse ").append(klassenName).append(" nicht erlaubt.</p>");
      }
      Writer w = resp.getWriter();
      w.write(buf.toString());