Example usage for javax.servlet.http HttpServlet log

List of usage examples for javax.servlet.http HttpServlet log

Introduction

In this page you can find the example usage for javax.servlet.http HttpServlet log.

Prototype

public void log(String message, Throwable t) 

Source Link

Document

Writes an explanatory message and a stack trace for a given Throwable exception to the servlet log file, prepended by the servlet's name.

Usage

From source file:org.onebusaway.webapp.impl.WebappServiceServletImpl.java

/**
 * Used by HybridServiceServlet.//from   w  w w . j a  va  2  s  . c o m
 */
private static SerializationPolicy customLoadSerializationPolicy(HttpServlet servlet,
        HttpServletRequest request, String moduleBaseURL, String strongName) {

    // The request can tell you the path of the web app relative to the
    // container root.
    String contextPath = request.getContextPath();

    String modulePath = null;
    if (moduleBaseURL != null) {
        try {
            modulePath = new URL(moduleBaseURL).getPath();
        } catch (MalformedURLException ex) {
            // log the information, we will default
            servlet.log("Malformed moduleBaseURL: " + moduleBaseURL, ex);
        }
    }

    SerializationPolicy serializationPolicy = null;

    /*
     * Check that the module path must be in the same web app as the servlet
     * itself. If you need to implement a scheme different than this, override
     * this method.
     */
    if (modulePath == null) {
        String message = "ERROR: The module path requested, " + modulePath
                + ", is not in the same web application as this servlet, " + contextPath
                + ".  Your module may not be properly configured or your client and server code maybe out of date.";
        servlet.log(message, null);
    } else {

        // TODO : Hack for Nokia demo
        // /Users/bdferris/Documents/Aptana%20Studio%20Workspace/nokia-hello-world/
        if (modulePath.endsWith("nokia-hello-world/"))
            modulePath = "/where/mobile/";

        if (!modulePath.startsWith(contextPath))
            modulePath = contextPath + modulePath;

        // Strip off the context path from the module base URL. It should be a
        // strict prefix.
        String contextRelativePath = modulePath.substring(contextPath.length());

        String serializationPolicyFilePath = SerializationPolicyLoader
                .getSerializationPolicyFileName(contextRelativePath + strongName);

        // Open the RPC resource file and read its contents.
        InputStream is = servlet.getServletContext().getResourceAsStream(serializationPolicyFilePath);
        try {
            if (is != null) {
                try {
                    serializationPolicy = SerializationPolicyLoader.loadFromStream(is, null);
                } catch (ParseException e) {
                    servlet.log("ERROR: Failed to parse the policy file '" + serializationPolicyFilePath + "'",
                            e);
                } catch (IOException e) {
                    servlet.log("ERROR: Could not read the policy file '" + serializationPolicyFilePath + "'",
                            e);
                }
            } else {
                String message = "ERROR: The serialization policy file '" + serializationPolicyFilePath
                        + "' was not found; did you forget to include it in this deployment?";
                servlet.log(message, null);
            }
        } finally {
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                    // Ignore this error
                }
            }
        }
    }

    return serializationPolicy;
}