[RESOLVIDO] Erro JSP Error Verificação de Download

Boa tarde galera,

Estou com um erro:
[b]
JSP Error

Exception:

java.lang.ArrayIndexOutOfBoundsException: 2
[/b]

O meu codigo é este:

	public String visualizarArquivos(String teste) {

   
		String retorno = null;
		String diretorio = "/arquivos";
		System.out.println("####################################### Diretorio dos arquivos: " + diretorio);
		File file = new File(diretorio);
		File afile[] = file.listFiles();
		int i = 0;
    System.out.println("####################################### Antes do For: ");
		for (int j = afile.length; i < j; i++) {
			File arquivos = afile[i];

      System.out.println("####################################### Lista de arquivos: " + afile[i].getName());
			if (afile[i].getName() == teste.replaceAll("\\D", "")) {
      System.out.println("####################################### "+teste);
      System.out.println("####################################### if: Y");
				retorno = "Y";
			} else {
      System.out.println("####################################### "+teste);
      System.out.println("####################################### else: N");
				retorno = "N";
			}
		}
		System.out.println("####################################### Lista de arquivos: " + afile[i].getName());
		return retorno;

	}

Utilizo este codigo para verificar se existe o cnpj (que é o nome do arquivo) em um diretório para que o mesmo possa exibir uma mensagem depois no jsp que o arquivo não foi encontrado e se for encontrado ele faz o download.

Pessoal,

alguem sabe como me ajudar?

em que linha está ocorrendo este erro? Posta o erro completo por favor.

Andre.froes

Não mostra qual linha e a unico retorno que volta é este:

The Error is: java.lang.ArrayIndexOutOfBoundsException

coloca o seu código dentro de um bloco try{}catch();

try {
//seu código aqui			
} catch (ArrayIndexOutOfBoundsException e) {
	e.printStackTrace()
}

e passa aqui o que vai sair no console

[quote=andre.froes]coloca o seu código dentro de um bloco try{}catch();

try {
//seu código aqui			
} catch (ArrayIndexOutOfBoundsException e) {
	e.printStackTrace()
}

e passa aqui o que vai sair no console[/quote]

André,

Coloquei o try{} catch() e funcionou.

Codigo ficou assim

[code]
public String visualizarArquivos(String teste) {

	String retorno = null;

try{
String diretorio = “/arquivos”;
System.out.println("####################################### Diretorio dos arquivos: " + diretorio);
File file = new File(diretorio);
File afile[] = file.listFiles();
int i = 0;

System.out.println("####################################### Antes do For: ");
	for (int j = afile.length; i < j; i++) {
		File arquivos = afile[i];

  System.out.println("####################################### Lista de arquivos: " + afile[i].getName());
		if (afile[i].getName() == teste.replaceAll("\\D", "")) {
  System.out.println("####################################### "+teste);
  System.out.println("####################################### if: Y");
			retorno = "Y";
		} else {
  System.out.println("####################################### "+teste);
  System.out.println("####################################### else: N");
			retorno = "N";
		}
	}

}
catch(ArrayIndexOutOfBoundsException e){
System.out.println(“The Error is: " + e);
e.printStackTrace();
}
// System.out.println(”####################################### Lista de arquivos: " + afile[i].getName());
return retorno;

}[/code]

Porem,

tem um problema que no for ele só seta a ultima alternativa.

Exemplo:

se tiver o arquivo.pdf
e arquivo2.pdf

e eu enviar arquivo.pdf
ele vai retornar “N”

Pois ele só esta retornando o ultimo valor consultado

Pessoal, todos os erros ja arrumados porem preciso de uma ajuda.

<%@ page import="java.util.Iterator"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="java.util.List"%>

<%@ page import="java.lang.String"%>

<%@ page import="java.io.PrintWriter"%>

 <%String cnpj1 = "";
 cnpj1 = request.getParameter("cnpj");%>
 <%
	String cnpj2 = "";
	cnpj2 = request.getParameter("cnpjMask");
	String cnpjPdf = "";
	cnpjPdf = cnpj1+".pdf";
 %>
<html>
<head>
<title>titulo</title>
<link href="css/default.css" type="text/css" charset="UTF-8" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</head>
<script src="js/jquery-1.2.6.pack.js" type="text/javascript"></script>
<script src="js/jquery.maskedinput-1.1.4.pack.js" type="text/javascript" /></script>
<%String cnpjdown = null;%>
<script type="text/javascript">
//document.form_consulta.cnpj.disable = true;

$(document).ready(function(){
	cnpj.style.visibility = 'hidden';
	$("#cnpjMask").mask("99.999.999/9999-99");
	
	$("#submita").click(function(){
		var1 = $("#cnpjMask").val();
        var teste = $("#cnpj").val(var1.replace(/[^0-9]+/g, ""));
		var teste2 = teste+".pdf";
		//alert(teste2);
        $("form_consulta").submit();
		$("#mostra2").show();
    });
 <%
	if(cnpjPdf.length() > 9) out.print("$('#mostra2').show();");
 %>
	
});
function downladTreinamento(file){
	 <%
	 if (cnpjdown == "Y"){
	 System.out.println("#################### Valor do cnpjdown: "+cnpjdown);
	 %>
	 window.open('../arquivos/'+file);
	 <%
	 }else{
	 System.out.println("#################### Valor do cnpjdown: "+cnpjdown);
	 %>
	alert("Arquivo desejado não encontrado");
	<%
	}
	 %>
}
</script>

<body>

		<%
		RendimentoAction ra = new RendimentoAction();
		String login = u.getLogin();
		String cnpjforn = ra.CnpjFornecedor(login);
		System.out.println("#################### Passou a declaracao da variavel do rendimento");
		if (cnpjforn == "not"){
		cnpjdown = ra.visualizarArquivos(cnpjPdf);
		System.out.println("#################### Valor do cnpjdown ANTES DO JAVASCRIPT: "+cnpjdown);
		%>

		<div  class="txt_v11" id="digita" style="display: block;" align="center">
			<form name="form_consulta" id="form_consulta" action="rendimento.jsp" method="POST" >
				<font size="4"><b>Informe o CNPJ desejado para a obtenção do rendimento:</b></font><br><br>
				<input name="cnpj" type="text" id="cnpj"size="18"   maxlength="18" />  
				<input name="cnpjMask" type="text" id="cnpjMask"size="18"   maxlength="18" />  
				<input type="submit" id="submita" value="Enviar">
			</form>
		</div>
<br><br>
		 <div class="txt_v11" id="mostra2" align="center" style="display:none;">	
					<table border="0" align="center">
						<tr>
							<td></td>
							<td>&nbsp </td>
							<td></td>
							<td>Para baixar seu rendimento <a href="javascript:downladTreinamento('<%=cnpjPdf%>');" target="_blank">clique aqui</a></td>
						</tr>

					</table>
		 </div>
		 <%
		}else{
		cnpjdown = ra.visualizarArquivos(cnpjforn);
		System.out.println("#################### Valor do cnpjdown ANTES DO JAVASCRIPT: "+cnpjdown);
		%>
		<div class="txt_v11" id="mostra1" style="display: block;"align="center">
			<table border="0" align="center">

				<tr>
					<td></td>
					<td>&nbsp </td>
					<td><%=cnpjforn%></td>
					<td>Para baixar seu rendimento <a href="javascript:downladTreinamento('<%=cnpjforn%>');" target="_blank">clique aqui</a></td>
				</tr>

			</table>
		</div>		
		
		<%
		}
		%>		
	</body>
</html>

Preciso criar uma mensagem de erro se o arquivo não for encontrado porem não estou conseguindo.
Aguardo

PESSOAL AQUI A SOLUÇÃO COMPLETA RESOLVIDA!!

valeu pela ajuda!!! :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley:



<%@ page import="java.util.Iterator"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="java.util.List"%>

<%@ page import="java.lang.String"%>

<%@ page import="java.io.PrintWriter"%>

 <%String cnpj1 = "";
 cnpj1 = request.getParameter("cnpj");%>
 <%
	String cnpj2 = "";
	cnpj2 = request.getParameter("cnpjMask");
	String cnpjPdf = "";
	cnpjPdf = cnpj1+".pdf";
	String cnpjdown = null;
	String cnpjdownf = null;
 %>
<html>
<head>
<title>pagina</title>
<link href="css/default.css" type="text/css" charset="UTF-8" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</head>
<script src="js/jquery-1.2.6.pack.js" type="text/javascript"></script>
<script src="js/jquery.maskedinput-1.1.4.pack.js" type="text/javascript" /></script>

<script type="text/javascript">
//document.form_consulta.cnpj.disable = true;

$(document).ready(function(){
	cnpj.style.visibility = 'hidden';
	$("#cnpjMask").mask("99.999.999/9999-99");
	
	$("#submita").click(function(){
		var1 = $("#cnpjMask").val();
        var teste = $("#cnpj").val(var1.replace(/[^0-9]+/g, ""));
		var teste2 = teste+".pdf";
		//alert(teste2);
        $("form_consulta").submit();
		$("#mostra2").show();
    });
 <%
	if(cnpjPdf.length() > 9) out.print("$('#mostra2').show();");
 %>
	
});

</script>

<body>

		<%
		String login = u.getLogin();
		String cnpjforn = ra.CnpjFornecedor(login);
		System.out.println("#################### Passou a declaracao da variavel do rendimento");
		if (cnpjforn == "not"){
		cnpjdown = ra.visualizarArquivos(cnpjPdf);
		System.out.println("#################### Valor do cnpjdown ANTES DO JAVASCRIPT: "+cnpjdown);
		%>

		<div  class="txt_v11" id="digita" style="display: block;" align="center">
			<form name="form_consulta" id="form_consulta" action="rendimento.jsp" method="POST" >
				<font size="4"><b>Informe o CNPJ desejado para a obtenção do rendimento:</b></font><br><br>
				<input name="cnpj" type="text" id="cnpj"size="18"   maxlength="18" />  
				<input name="cnpjMask" type="text" id="cnpjMask"size="18"   maxlength="18" />  
				<input type="submit" id="submita" value="Enviar">
			</form>
		</div>
<br><br>
		 <div class="txt_v11" id="mostra2" align="center" style="display:none;">	
					<table border="0" align="center">
						<tr>
							<td></td>
							<td>&nbsp </td>
							<td></td>
							<td>Para baixar seu rendimento <a href="javascript:downladTreinamento('<%=cnpjPdf%>');" target="_blank">clique aqui</a></td>
						</tr>

					</table>
		 </div>
		 <%
		}else{
		cnpjdown = ra.visualizarArquivos(cnpjforn);
		System.out.println("#################### Valor do cnpjdown ANTES DO JAVASCRIPT: "+cnpjdown);
		%>
		<div class="txt_v11" id="mostra1" style="display: block;"align="center">
			<table border="0" align="center">

				<tr>
					<td></td>
					<td>&nbsp </td>
					<td><%=cnpjforn%></td>
					<td>Para baixar seu rendimento <a href="javascript:downladTreinamento('<%=cnpjforn%>');" target="_blank">clique aqui</a></td>
				</tr>

			</table>
		</div>		
		
		<%
		}
		%>	

<script>
function downladTreinamento(file){
	 <%
	 if (cnpjdown == "Y"){
	 System.out.println("#################### Valor do cnpjdown: "+cnpjdown);
	 %>
	 window.open('../arquivos/'+file);
	 <%
	 }else{
	 System.out.println("#################### Valor do cnpjdown: "+cnpjdown);
	 %>
	alert("Arquivo não encontrado");
	<%
	}
	 %>
}
</script>		
	</body>
</html>

ABRAÇO