Olá Pessoal…
onde devo colocar o arquivo .jasper em uma aplicação web???
Uso o Struts e estou chamando o arquivo .jasper de uma classe do Form do Struts…
tentei colocar no WEB-INF mas retornou uma msg falando que não encontrou o arquivo…
java.io.FileNotFoundException:
E aí Fábio.
É só colocar o .jasper no diretório raiz do seu projeto.
eu coloquei agora e continua dando o mesmo erro…
vou colocar meu código pra ver se tem alguma coisa errado…
JREmptyDataSource ED = new JREmptyDataSource();
JRBeanCollectionDataSource BCD = new JRBeanCollectionDataSource(l);
Hashtable ht = new Hashtable();
ht.put("comMot", BCD);
try{
JasperReport relatorio = (JasperReport) JRLoader.
loadObject("RelComissaoDiarioMotorista.jasper");
JasperPrint impressao = new JasperPrint();
impressao = JasperFillManager.fillReport(relatorio, ht, ED);
byte[] buffer = JasperExportManager.exportReportToPdf(impressao);
Tente fazer o seguinte:
Comente essas linhas:
Agora inclua essa no lugar da anterior:
Tenta assim e vê se funciona.
seguinte, consegui resolver de outra forma…
segue código abaixo, as vezes pode ser útil para alguém…
String path = request.getRealPath("RelComissaoDiarioMotorista.jasper");
JasperReport relatorio = (JasperReport) JRLoader.
loadObject(path);
funcionou blz… t+
e tb coloquei meu .jasper em WebRoot
flw
e ae…
amigo, to com o msmo problema soh que eh em uma aplicação desktop.
e esse código naum resolve pra mim.
vc saberia alguma outra solução.
obrigado.
[]'s
Coloca seu código aí pra gente poder dar uma olhada. :roll:
O problema é que naum consegue achar o “arquivo.jasper”
Map parameters = new HashMap();
JasperPrint jasperPrint = JasperFillManager.fillReport("arquivo.jasper", parameters, con);
JRViewer view = new JRViewer(jasperPrint);
ele emite o seguinte erro
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: arquivo.jasper
public class RelComissaoAction extends Action {
private final static Logger log = Logger.getLogger("comma");
SimpleDateFormat formataData = new SimpleDateFormat("yyyyMMdd");
public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
RelComissaoForm RCForm = (RelComissaoForm) form;// TODO Auto-generated method stub
if(request.getParameter("gerarRelComisDiario") != null){
if(RCForm.getListrcmMot() != null || RCForm.getListrcmAjud() != null){
RelComissaoNegocio rcn = new RelComissaoNegocio();
GregorianCalendar cal = new GregorianCalendar(Integer.parseInt(RCForm.getDtDia().substring(6, 10)), //modifica a data da carga da jsp de dd/mm/yyyy para yyyymmdd
Integer.parseInt(RCForm.getDtDia().substring(3, 5)) - 1,
Integer.parseInt(RCForm.getDtDia().substring(0, 2))); //fim da modificação das datas
int dt = Integer.parseInt(formataData.format(cal.getTime()));
try{
int tipo = 0;
if(RCForm.getTipoColaborador().equals("Motorista"))
tipo = 1;
else if(RCForm.getTipoColaborador().equals("Ajudante"))
tipo = 2;
LinkedList<HeadRelComissaoMotAjud> l = rcn.buscaDadosCabecalhoRelComissao(dt, tipo);
Iterator it = l.iterator();//buscando os dados do head(cabeçalho do relatório)
String valorMercado = "";
String valorRota = "";
String dtInicioPerido = "";
while(it.hasNext()){
HeadRelComissaoMotAjud hrlc = (HeadRelComissaoMotAjud) it.next();
if(hrlc.getValorMercado() != 0.0){
valorMercado = String.valueOf(hrlc.getValorMercado());
dtInicioPerido = String.valueOf(hrlc.getDtInicioPeriodo());
}
else
if(hrlc.getValorRota() != 0.0){
valorRota = String.valueOf(hrlc.getValorRota());
dtInicioPerido = String.valueOf(hrlc.getDtInicioPeriodo());
}
}
rcn.deletarRelComissaoTemp();
LinkedList<RelComissaoMotorista> list = null;
if(tipo == 1)
list = RCForm.getListrcmMot();
else if(tipo == 2)
list = RCForm.getListrcmAjud();
if(rcn.inserirRelComissaoTemp(list)){ // true pq foi inserido na commav30temp os registros da linkedlist do select q busca as comissões
LinkedList<RelComissaoMotorista> listRcm = rcn.buscarRelDiarioOrder(RCForm.getTipoOrderBy(),
RCForm.getFormaOrderBy());
if(listRcm != null){ //true pq buscar os registros na commav30tmp ordernado
byte[] buffer = null;
JREmptyDataSource ED = new JREmptyDataSource();
JRBeanCollectionDataSource BCD = new JRBeanCollectionDataSource(listRcm);
Hashtable ht = new Hashtable();
ht.put("comMot", BCD);
ht.put("mercado", valorMercado.replace(".", ","));
ht.put("rota", valorRota.replace(".", ","));
ht.put("dtInicioPeriodo", dtInicioPerido.substring(6, 8)+"/"+dtInicioPerido.substring(4, 6)+"/"+dtInicioPerido.substring(0, 4));
ht.put("dtFinalRel", RCForm.getDtDia());
ht.put("relMotAjud", RCForm.getTipoColaborador());
String path = request.getRealPath("");
String arq = "RelComissaoDiarioMotAjud.jasper";
String endereco = path+"\\Relatorio\\"+arq;
JasperReport relatorio = (JasperReport) JRLoader.loadObject(endereco);
JasperPrint impressao = new JasperPrint();
impressao = JasperFillManager.fillReport(relatorio, ht, ED);
// JasperViewer jrviewer = new JasperViewer(impressao,true);
// jrviewer.show(); //visualizar o relatório no editor do Java Jasper View
buffer = JasperExportManager.exportReportToPdf(impressao);
if(buffer != null){
response.setContentType(“application/pdf”);
response.setDateHeader(“Expires”, 0);
response.setContentLength(buffer.length);
response.setHeader(“Content-Disposition”,
“inline; filename=”" + “RelatorioDiarioMotAjud” + “”");
OutputStream os = response.getOutputStream();
os.write(buffer);
os.flush();
os.close();
}
rcn.deletarRelComissaoTemp();
}
}
}catch(Exception e){
log.error("RelComissaoAction gerarRelComisDiario getCause(): "+e.getCause());
}
}
else{
if(RCForm.getListrcmAjud() != null){
}
}
}
return null;
}
}
Se vc já tiver criado o arquivo .jasper, é só jogar ele na raiz do seu projeto.
Esse eh o ponto chave…
Já joguei esse arquivo em todas as pastas possiveis dentro do projeto e nada.
deve ser algo com a configuração do netbeans ou sei lá.
[code]
String path = request.getRealPath("");
String arq = “RelComissaoDiarioMotAjud.jasper”;
String endereco = path+"\Relatorio\"+arq;
JasperReport relatorio = (JasperReport) JRLoader.loadObject(endereco);
[code]
sera que naum tem algo parecido com “request.getRealPath(”");" para desktop?
eniosb
Fevereiro 7, 2007, 3:23pm
#13
Pessoal, os tutoriais que eu estive olhando falam pra colocar o arquivo .jasper no diretório raizdoprojeto/rel.
Então…
eu resolvi o meu problema utilizando o código.
getClass().getResource("");
olha a gambiarra que eu fiz.
String[] vetor = getClass().getResource("").toString().split(System.getProperty("file.separator"));
String path = System.getProperty("file.separator");
for(int i = 1; i < vetor.length - 2; i++){
path += vetor[i] + System.getProperty("file.separator");
}
a variável path é o caminho do seu projeto, no meu caso q uso o netbeans o path aponta para a pasta “build” e quando gero o jar e executo o programa o path aponta para a pasta onde o jar esta dentro.
é isso ae que resolveu meu problema.
[]'s
eniosb
Fevereiro 7, 2007, 3:44pm
#15
Problema resolvido entuam tah ok!
Até