<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true" session="true" import="java.io.*" import="java.net.*" import="java.util.*" import="org.opencms.main.OpenCms" import="org.opencms.file.CmsObject" import="org.opencms.file.CmsResource" import="org.opencms.flex.*" import="org.opencms.i18n.CmsLocaleManager" import="org.opencms.jsp.*" import="org.opencms.jsp.util.CmsJspStatusBean" import="org.opencms.main.CmsException" import="org.opencms.site.CmsSite" import="org.opencms.util.*" import="org.apache.commons.logging.*" %><%! private final Log log = LogFactory.getLog(getClass()); private static final void processPage(CmsJspStatusBean cms, HttpServletRequest request, HttpServletResponse response, Integer errorCode, Log log) throws CmsException, IOException { String siteRoot = cms.getSiteRoot();//.getRequestContext().getSiteRoot(); CmsSite site; if (siteRoot != null && !"".equals(siteRoot)) { site = OpenCms.getSiteManager().matchRequest(request); } else { site = OpenCms.getSiteManager().getSiteForSiteRoot(siteRoot); } if (site == null || "".equals(site.getSiteRoot())) { site = OpenCms.getSiteManager().getDefaultSite(); } String errorPage = "/sv/errors/" + errorCode.intValue() + ".html"; log.info(String.format("Processing error %d page [%s]", errorCode, cms.link(errorPage))); InputStream in = null; OutputStream out = null; byte[] buf = new byte[10240]; try { out = response.getOutputStream(); // out.write((site.getServerPrefix(cms.getCmsObject(), siteRoot) + cms.link(errorPage.replace(site.getSiteRoot(), ""))).getBytes()); in = new URL("http://localhost:8180/DEV/opencms" + errorPage ).openStream(); for (int i = 0; (i = in.read(buf)) != -1;) { out.write(buf, 0, i); } } catch (Exception e) { e.toString(); }finally { if (in != null) { in.close(); } if (out != null) { out.close(); } } } %><% CmsJspStatusBean cms = new CmsJspStatusBean(pageContext, request, response, exception); Integer errorCode = (Integer)request.getAttribute(CmsJspStatusBean.ERROR_STATUS_CODE); if (errorCode == null) { errorCode = 404; } cms.setStatus(errorCode); response.setStatus(errorCode); switch (errorCode.intValue()) { case 500: processPage(cms, request, response, errorCode, log); break; case 404: processPage(cms, request, response, errorCode, log); break; case 403: processPage(cms, request, response, 404, log); break; case 401: processPage(cms, request, response, 404, log); break; default: break; } %>