packagexxxxxx;importjava.sql.Connection;importorg.apache.log4j.Logger;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.cfg.AnnotationConfiguration;//import org.postgresql.core.Logger;publicclassHibernateUtil{privatestaticLoggerlogger=Logger.getLogger(HibernateUtil.class);privatestaticSessionFactorysessionFactory;// ajuda a guardar as coisas na threadprivatestaticThreadLocal<Session>sessions=newThreadLocal<Session>();static{sessionFactory=newAnnotationConfiguration().configure().buildSessionFactory();}publicstaticSessionopenSession(){if(sessions.get()!=null){logger.error("Alguem nao fechou uma j� aberta!!");// grave, alguem nao fechou uma j� aberta!}sessions.set(sessionFactory.openSession());returnsessions.get();}publicstaticSessioncurrentSession(){returnsessions.get();}publicstaticvoidcloseCurrentSession(){sessions.get().close();sessions.set(null);}// verificar método de conexao para o iReportspublicstaticConnectiongetConnection()throwsException{try{Connectionconn=newAnnotationConfiguration().buildSettings().getConnectionProvider().getConnection();returnconn;}catch(Exceptione){e.printStackTrace();throwe;}}}
publicclassRelatorioBean{privateStringsaida;publicStringgeraRelatorioPassandoConexao(){saida=null;Stringjasper=getDiretorioReal("/jasper/professores_por_aluno.jasper");Connectionconexao=null;try{// Abro a conex�o com o banco que ser� passada para o JasperReportsconexao=newConexao().getConexao();//linha 52// Mando o jasper gerar o relat�rioJasperPrintprint=JasperFillManager.fillReport(jasper,null,conexao);// Gero o PDFpreenchePdf(print);}catch(Exceptione){e.printStackTrace();}finally{try{// Sempre mando fechar a conex�o, mesmo que tenha dado erroif(conexao!=null)conexao.close();}catch(SQLExceptione){}}return"exibeRelatorio";}
Com certeza o erro está em meu método criaConexao() na classe conexao. Mas ainda não desenrrolei... se alguem puder ajudar, agradeço.
Kleber-rr
Pessoal, consegui colocar ele pra rodar usando o hibernate. Criei uma classe Dao genérica, atualizei o web.xml e alterei o bean. Ficou assim: