Java Web Services via REST bereitstellen
ulrich
2014-11-18 3f6c852e740be30d9f25848f6385596c097d0b5d
JavaDoc erweitert
6 files modified
88 ■■■■■ changed files
src/de/uhilger/transit/JsonFlatWandler.java 2 ●●●●● patch | view | raw | blame | history
src/de/uhilger/transit/JsonWandler.java 2 ●●●●● patch | view | raw | blame | history
src/de/uhilger/transit/web/AbstractServlet.java 3 ●●●●● patch | view | raw | blame | history
src/de/uhilger/transit/web/StandardRechtePruefer.java 27 ●●●● patch | view | raw | blame | history
src/de/uhilger/transit/web/TransitServlet.java 30 ●●●●● patch | view | raw | blame | history
src/de/uhilger/transit/web/TransitServletRS.java 24 ●●●●● patch | view | raw | blame | history
src/de/uhilger/transit/JsonFlatWandler.java
@@ -19,10 +19,8 @@
package de.uhilger.transit;
import java.io.Writer;
import java.util.List;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver;
import com.thoughtworks.xstream.io.json.JsonWriter;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
src/de/uhilger/transit/JsonWandler.java
@@ -18,11 +18,9 @@
package de.uhilger.transit;
import java.util.List;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver;
/**
 * Java-Objekte in die JavaScript Object Notation (JSON) 
src/de/uhilger/transit/web/AbstractServlet.java
@@ -17,14 +17,11 @@
 */
package de.uhilger.transit.web;
import java.io.IOException;
import java.io.PrintWriter;
import java.security.Principal;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Basisklasse mit gemeinsamem Code fuer die TransitServlets
src/de/uhilger/transit/web/StandardRechtePruefer.java
@@ -1,7 +1,19 @@
/*
 * 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.
 Transit - Remote procedure calls made simple
 Copyright (c) 2012  Ulrich Hilger
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU Affero General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU Affero General Public License for more details.
 You should have received a copy of the GNU Affero General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package de.uhilger.transit.web;
@@ -9,8 +21,15 @@
import javax.servlet.ServletResponse;
/**
 * Ein RechtePruefer, der keine Erlaubnis erteilt und standardmaessig
 * verwendet wird, wenn kein RechtePruefer deklariert ist.
 *
 * @author ulrich
 * @author Copyright (c) Ulrich Hilger, http://uhilger.de
 * @author Published under the terms and conditions of the
 * <a href="http://www.gnu.org/licenses/agpl-3.0" target="_blank">GNU Affero
 * General Public License</a>
 *
 * @version 1, 18. November 2014
 */
public class StandardRechtePruefer implements RechtePruefer {
src/de/uhilger/transit/web/TransitServlet.java
@@ -17,6 +17,11 @@
 */
package de.uhilger.transit.web;
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 javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -29,7 +34,6 @@
import java.util.ArrayList;
import java.util.List;
import de.uhilger.transit.*;
/**
 * Das TransitServlet macht beliebige Klassen und Methoden ueber HTTP
@@ -156,16 +160,20 @@
      while (en.hasMoreElements()) {
        String pName = en.nextElement().toString();
        String[] pWerte = req.getParameterValues(pName);
        if (pName.equals(CLASS_NAME)) {
          klassenName = pWerte[0];
        } else if (pName.equals(METHOD_NAME)) {
          methodenName = pWerte[0];
        } else if (pName.equals(FORMAT_NAME)) {
          formatName = pWerte[0];
        } else {
          for (int i = 0; i < pWerte.length; i++) {
            parameterListe.add(pWerte[i]);
          }
        switch (pName) {
          case CLASS_NAME:
            klassenName = pWerte[0];
            break;
          case METHOD_NAME:
            methodenName = pWerte[0];
            break;
          case FORMAT_NAME:
            formatName = pWerte[0];
            break;
          default:
            for (String pWerte1 : pWerte) {
              parameterListe.add(pWerte1);
            } break;
        }
      }
      Object[] parameter = parameterListe.toArray(new Object[0]);
src/de/uhilger/transit/web/TransitServletRS.java
@@ -18,16 +18,22 @@
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 TransitServletRS macht beliebige Klassen und Methoden 
@@ -194,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());