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>  </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>  </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