Skip to Content.
Sympa Menu

idok-commit - [idok-commit] idok commit r228 - branches/rest/java/ch/idok/service/server/rest

idok-commit AT lists.psi.ch

Subject: Commit emails of the iDok project

List archive

[idok-commit] idok commit r228 - branches/rest/java/ch/idok/service/server/rest


Chronological Thread 
  • From: "AFS account Roman Geus" <geus AT savannah.psi.ch>
  • To: idok-commit AT lists.psi.ch
  • Subject: [idok-commit] idok commit r228 - branches/rest/java/ch/idok/service/server/rest
  • Date: Tue, 23 Sep 2008 17:47:42 +0200
  • List-archive: <https://lists.web.psi.ch/pipermail/idok-commit/>
  • List-id: Commit emails of the iDok project <idok-commit.lists.psi.ch>

Author: geus
Date: Tue Sep 23 17:47:42 2008
New Revision: 228

Log:
Added code that generates ReST error message in XHTML format

Added:
branches/rest/java/ch/idok/service/server/rest/RestExceptionResponse.java
(contents, props changed)

Added:
branches/rest/java/ch/idok/service/server/rest/RestExceptionResponse.java
==============================================================================
--- (empty file)
+++ branches/rest/java/ch/idok/service/server/rest/RestExceptionResponse.java
Tue Sep 23 17:47:42 2008
@@ -0,0 +1,66 @@
+package ch.idok.service.server.rest;
+
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.commons.lang.StringEscapeUtils;
+
+import ch.idok.common.errorhandling.Util;
+
+public class RestExceptionResponse {
+
+ /**
+ * Return a XHTML formatted Response that represents a client error
+ *
+ * @param e Cause of the server error
+ * @return Response object
+ */
+ public static Response clientErrorXHTML(String message) {
+ StringBuilder sb = new StringBuilder();
+ sb
+ .append("<?xml version=\"1.0\"?> <!DOCTYPE html PUBLIC
\"-//W3C//DTD XHTML 1.1//EN\"
\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\";> <html
xmlns=\"http://www.w3.org/1999/xhtml\"; xml:lang=\"en\">");
+ sb.append("<head><title>Bad request</title></head>");
+ sb.append("<body>");
+ sb.append("<h1>Bad request</h1>");
+ sb
+ .append("<p>The REST server received a bad request from the
client</p>");
+ if (message != null)
+ sb.append(String.format(
+ "<p>Error message: <i class=\"message\">%s</i></p>",
+ StringEscapeUtils.escapeHtml(message)));
+ sb.append("</body>");
+ return
Response.status(Status.BAD_REQUEST).type("text/html").entity(sb).build();
+ }
+
+ /**
+ * Return a XHTML formatted Response containing information about the
+ * exception
+ *
+ * @param e Cause of the server error
+ * @return Response object
+ */
+ public static Response generateXHTML(Throwable e) {
+ StringBuilder sb = new StringBuilder();
+ sb
+ .append("<?xml version=\"1.0\"?> <!DOCTYPE html PUBLIC
\"-//W3C//DTD XHTML 1.1//EN\"
\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\";> <html
xmlns=\"http://www.w3.org/1999/xhtml\"; xml:lang=\"en\">");
+ sb.append("<head><title>REST server error</title></head>");
+ sb.append("<body>");
+ String message = e.getMessage();
+ sb.append("<h1>REST server error</h1>");
+ sb
+ .append("<p>An unexpected error occurred when processing a
REST call on the server.</p>");
+ if (message != null)
+ sb.append(String.format(
+ "<p>Error message: <i class=\"message\">%s</i></p>",
+ StringEscapeUtils.escapeHtml(message)));
+ sb.append(String.format(
+ "<p>Exception: <i class=\"exception\">%s</i></p>",
e.getClass()
+ .getName()));
+ sb.append("<p>Stack trace:</p>");
+ sb.append(String.format("<pre class=\"stacktrace\">%s</pre>",
+ StringEscapeUtils.escapeHtml(Util.stackTraceToString(e))));
+ sb.append("</body>");
+ return Response.serverError().type("text/html").entity(sb).build();
+ }
+
+}



  • [idok-commit] idok commit r228 - branches/rest/java/ch/idok/service/server/rest, AFS account Roman Geus, 09/23/2008

Archive powered by MHonArc 2.6.19.

Top of Page