public static String getResTxtContent(ClassLoader cl, String p) throws IOException { String s = res2txt_cont.get(p); if (s != null) return s; InputStream is = null; try { is = cl.getResourceAsStream(p); // is = this.getClass().getResourceAsStream(p); if (is == null) return null; byte[] buf = new byte[1024]; ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len; while ((len = is.read(buf)) >= 0) { baos.write(buf, 0, len); } byte[] cont = baos.toByteArray(); s = new String(cont, "UTF-8"); res2txt_cont.put(p, s); return s; } finally { if (is != null) is.close(); } }
private InputStream getInputStreamByPath(String p) { InputStream is = appCL.getResourceAsStream(p); if (is != null) return is; is = Thread.currentThread().getContextClassLoader().getResourceAsStream(p); if (is != null) return is; ClassLoader mycl = this.getClass().getClassLoader(); URL u = mycl.getResource(p); is = mycl.getResourceAsStream(p); if (is != null) return is; ClassLoader pcl = mycl; while ((pcl = pcl.getParent()) != null) { is = pcl.getResourceAsStream(p); if (is != null) return is; } return null; }
private static synchronized String getJavascript() { if (jstext == null) { InputStream istr = null; try { ClassLoader loader = Thread.currentThread().getContextClassLoader(); istr = loader.getResourceAsStream(JAVASCRIPT_RESOURCE); jstext = StringUtil.fromInputStream(istr); istr.close(); } catch (Exception e) { log.error("Can't load javascript", e); } finally { IOUtil.safeClose(istr); } } return jstext; }
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException { String p = req.getParameter("r"); if (p == null || (p = p.trim()).equals("")) { String pi = req.getPathInfo(); return; } byte[] cont = res2cont.get(p); if (cont != null) { resp.setContentType(Mime.getContentType(p)); ServletOutputStream os = resp.getOutputStream(); os.write(cont); os.flush(); return; } InputStream is = null; try { is = appCL.getResourceAsStream(p); // getInputStreamByPath(p) ; if (is == null) { is = new Object().getClass().getResourceAsStream(p); if (is == null) return; } byte[] buf = new byte[1024]; ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len; while ((len = is.read(buf)) >= 0) { baos.write(buf, 0, len); } cont = baos.toByteArray(); res2cont.put(p, cont); resp.setContentType(Mime.getContentType(p)); ServletOutputStream os = resp.getOutputStream(); os.write(cont); os.flush(); return; } finally { if (is != null) is.close(); } }