<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Servlet acessando recursos em WEB-INF"]]></title>
		<link>http://www.guj.com.br/posts/list/6.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Servlet acessando recursos em WEB-INF"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Servlet acessando recursos em WEB-INF</title>
				<description><![CDATA[ Olá. Sei que este é um tema bastante discutido. Inclusive pesquisei no GUJ e fiz vários testes.... mas não consigo fazer uma servlet ler um arquivo com conteúdo html e mandar as linhas para out.println... Onde estou errando? por favor ajudem.<br /> Porque sempre dá NullPointerException???<br /> [quote]<br /> INFO: BTTNLOGI: reading resource: /WEB-INF/BTTNLOGI.HTM<br /> 06/02/2010 17:49:10 org.apache.catalina.core.StandardWrapperValve invoke<br /> SEVERE: Servlet.service() for servlet BTTNLOGI threw exception<br /> [b]java.lang.NullPointerException[/b]<br />         at com.consist.bttweb.controller.BTTNLOGI.processRequest(BTTNLOGI.java:44)<br />         at com.consist.bttweb.controller.BTTNLOGI.doGet(BTTNLOGI.java:111)<br />         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)<br />         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br />         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br />         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br />         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br />         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br />         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)<br />         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br />         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br />         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)<br />         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)<br />         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)<br />         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)<br />         at java.lang.Thread.run(Thread.java:619)<br /> <br /> [/quote]<br /> <br /> Veja os testes que já fiz:<br /> [code]<br />         ...<br />         try {<br />             String fileName="/WEB-INF/BTTNLOGI.HTM";<br />             log("reading resource: "+ fileName);<br /> <br />             //URI uri  = getClass().getResource(fileName).toURI();<br />             //FileInputStream fis = new FileInputStream(new File(uri));<br />             //BufferedReader br = new BufferedReader(new InputStreamReader(fis));<br /> <br />             // InputStream is = getClass().getClassLoader().getResourceAsStream(fileName);<br />             // BufferedReader br = new BufferedReader(new InputStreamReader(is));<br /> <br />             //URL url = getServletContext().getResource(fileName);<br />             //BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));<br /> <br />             //InputStream is = getServletContext().getResourceAsStream(fileName);<br />             //BufferedReader br = new BufferedReader(new InputStreamReader(is));<br /> <br />             //FileInputStream fis = new FileInputStream(Thread.currentThread().getContextClassLoader().getResource(fileName).getPath());<br />             //BufferedReader br = new BufferedReader(new InputStreamReader(fis));<br /> <br />             FileInputStream fis = new FileInputStream(getServletContext().getResource(fileName).getFile());<br />             BufferedReader br = new BufferedReader(new InputStreamReader(fis));<br /> <br />             String s;<br /> 	    while ((s = br.readLine()) != null) {<br />                 out.println(s);<br /> 	    }<br /> 	    br.close();<br />            ...<br /> [/code]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197696/992234/servlet-acessando-recursos-em-web-inf
</guid>
				<link>http://www.guj.com.br/prepost/197696/992234/servlet-acessando-recursos-em-web-inf
</link>
				<pubDate><![CDATA[Mon, 8 Feb 2010 17:49:16]]> GMT</pubDate>
				<author><![CDATA[ ctdaa]]></author>
			</item>
			<item>
				<title>Re:Servlet acessando recursos em WEB-INF</title>
				<description><![CDATA[ Log somente "getServletContext().getResource(fileName).getFile()", pois possivelmente o arquivo não está sendo encontrado.<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197696/992292/reservlet-acessando-recursos-em-web-inf
</guid>
				<link>http://www.guj.com.br/prepost/197696/992292/reservlet-acessando-recursos-em-web-inf
</link>
				<pubDate><![CDATA[Mon, 8 Feb 2010 21:38:21]]> GMT</pubDate>
				<author><![CDATA[ betounisul]]></author>
			</item>
			<item>
				<title>Re:Servlet acessando recursos em WEB-INF</title>
				<description><![CDATA[ [quote=betounisul]Log somente "getServletContext().getResource(fileName).getFile()", pois possivelmente o arquivo não está sendo encontrado.<br /> <br /> [/quote]<br /> Obrigado. Graças a sua resposta identifiquei o problema<br /> Coloquei a linha com log.... e deu nullPointer novamente... aí coloquei um getRealPath para ver para onde estava apontando e .... descobri que o [b]nome do arquivo estava errado[/b]   :oops: <br /> [code]<br />             log("getFile:" + getServletContext().getResource(fileName).getFile());<br />             log("getRealPath:" + getServletContext().getRealPath(fileName));<br /> [/code]<br /> Acertei o nome no programa e testei novamente.<br /> <br /> Das alternativas utilizadas estas duas funcionaram... Qual é recomendada? Tem diferença entre elas?<br /> [code]<br />             // Funciona<br />             //URL url = getServletContext().getResource(fileName);<br />             //BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));<br /> <br />             // Funciona<br />             InputStream is = getServletContext().getResourceAsStream(fileName);<br />             BufferedReader br = new BufferedReader(new InputStreamReader(is));<br /> <br /> [/code]<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197696/992509/reservlet-acessando-recursos-em-web-inf
</guid>
				<link>http://www.guj.com.br/prepost/197696/992509/reservlet-acessando-recursos-em-web-inf
</link>
				<pubDate><![CDATA[Tue, 9 Feb 2010 10:41:47]]> GMT</pubDate>
				<author><![CDATA[ ctdaa]]></author>
			</item>
			<item>
				<title>Re:Servlet acessando recursos em WEB-INF</title>
				<description><![CDATA[ Aproveitando o tópico para uma pergunta relacionada.<br /> A página html consegue fazer referência a recursos que estão no WEB-INF??? <br /> Exemplo:<br /> [code]<br /> &lt;style&gt;<br /> #bgHeader {width: 100%; height: 44px;position: absolute; left: 0px; top: 0px;background-image: url(/WEB-INF/imagem/bgHeader.gif);}<br /> #bgFoot   {width: 100%; height: 35px;padding: 5px 5px 5px 5px;background-image: url(/WEB-INF/BTT/v250/imagem/bgFoot.gif);background-repeat: repeat-x;}<br /> #pagina {	font-family: Arial, Helvetica, sans-serif;	text-decoration: none;	font-style: normal;	font-weight: normal;	margin: 0px auto 0px 0px;    width: 100%; 	/*height: 120px;*/	position: absolute; 	left: 0px; top: 44px; 	background: url(/WEB-INF/imagem/fundo.gif) repeat-x;}<br /> &lt;/style&gt;<br /> &lt;link href="/WEB-INF/css/style.css" rel="stylesheet" /&gt;<br /> &lt;link rel="shortcut icon" href="/WEB-INF/imagem/favicon.ico"  type="image/x-icon" /&gt;<br /> ....<br /> &lt;div align="right"&gt;&lt;img src="/WEB-INF/imagem/logo_tag.jpg" alt="Logo" /&gt;&lt;/div&gt;   <br /> &lt;div id="bgFoot"&gt;  &lt;table&gt;  &lt;tr&gt;    &lt;td&gt;&lt;img src="/WEB-INF/imagem/logo_25.jpg" alt="Logo" /&gt;&lt;/td&gt;        &lt;td&gt;&lt;h5&gt;Companyt ©&lt;/h5&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;/table&gt;  &lt;/div&gt;<br /> &lt;/div&gt;&lt;/body&gt;&lt;/html&gt;<br /> <br /> [/code]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/197696/992827/reservlet-acessando-recursos-em-web-inf
</guid>
				<link>http://www.guj.com.br/prepost/197696/992827/reservlet-acessando-recursos-em-web-inf
</link>
				<pubDate><![CDATA[Tue, 9 Feb 2010 16:39:04]]> GMT</pubDate>
				<author><![CDATA[ ctdaa]]></author>
			</item>
	</channel>
</rss>
