JasperReport не отображает поля типа java.lang.String

311
11 января 2017, 00:48

Здравствуйте. Проблема в JasperReports в WEB приложении : не отображаются в отчете значения полей типа java.lang.String, значения других типов отображаются без проблем, например java.lang.Integer. В чем может быть проблема?

package controller;
import enterprise.PersonFacadeLocal;
import entity.Person;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.IOException;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
@Named(value = "personController")
@SessionScoped
public class personController implements Serializable {
    private Person person;
    private List<Person> persons = null;
    @Inject
    private PersonFacadeLocal personFacadeLocal;
    private JasperPrint jasperPrint;
    public personController() {
    }
    public String personAll() {
        persons = personFacadeLocal.findAll();
        return "personAll";
    }
    public String personAdd() {
        person = new Person();
        return "personAdd";
    }
    public String personEdit(Integer id) {
        person = personFacadeLocal.find(id);
        return "personAdd";
    }
    public String personSave() {
        if (person.getId() == null) {
            personFacadeLocal.create(person);
        } else {
            personFacadeLocal.edit(person);
        }
        person = null;
        return personAll();
    }
    public void personDelete(Integer id) {
        person = personFacadeLocal.find(id);
        persons.remove(person);
        personFacadeLocal.remove(person);
        persons = personFacadeLocal.findAll();
    }
    public void reportBuilder() throws JRException {
        persons = personFacadeLocal.findAll();
        JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(persons, false);
        String report = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/persons.jasper");
        File file = new File(report);
        jasperPrint = JasperFillManager.fillReport(file.getPath(), null, beanCollectionDataSource);
    }
    public void ViewPdf(ActionEvent actionEvent) throws JRException, IOException {
        reportBuilder();
        HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        ServletOutputStream servletStream = httpServletResponse.getOutputStream();
        JasperExportManager.exportReportToPdfStream(jasperPrint, servletStream);
        FacesContext.getCurrentInstance().responseComplete();
    }    
    public void exportToPdf(ActionEvent actionEvent) throws JRException, IOException {
        reportBuilder();
        HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        httpServletResponse.addHeader("Content-disposition", "attachment; filename=Persons.pdf");
        ServletOutputStream servletStream = httpServletResponse.getOutputStream();
        JasperExportManager.exportReportToPdfStream(jasperPrint, servletStream);
        FacesContext.getCurrentInstance().responseComplete();
    }
    public Person getPerson() {
        return person;
    }
    public void setPerson(Person person) {
        this.person = person;
    }
    public List<Person> getPersons() {
        return persons;
    }
    public void setPersons(List<Person> persons) {
        this.persons = persons;
    }
}
READ ALSO
Не могу динамично изменить файл з параметрами загрузки

Не могу динамично изменить файл з параметрами загрузки

Очень нужна помощьВ Java не долго, так что костылей полно, прошу сильно не пинать)

199
Получение файла

Получение файла

Есть следующие переменные, которые формируют из себя весь путь к файлу:

397
Override warning

Override warning

Есть класс

280
О логировании в java

О логировании в java

Приводится на хабре в статье библиотека Apache Commons Logging (не знаю смысл этой библиотеки, не юзал) и комментарий:

332