{"id":555,"date":"2012-01-12T04:16:00","date_gmt":"2012-01-12T11:16:00","guid":{"rendered":"https:\/\/gonzalo.aro.cl\/blog\/?p=555"},"modified":"2012-01-12T04:39:51","modified_gmt":"2012-01-12T11:39:51","slug":"error-en-lectura-de-archivo-fuera-del-application-server","status":"publish","type":"post","link":"https:\/\/gonzalo.aro.cl\/blog\/2012\/01\/12\/error-en-lectura-de-archivo-fuera-del-application-server\/","title":{"rendered":"Error en lectura de archivo fuera del Application Server"},"content":{"rendered":"<p>Tengo una pagina JSP encargada del proceso de \u00abdownload\u00bb para cualquier archivo. Esta hab\u00eda sido probada en varios sistemas operativos hasta que me top\u00e9 con Solaris. En Solaris uno no puede leer un archivo que este fuera de la ruta del servidor de aplicaciones, env\u00eda error y no lee el archivo (en otros sistemas operativos no sucede). Para poder hacerlo no hay que abrirlo como File sino como URL, pero para abrirlo como URL, hay que antepornerle el protocolo &#8216;file:\/\/&#8217;, siendo esto compatible con todos los sistemas operativos.<\/p>\n<pre class=\"brush: java\">\r\nString file = \"file:\/\/\" + request.getParameter(\"file\");\r\n\t\r\nOutputStream output = response.getOutputStream();\r\nInputStream in = null;\r\ntry {\r\n    URL url = new URL(file);\r\n    in = url.openStream();\r\n    byte[  ] buf = new byte[4 * 1024]; \r\n    int bytesRead;\r\n    while ((bytesRead = in.read(buf)) != -1) {\r\n        output.write(buf, 0, bytesRead);\r\n    }\r\n} finally {\r\n    if (in != null) in.close();\r\n}\r\n<\/pre>\n<p>La verdad es que independientemente del sistema operativo esto debi\u00f3 ser siempre as\u00ed, s\u00f3lo que muchas veces uno se queda con lo primero que le resulta.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tengo una pagina JSP encargada del proceso de \u00abdownload\u00bb para cualquier archivo. Esta hab\u00eda sido probada en varios sistemas operativos hasta que me top\u00e9 con Solaris. En Solaris uno no puede leer un archivo que este fuera de la ruta del servidor de aplicaciones, env\u00eda error y no lee el archivo (en otros sistemas operativos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6,14,7],"tags":[],"class_list":["post-555","post","type-post","status-publish","format-standard","hentry","category-desarrollo","category-java","category-jboss","category-jee"],"_links":{"self":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/555"}],"collection":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/comments?post=555"}],"version-history":[{"count":7,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/555\/revisions"}],"predecessor-version":[{"id":562,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/555\/revisions\/562"}],"wp:attachment":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/media?parent=555"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/categories?post=555"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/tags?post=555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}