Apanhando do Sub-relatório IReport, preciso de reforço!

Bom dia pessoal,

Tô sofrendo para montar meu relatório com IReport…
Peguei o tutorial do Carlos Fernandes “COMO MONTAR UM RELATÓRIO…”
O relatório principal roda legal, o problema é na hora de montar o sub-relatório.
Criei os campos do tipo field no sub-relatório, criei o parametro com o mesmo nome da arraylist
os fields tem os mesmos nomes de meus campos na tabela tabitens
e na minha classe java fiz o seguinte:

import net.sf.jasperreports.view.JasperViewer;
import java.sql.*; 
import java.util.HashMap;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import control.Banco;

public class RelatorioTeste { /* Realza contornaniexão com o banco de dados, redo o objeto Connection */ 
    
    ArrayList it = new ArrayList();
    private static Connection getConnection( ) throws 
    ClassNotFoundException, SQLException 
{ 
	String driver = "org.postgresql.Driver"; 
	String url = "jdbc:postgresql://localhost/Banco"; 
	String usuario = "postgres"; 
	String senha = "post"; 
	Class.forName(driver); 
	Connection con = DriverManager.getConnection( url, usuario, senha ); 
	return con; 
}

	/* Gera Relatorio e visualiza-o */ 
	public void geraRelatorio( ) throws JRException, Exception { 
	Connection con = getConnection( ); 
	Statement stm = con.createStatement( ); 
	String query = "select * from taborcamento"; 
	ResultSet rs = stm.executeQuery( query );
	Hashtable ht = new Hashtable();
	
	while(rs.next())
	{
    		ht.put("CLIENTE",rs.getString(2));
    		ht.put("VENDEDOR",rs.getString(5));
   
	}

	try
	{
		/* implementação da interface JRDataSource para DataSource ResultSet */ 
		//JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
 		JREmptyDataSource jrEP = new JREmptyDataSource ();
 		itens();
     
 		JRBeanCollectionDataSource i = new JRBeanCollectionDataSource (it);
  		ht.put("it",i);
 		
		/* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint */ 
		JasperPrint jasperPrint = JasperFillManager.fillReport("RelatorioTeste.jasper", ht, jrEP );   
			
		JasperViewer jrviewer = new JasperViewer(jasperPrint, false);     
		jrviewer.setVisible(true);     

			
	} 
	catch (Exception e)
	{
         	JOptionPane.showMessageDialog(null,"Erro ao gerar relatório"+e.getMessage());
	}
}


 	public ArrayList itens ()
 	{
  		Connection con = null;
  
  		try
		{
      			con = Banco.conectar();
      			PreparedStatement ps;
      			ps = con.prepareStatement("select * from tabitens");
      			ResultSet rs = ps.executeQuery();
      			ResultSetMetaData rsmd = rs.getMetaData();
      
     			for (int i = 0; i<rsmd.getColumnCount();++i)
			{
         			while (rs.next())
				{
          				// tras o campo "quantidade"
				it.add(rs.getInt(2));
          			}
      			con.close();
      			ps.close();
      			rs.close();
  		}
  		catch (Exception e)
		{
  			System.out.println(e);
 		}
 		return it;
	}
 
	public static void main(String[] args) throws JRException, Exception 
	{
	 
		new RelatorioTeste().geraRelatorio(); 
	} 

}

Na exceção ele diz o seguinte:

net.sf.jasperreport.engine.JRException:Error retrieving field value bean: quantidade;

Caused by:
java.lang.NoSuchMethodException:Unknown property ‘quantidade’.

Por favor, será que alguém pode me socorrer!