Boa noite pessoal.
Mudei o tópico p/ este forum pois no de frameworks não obtive nem ao menos uma resposta.
Preciso de uma ajuda para configurar uma servlet no meu projeto, estou senguindo um tutorial da net no blog do Jandersonfc http://www.jandersonfc.com/tutorial-java-flex-ireport-na-pratica-10/ onde ele ensina trabalhar com uma aplicação java + Flex e ireport.
Desculpem sou iniciante então tenho muitas duvidas em relação a arquitetura de servlets e ireport.
Minhas duvidas são, como posso adicionar novos parâmetros nesta servlet.
preciso passar parâmetros de pesquisa como filtros por nome e também por intervalos de data.
Também preciso chamar vários relatórios aqui só coloquei 3 de teste eu consigo chamar eles na minha aplicação Flex, todos só funcionado o parâmetro (where) posso usar esta mesma servlet para vários relatórios com filtros diferentes ou preciso criar uma servlet para cada relatório?
Esta servlet trabalha com beans e um JRBeanCollectionDataSource recebendo (dados).
Trabalhando com beans estes filtros eu tenho que configurar na minha camada de persistência no caso estou usando Hibernate para o crud das minhas entidades?
pelo o que eu entendi do funcionamento desta servlet ela recebe este (where) como um select de todos os campos da minha tabela, gostaria agora de adicionar novos parâmetros nesta servlet como um filtro findByName e um findByDataRange informando um intervalo de tempo para filtrar.
segue o codigo da servlet abaixo e um trecho da minha classe de serviço que contem o método (where).
[code]@SuppressWarnings(“serial”)
public class ServletReport extends HttpServlet {
private ServletContext sc;
private FactoryService factoryService = new FactoryService();
public void init(ServletConfig config) throws ServletException{
super.init(config);
sc = config.getServletContext();
WebApplicationContext webApplicationContext = WebApplicationContextUtils
.getWebApplicationContext(sc);
AutowireCapableBeanFactory autowireCapableBeanFactory = webApplicationContext
.getAutowireCapableBeanFactory();
autowireCapableBeanFactory.configureBean(factoryService, "FactoryService");
}
@SuppressWarnings("unchecked")
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
List<?> dados = new ArrayList();
File reportFile = null;
HashMap parameters = new HashMap();
String acao = request.getParameter("acao");
String where = request.getParameter("where");
if (acao.equals("usuario")){
dados = factoryService.usuarioService.filterReport(where);
reportFile = new File(sc.getRealPath("WEB-INF/reports/Rel_Usuario.jasper"));
}
if (acao.equals("alarmes")){
dados = factoryService.alarmeService.filterReport(where);
reportFile = new File(sc.getRealPath("WEB-INF/reports/Rel_Alarmes.jasper"));
}
if (acao.equals("temperaturas")){
dados = factoryService.temperaturaService.filterReport(where);
reportFile = new File(sc.getRealPath("WEB-INF/reports/Rel_Temperaturas.jasper"));
}
byte[] bytes = null;
JRDataSource jrds = new
JRBeanCollectionDataSource(dados);
try{
bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),
parameters, jrds);
} catch (JRException e){
e.printStackTrace();
}
if (bytes != null && bytes.length > 0){
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream outputStream = response
.getOutputStream();
outputStream.write(bytes, 0, bytes.length);
outputStream.flush();
outputStream.close();
}
}
}
[/code]
Na minha camada de negocio tenho estes métodos:
public List<Usuario> findByName(String nome){
return usuarioRepository.findByName(nome);
}
public List<Usuario> filterReport(String where){
return usuarioRepository.filterReport(where);
}
Apreciaria muito uma ajuda com meu problema estou dependendo muito do funcionamento desta servlet para o funcionamento do meu projeto.
Obrigado.