Jasper Studio com eclipse

Boa tarde, faz muito tempo mas muito tempo mesmo que não uso o jasper reports, baixei a nova versão e estou tentando montar um relatório só pra pegar a prática de novo, fiz como sempre faço porém estou tendo um erro que não sei resolver e já tentei as soluções da net e nada.
Como de costume, montei a query e coloquei um campo no detail, peguei o jrxml, joguei no eclipse e fiz as chamadas. ao executar tenho o seguinte erro:

Caused by: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean: Titulo.
	at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:132)
	at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:97)
	at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:108)
	at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:1373)
	at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1274)
	at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1250)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1010)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:117)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:558)
	at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:414)
	at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:122)
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:667)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:983)
	at br.ind.risc.follow.rel.NegAtraso.imprimir(NegAtraso.java:37)
	at br.ind.risc.follow.controller.MainController.geraRel(MainController.java:26)
	... 58 more
Caused by: java.lang.NoSuchMethodException: Unknown property 'Titulo' on class 'class br.ind.risc.follow.model.BusinessPojo'
	at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1277)
	at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:808)
	at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:884)
	at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:464)
	at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:112)
	... 72 more

e a classe que chama o relatório:


public class NegAtraso {

	private String path;

	private String pathToReportPackage; // Caminho para o package onde estão

	public NegAtraso() {
		this.path = this.getClass().getClassLoader().getResource("").getPath();
		this.pathToReportPackage = this.path + "br/ind/risc/follow/rel/jrxml/";
		// System.out.println(path);
	}

	
	public void imprimir() throws IOException, JRException{
		
		BusinessDAODB businessDAODB = new BusinessDAODB();
		
		List<BusinessPojo> negocios;
		negocios = businessDAODB.negAtraso();
		
		JasperReport report = JasperCompileManager.compileReport(this.getPathToReportPackage() + "negAtraso.jrxml");
		JasperPrint print = JasperFillManager.fillReport(report, null, new JRBeanCollectionDataSource(negocios));
		
		JasperExportManager.exportReportToPdfFile(print, "C:/Teste/teste.pdf");
	}
	
	public String getPathToReportPackage() {
		return this.pathToReportPackage;
	}

	public String getPath() {
		return this.path;
	}
}

Usei o Maven para baixar o Jars para não pegar nenhuma lib desatualizada.
Grato pela ajuda.

Provavelmente a classe br.ind.risc.follow.model.BusinessPojo não possua um atributo com o nome ‘Titulo’, nem mesmo um método getTitulo que justifique esperar o mesmo no jrxml, não?
Quando você vai utilizar beans como data sources, você precisa ter certeza que o nome do atributo definido em cada field é, efetivamente, o mesmo nome do atributo no objeto que vai ser passado para preencher os dados a serem exibidos no relatório.

Obrigado pela resposta, esse atributo existe sim, vou postar o fonte completo da classe.


public class BusinessPojo {

	private IntegerProperty id = new SimpleIntegerProperty();
	private StringProperty titulo = new SimpleStringProperty();
	private IntegerProperty userId = new SimpleIntegerProperty();
	private StringProperty responsavel = new SimpleStringProperty();
	private StringProperty prodId = new SimpleStringProperty();
	private StringProperty produtoDesc = new SimpleStringProperty();
	private IntegerProperty costuId = new SimpleIntegerProperty();
	private StringProperty empresa = new SimpleStringProperty();
	private DoubleProperty valNeg = new SimpleDoubleProperty();
	private ObjectProperty<LocalDate> dtInicio = new SimpleObjectProperty<>();
	private ObjectProperty<LocalDate> dtFim = new SimpleObjectProperty<>();
	private StringProperty descricao = new SimpleStringProperty();
	private StringProperty status = new SimpleStringProperty();
	private StringProperty etapas = new SimpleStringProperty();

	public int getId() {
		return id.get();
	}
	public void setId(int id) {
		this.id.set(id);
	}
	public String getTitulo(){
		return titulo.get();
	}
	public void setTitulo(String titulo){
		this.titulo.set(titulo);
	}
	public int getUserId(){
		return userId.get();
	}
	public void setUserId(int userId){
		this.userId.set(userId);
	}
	public String getResponsavel(){
		return responsavel.get();
	}
	public void setResponsavel(String responsavel){
		this.responsavel.set(responsavel);
	}
	public String getProdId(){
		return prodId.get();
	}
	public void setProdId(String prodId){
		this.prodId.set(prodId);
	}
	public String getProdutoDesc(){
		return produtoDesc.get();
	}
	public void setProdutoDesc(String produto){
		this.produtoDesc.set(produto);
	}
	public int getCostuId(){
		return costuId.get();
	}
	public void setCostuId(int costuId){
		this.costuId.set(costuId);
	}
	public String getEmpresa(){
		return empresa.get();
	}
	public void setEmpresa(String empresa){
		this.empresa.set(empresa);
	}
	public Double getValNeg(){
		return valNeg.get();
	}
	public void setValNeg(Double valNeg){
		this.valNeg.set(valNeg);
	}
	public LocalDate getDtInicio(){
		return dtInicio.get();
	}
	public void setDtInicio(LocalDate dtInicio){
		this.dtInicio.set(dtInicio);
	}
	public LocalDate getDtFim(){
		return dtFim.get();
	}
	public void setDtFim(LocalDate dtFim){
		this.dtFim.set(dtFim);
	}
	public String getDescricao(){
		return descricao.get();
	}
	public void setDescricao(String descricao){
		this.descricao.set(descricao);
	}
	public String getStatus(){
		return status.get();
	}
	public void setStatus(String status){
		this.status.set(status);
	}
	public String getEtapas(){
		return etapas.get();
	}
	public void setEtapas(String etapas){
		this.etapas.set(etapas);
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((costuId == null) ? 0 : costuId.hashCode());
		result = prime * result + ((descricao == null) ? 0 : descricao.hashCode());
		result = prime * result + ((dtFim == null) ? 0 : dtFim.hashCode());
		result = prime * result + ((dtInicio == null) ? 0 : dtInicio.hashCode());
		result = prime * result + ((empresa == null) ? 0 : empresa.hashCode());
		result = prime * result + ((etapas == null) ? 0 : etapas.hashCode());
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		result = prime * result + ((prodId == null) ? 0 : prodId.hashCode());
		result = prime * result + ((produtoDesc == null) ? 0 : produtoDesc.hashCode());
		result = prime * result + ((responsavel == null) ? 0 : responsavel.hashCode());
		result = prime * result + ((status == null) ? 0 : status.hashCode());
		result = prime * result + ((titulo == null) ? 0 : titulo.hashCode());
		result = prime * result + ((userId == null) ? 0 : userId.hashCode());
		result = prime * result + ((valNeg == null) ? 0 : valNeg.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		BusinessPojo other = (BusinessPojo) obj;
		if (costuId == null) {
			if (other.costuId != null)
				return false;
		} else if (!costuId.equals(other.costuId))
			return false;
		if (descricao == null) {
			if (other.descricao != null)
				return false;
		} else if (!descricao.equals(other.descricao))
			return false;
		if (dtFim == null) {
			if (other.dtFim != null)
				return false;
		} else if (!dtFim.equals(other.dtFim))
			return false;
		if (dtInicio == null) {
			if (other.dtInicio != null)
				return false;
		} else if (!dtInicio.equals(other.dtInicio))
			return false;
		if (empresa == null) {
			if (other.empresa != null)
				return false;
		} else if (!empresa.equals(other.empresa))
			return false;
		if (etapas == null) {
			if (other.etapas != null)
				return false;
		} else if (!etapas.equals(other.etapas))
			return false;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		if (prodId == null) {
			if (other.prodId != null)
				return false;
		} else if (!prodId.equals(other.prodId))
			return false;
		if (produtoDesc == null) {
			if (other.produtoDesc != null)
				return false;
		} else if (!produtoDesc.equals(other.produtoDesc))
			return false;
		if (responsavel == null) {
			if (other.responsavel != null)
				return false;
		} else if (!responsavel.equals(other.responsavel))
			return false;
		if (status == null) {
			if (other.status != null)
				return false;
		} else if (!status.equals(other.status))
			return false;
		if (titulo == null) {
			if (other.titulo != null)
				return false;
		} else if (!titulo.equals(other.titulo))
			return false;
		if (userId == null) {
			if (other.userId != null)
				return false;
		} else if (!userId.equals(other.userId))
			return false;
		if (valNeg == null) {
			if (other.valNeg != null)
				return false;
		} else if (!valNeg.equals(other.valNeg))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return descricao.getValue();
	}

	public IntegerProperty idProperty() {
		return id;
	}

	public IntegerProperty userIdProperty() {
		return userId;
	}

	public StringProperty prodIdProperty() {
		return prodId;
	}

	public IntegerProperty costuIdProperty() {
		return costuId;
	}

	public StringProperty tituloProperty() {
		return titulo;
	}

	public StringProperty produtoDescProperty() {
		return produtoDesc;
	}

	public StringProperty responsavelProperty() {
		return responsavel;
	}

	public StringProperty empresaProperty() {
		return empresa;
	}

	public DoubleProperty valNegProperty() {
		return valNeg;
	}

	public ObjectProperty dtInicioProperty() {
		return dtInicio;
	}

	public  ObjectProperty dtFimProperty() {
		return dtFim;
	}

	public StringProperty descricaoProperty() {
		return descricao;
	}

	public StringProperty statusProperty() {
		return status;
	}

	public StringProperty etapasProperty() {
		return etapas;
	}

}

Veja bem, você possui uma propriedade chamada titulo, com t minúsculo.
O que o erro diz é Caused by: java.lang.NoSuchMethodException: Unknown property 'Titulo' on class 'class br.ind.risc.follow.model.BusinessPojo', ou seja, ele espera uma propriedade com T maiúsculo.

Eu troquei a propriedade e mesmo assim o erro persiste.

Posta o jrxml do relatório em questão.

Segue

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.3.1.final using JasperReports Library version 6.3.1  -->
<!-- 2017-03-07T16:48:20 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="teste" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="0000a3d2-ef45-4e04-b23a-2a93d4174efa">
	<property name="com.jaspersoft.studio.data.defaultdataadapter" value="SQL SERVER"/>
	<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
	<queryString>
		<![CDATA[SELECT  b.Titulo 
FROM Business b]]>
	</queryString>
	<field name="Titulo" class="java.lang.String"/>
	<background>
		<band splitType="Stretch"/>
	</background>
	<title>
		<band height="79" splitType="Stretch"/>
	</title>
	<pageHeader>
		<band height="35" splitType="Stretch"/>
	</pageHeader>
	<columnHeader>
		<band height="61" splitType="Stretch">
			<staticText>
				<reportElement x="42" y="0" width="100" height="30" uuid="6e3f9e68-8012-4174-8f19-145a556b8a88"/>
				<text><![CDATA[Titulo]]></text>
			</staticText>
		</band>
	</columnHeader>
	<detail>
		<band height="125" splitType="Stretch">
			<textField>
				<reportElement x="42" y="6" width="100" height="30" uuid="15d7d9d9-a30a-4027-a091-0961d24790a1"/>
				<textFieldExpression><![CDATA[$F{Titulo}]]></textFieldExpression>
			</textField>
		</band>
	</detail>
	<columnFooter>
		<band height="45" splitType="Stretch"/>
	</columnFooter>
	<pageFooter>
		<band height="54" splitType="Stretch"/>
	</pageFooter>
	<summary>
		<band height="42" splitType="Stretch"/>
	</summary>
</jasperReport>

O nome do field deveria ser titulo com “t” minúsculo

Se eu troco o nome, ele não compila e ao executar

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
	at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Node.fireEvent(Node.java:8413)
	at javafx.scene.control.Button.fire(Button.java:185)
	at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
	at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
	at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
	at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
	at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:417)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
	at com.sun.glass.ui.View.notifyMouse(View.java:937)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
	at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1771)
	... 48 more
Caused by: net.sf.jasperreports.engine.design.JRValidationException: Report design not valid : 
	 1. Field not found : Titulo
	at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:289)
	at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:161)
	at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:357)
	at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:290)
	at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:575)
	at br.ind.risc.follow.rel.NegAtraso.imprimir(NegAtraso.java:37)
	at br.ind.risc.follow.controller.MainController.geraRel(MainController.java:26)
	... 58 more

Nada como alterar a query, agora resolveu, bastou apenas renomear a coluna…
Valeu pela ajuda.