Duvidas em chamada de relatorio Ireport em aplicação Java

Galera é a primeira vez que estou mexendo com ireport + java e estou tendo muitas dúvidas. Já busquei por exemplos na net (e aqui), mas ainda nao consigo entender.
É seguinte, meu relatório ireport recebe um parâmetro que é o código do funcionário. Quando testo ele no IReport ocorre tudo bem… clico no botão Preview e o programa pede que eu insira o código do funcionário para então gerar o relatório, até ai tudo bem.

O problema está no Java… Eu usei o seguinte código para chamar o relatório:

try {    
					           URL arquivo = getClass().getResource("/relatorio/relatorio.jasper");             
					           Map<String, Object> map = new HashMap<String, Object>();  
					           map.put("idFunc",table_2.getValueAt(table_2.getSelectedRow(), 0));
					           JasperReport jasperReport = (JasperReport) JRLoader.loadObject(arquivo);    
					           JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, AdmBancoSql.getConnection());   
					           JasperViewer jrviewer = new JasperViewer(jasperPrint, false);    
					           jrviewer.setVisible(true);   
					           jrviewer.toFront();  
					         }catch (Exception ex) {  
					            System.out.println(ex);
					        }  

Mas estou com certas dúvidas. O “map.put()”, por exemplo, ainda não entendi bem ele.
No primeiro parâmetro desse método coloquei como argumento o “idFunc” que é o parâmetro do relatório. Obs.: o nome do meu parâmetro no relatório do ireport é “idFunc”.
Em seguida, pego o valor da tabela onde está o código do funcionário, pois a ideia é selecionar um certo funcionário na tabela e então imprimir um relatório com as informações básicas daquele funcionário.
No meu relatório a query é algo como: SELECT nome, cpf, rg, pai, mae, endereco FROM funcionario WHERE idFunc = $P{idFunc}

E Nesse exemplo está dando o erro:[color=red]Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap[/color]

Acredito que esteja errando na passagem do parâmetro para o ireport, pois ainda não entendi como realmente faz.

Você precisa adicionar a classe commons-collections no seu projeto. E conforme você for executando e der o mesmo tipo de erro (class not found), você precisará acrescentar as outras que for pedindo.

Mas eu tenho o .jar da commons-collections. Adicionei ela e mais outras jars q são necessárias para rodar o jasperreport

Então pode ser a versão da commons-collection, ou a classe pode estar duplicada no seu projeto