PreparedStatement

Bom dia irmãos do GUJ
estou iniciando a empreitada com JasperReports e iReport, e na minha aventura vi um negócio legal também que são as consultas onde criamos parâmetros.
Acontece que dá erro na linha onde instancio o PreparedStatement, creio que seja o cast que fiz, mas não tenho certeza pois é a primeira vez que mexo com isso.
Se alguém tiver alguma sugestão ou dica, pra resolver este NullPointerException.

[code]Conexao conn = new Conexao();
Connection con= (Connection) conn.conn;
try {
PreparedStatement consulta = (PreparedStatement) con.prepareStatement
(
“SELECT”+
“sessao.idSessao AS sessao_idSessao,”+
“pedido.numNota AS pedido_numNota,”+
“pedido.qnt AS pedido_qnt,”+
“cardapio.nome AS cardapio_nome,”+
“cardapio.valor AS cardapio_valor,”+
“sessao.idMesa AS sessao_idMesa,”+
“sessao.abertura AS sessao_abertura,”+
“sessao.fechamento AS sessao_fechamento,”+
“sessao.permanencia AS sessao_permanencia,”+
“sessao.idCliente AS sessao_idCliente,”+
“clientes.CPF AS clientes_CPF,”+
“sessao.totalConta AS sessao_totalConta,”+
“mensagemempresa.mensagem AS mensagemempresa_mensagem”+
“FROM”+
"conta conta INNER JOIN sessao sessao ON conta.numConta = sessao.numNota"+
“AND conta.idSessao = sessao.idSessao”+
“INNER JOIN pedido pedido ON conta.numConta = pedido.numNota”+
“INNER JOIN clientes clientes ON conta.idCliente = clientes.idCliente”+
“INNER JOIN mensagemempresa mensagemempresa ON conta.idMensagem = mensagemempresa.idMensagem”+
“AND clientes.idCliente = sessao.idCliente”+
“INNER JOIN cardapio cardapio ON pedido.codigo = cardapio.codigo”+
“WHERE”+
“sessao.idSessao = ?”+
“AND mensagemEmpresa.idMensagem = ?”
);
consulta.setInt(1, idSessao); //PEGA O PARAMETRO DA SUA APLICAÇÃO
consulta.setInt(2, idMensagem);
ResultSet rs = consulta.executeQuery();
/* implementação da interface JRDataSource para DataSource ResultSet */
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);

/* HashMap de parametros utilizados no relatório. Sempre instanciados */
HashMap parameters = new HashMap();
// HashMap<String, Integer> map = new HashMap<String, Integer>();
String arquivoJasper = “C://MonteCook//dist//lib//CupomFiscal.jasper”;
// map.put(“idSessao”, idSessao);
// String a = String.valueOf(cbIdMensagem.getSelectedItem());
// System.out.println(a);
// System.out.println(idSessao);
// map.put(“idMensagem”, Integer.valueOf(a));
// JasperPrint jasperPrint = JasperFillManager.fillReport(arquivoJasper, map, conn.conn);
JasperPrint jasperPrint = JasperFillManager.fillReport(arquivoJasper, parameters, jrRS);
//Vizualiza
JasperViewer.viewReport(jasperPrint,false);[/code]

O cast não é necessário. Certifique-se que importou a classe PreparedStatement do pacote certo.

Fiz os devidos imports, mas me apresenta este erro:

java.lang.NullPointerException
at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

[code] conn.conectar();
Connection con= (Connection) conn.conn;
try {
PreparedStatement consulta = con.prepareStatement
(
“SELECT sessao.idSessao AS sessao_idSessao, pedido.numNota AS pedido_numNota, pedido.qnt AS pedido_qnt, cardapio.nome AS cardapio_nome, cardapio.valor AS cardapio_valor, sessao.idMesa AS sessao_idMesa, sessao.abertura AS sessao_abertura, sessao.fechamento AS sessao_fechamento, sessao.permanencia AS sessao_permanencia, sessao.idCliente AS sessao_idCliente, clientes.CPF AS clientes_CPF, sessao.totalConta AS sessao_totalConta, mensagemempresa.mensagem AS mensagemempresa_mensagem FROM conta conta INNER JOIN sessao sessao ON conta.numConta = sessao.numNota AND conta.idSessao = sessao.idSessao INNER JOIN pedido pedido ON conta.numConta = pedido.numNota INNER JOIN clientes clientes ON conta.idCliente = clientes.idCliente INNER JOIN mensagemempresa mensagemempresa ON conta.idMensagem = mensagemempresa.idMensagem AND clientes.idCliente = sessao.idCliente INNER JOIN cardapio cardapio ON pedido.codigo = cardapio.codigo WHERE sessao.idSessao = '”+idSessao+"’ AND mensagemEmpresa.idMensagem = ‘"+idMensagem+"’ "
);
// consulta.setInt(1, idSessao); //PEGA O PARAMETRO DA SUA APLICAÇÃO
// consulta.setInt(2, idMensagem);
ResultSet rs = consulta.executeQuery();
/* implementação da interface JRDataSource para DataSource ResultSet */
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);

/* HashMap de parametros utilizados no relatório. Sempre instanciados */
HashMap parameters = new HashMap();
// HashMap<String, Integer> map = new HashMap<String, Integer>();
String arquivoJasper = “C://MonteCook//dist//lib//CupomFiscal.jasper”;
// map.put(“idSessao”, idSessao);
// String a = String.valueOf(cbIdMensagem.getSelectedItem());
// System.out.println(a);
// System.out.println(idSessao);
// map.put(“idMensagem”, Integer.valueOf(a));
// JasperPrint jasperPrint = JasperFillManager.fillReport(arquivoJasper, map, conn.conn);
JasperPrint jasperPrint = JasperFillManager.fillReport(arquivoJasper, parameters, jrRS);
//Vizualiza
JasperViewer.viewReport(jasperPrint,false);

//Imprime printReport(endereco\relatorio,false);
//JasperPrintManager.printReport(“CupomFiscal.jrprint”,false);
} catch(Exception e){
JOptionPane.showMessageDialog(null,"Relatorio nao pode ser exibido, Erro "+e,“Mensagem”, 0);
e.printStackTrace();
} [/code]

Acima está o trecho que uso