Package anvil.server

Source Code of anvil.server.WmlTemplates

/*
* $Id: WmlTemplates.java,v 1.5 2002/09/16 08:05:06 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.server;

import java.io.IOException;
import java.io.Writer;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URL;
import java.net.MalformedURLException;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import anvil.Location;
import anvil.ErrorListener;
import anvil.ErrorEvent;
import anvil.ForgingException;
import anvil.script.ScriptException;
import anvil.util.Conversions;


/**
* class WmlTemplates
*
* @author: Jaripekka Salminen
* @author: Jani Lehtim�ki
*/
public class WmlTemplates
{

  public static final void message(HttpServletRequest request,
   HttpServletResponse response, int errorCode, String errorMessage) throws IOException
  {
    String msg = "" + errorCode + " " +errorMessage;
    PrintWriter out = new PrintWriter(response.getOutputStream());
    response.setStatus(errorCode);
    out.println("<?xml version=\"1.0\"?>");
    out.println("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">");
    out.println("<wml>");
    out.print("<card title=\"");
    out.print(msg);
    out.println("\">");
    out.println("<p align='center'>");
    out.print("Resource ");
    String str = request.getPathInfo();
    out.println((str != null) ? str : "");
    out.print(" at ");
    str = request.getHeader("Host");
    out.print((str != null) ? str : "localhost");
    out.println("</p>");
    out.println("</card>");
    out.println("</wml>");
    out.flush();
  }
   
 

  public static final void exception(Context context, Exception exception) throws IOException
  {
    PrintWriter out = new PrintWriter(context.getOutputStream());
    out.println("<?xml version=\"1.0\"?>");
    out.println("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">");
    out.println("<wml>");
    out.println("<card title=\"Site Error\">");
    out.println("<p align='center'>");

    if (exception instanceof ForgingException) {
      out.println("Parsing errors");
    } else if (exception instanceof ScriptException) {
      out.println("Runtime error");
    } else if (exception instanceof IOException) {
      out.println("IO Error");
    } else {
      out.println("Error");
    }
    out.println("<br/>");
   
    if (exception instanceof ForgingException) {
      ErrorListener listener = ((ForgingException)exception).getErrorListener();
      Enumeration e = listener.getEvents();
      int count = 0;
      while(e.hasMoreElements()) {
        ErrorEvent evt = (ErrorEvent)e.nextElement();
        Location loc = evt.getLocation();
        String url;
        if (loc != null) {
          url = loc.getURL().toString();
          out.print(url);
          if (loc.getLine()>0) {
            out.print(" [");
            out.print(loc.getLine());
            if (loc.getColumn()>0) {
              out.print(":");
              out.print(loc.getColumn());
            }
            out.print("]");
          }
          out.println();

        } else {
          out.println("Unknown location");
        }
        String msg = evt.getMessage();
        if (msg != null) {
          out.print(Conversions.encodeEntities(msg));
        }
        count++;
        out.println("<br/>");
      }
     
    } else if (exception instanceof ScriptException) {
      out.println("Uncaught exception:\n");
      out.print(((ScriptException)exception).getData().toString());
     
    } else if (exception instanceof IOException) {
      out.print(context.getPathinfo());
      out.print(" ");
      out.print(exception.getMessage());

    } else {
      out.print(exception.getMessage());
      exception.printStackTrace(out);
    }
   
    out.println("</p>");
    out.println("</card>");
    out.println("</wml>");
    out.flush();
  }
 
 
}
TOP

Related Classes of anvil.server.WmlTemplates

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.