Bom dia amigos!
Estou com um problema que ainda não encontrei resposta. Após incluir o Richfaces em um projeto, meus relatórios feitos com IReport não estão funcionando. O pior é que nada na página dos relatórios foi modificado!
Gostaria de perguntar aos mais experientes, existe algum tipo de “incompatibilidade” entre o Richfaces e o IReport? Isso faz algum sentido?
Pois não está nem gerando erro, apenas o link para o relatorio não está mais funcionando…
Obrigado!
Eu estou gerando o relatório da seguinte maneira:
@SuppressWarnings("unchecked")
private String getDiretorioReal(String diretorio) {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
return session.getServletContext().getRealPath(diretorio);
}
@SuppressWarnings("unchecked")
public void imprimir(String relatorio, HashMap<String, Object> parametros, HttpServletResponse response, Connection conexao) {
try {
byte[] arquivo = new byte[0];
String caminho = getDiretorioReal("Relatorios/"+ relatorio + ".jasper");
JasperReport jasper = (JasperReport) JRLoader.loadObject(caminho);
JasperPrint print = JasperFillManager.fillReport(jasper, parametros, conexao);
arquivo = JasperExportManager.exportReportToPdf(print);
response.setContentType("application/pdf");
response.setContentLength(arquivo.length);
OutputStream saida = response.getOutputStream();
saida.write(arquivo, 0, arquivo.length);
saida.flush();
saida.close();
} catch (Exception ex) {
System.err.println("O arquivo não foi gerado corretamente!");
ex.printStackTrace();
}
}
e meu web.xml ficou assim:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<filter>
<filter-name>UploadFilter</filter-name>
<filter-class>com.sun.webui.jsf.util.UploadFilter</filter-class>
<init-param>
<description>O tamanho máximo de carregamento permitido em bytes. Caso seja definido com um valor negativo, não há máximo. O valor padrão é 1000000.</description>
<param-name>maxSize</param-name>
<param-value>1000000</param-value>
</init-param>
<init-param>
<description>O tamanho (em bytes) de um arquivo carregado que, se for excedido, fará com que o arquivo seja gravado diretamente no disco em vez de armazenado na memória. Arquivos menores ou iguais a esse tamanho serão armazenados na memória. O valor padrão é 4096.</description>
<param-name>sizeThreshold</param-name>
<param-value>4096</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UploadFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ExceptionHandlerServlet</servlet-name>
<servlet-class>com.sun.errorhandler.ExceptionHandler</servlet-class>
<init-param>
<param-name>errorHost</param-name>
<param-value>localhost</param-value>
</init-param>
<init-param>
<param-name>errorPort</param-name>
<param-value>24444</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>ThemeServlet</servlet-name>
<servlet-class>com.sun.webui.theme.ThemeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ExceptionHandlerServlet</servlet-name>
<url-pattern>/error/ExceptionHandler</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ThemeServlet</servlet-name>
<url-pattern>/theme/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
15
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.jsp</welcome-file>
<welcome-file>faces/welcomeJSF.jsp</welcome-file>
</welcome-file-list>
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>java.io.IOException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>javax.faces.FacesException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>com.sun.rave.web.ui.appbase.ApplicationException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jspf</url-pattern>
<is-xml>true</is-xml>
</jsp-property-group>
</jsp-config>
<!-- Configuração RichFaces -->
<display-name>Greeter</display-name>
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<!-- <param-value>classic</param-value> -->
<param-value>blueSky</param-value>
<!-- <param-value>wine</param-value> -->
<!-- <param-value>japanCherry</param-value> -->
<!-- <param-value>plain</param-value> -->
<!-- <param-value>emeraldTown</param-value> -->
<!-- <param-value>ruby</param-value> -->
<!-- <param-value>deepMarine</param-value> -->
</context-param>
<context-param>
<param-name>org.richfaces.CONTROL_SKINNING</param-name>
<param-value>enable</param-value>
</context-param>
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>richfaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
</web-app>
Espero que alguém possa ajudar…
Obrigado!