vc está criando a array… que cabe 20 beans dentro… porem ela está vazia … só tem valores nulos nela…
ai quando vc faz
mb[indice].setValor(resulset.getAlgumaCoisa());
vc está tentando acessar um método de um objeto nullo o q gera um erro…
ou seja… antes de acessar seus bean faça o seguinte
for(inti=0;i<mb.length;i++)mb[i]=newMueBean();
OK??
t+ … espero q agora de certo =]
M
mdsPJ
Se ao invés de
MeuBeanmb[]=newMueBean[20];
eu colocasse
mb[]=newMueBean[20];
Teria o mesmo resultado certo?
Ps: esse tópico foi muito útil na aula de hoje! Começamos a ver Java hj, e tinhamos que instanciar um array de objs… tavamos tentando de um modo errado! Obrigado a vocês! :]
M
matheusPJ
isso:
MeuBeanmb[]=newMueBean[20];
…é a mesma coisa que:
MeuBean mb[];
mb[] = new MueBean[20];
…logo, pra instanciar todos os objetos do vetor, é só fazer um laço como o tomaz descreveu…
M
matheusPJ
ahhh… e de uma forma mais trabalhosa pra este caso (20 objetos no vetor!), tb da pra fazer assim (no exemplo, 3 objetos):
MeuBean mb[] = new MeuBean[] {
new MeuBean( "bean 1" ),
new MeuBean( "bean 2" ),
new MeuBean( "bean 3" ),
new MeuBean( "bean 4" )
new MeuBean( "bean 5" )
};
levando em consideração q tu tens um construtor recebendo um argumento String em MeuBean
M
mdsPJ
Ok, obrigado!
A
andre.orsato
Prezados,
Peguei como base este topico para criar um Webservice que retorna um array de beans.
A idéia é do Webservice buscar os registros no banco de dados e retornar o array de beans para uma servlet a qual vai receber o array de beans, tratar ele e imprimir em uma jsp uma tabela contendo os registros.
packagewebservice;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Date;importutil.ConexaoJDBC;importbean.ProdutoBean;publicclassEnviaBean{publicProdutoBean[]retornaBean(Stringdata1,Stringdata2){ConexaoJDBCofbCon=newConexaoJDBC();Connectionconexao=null;DateFormatdf=newSimpleDateFormat("dd/MM/yyyy");ProdutoBean[]mb=null;try{conexao=ofbCon.abrirConexao();Datedata1Parse=df.parse(data1);Datedata2Parse=df.parse(data2);PreparedStatementst=conexao.prepareStatement("select cod, produto, data_cadastro from produtos where data_compra between ? and ?");;st.setDate(1,newjava.sql.Date(data1Parse.getTime()));st.setDate(2,newjava.sql.Date(data2Parse.getTime()));ResultSetrs=st.executeQuery();while(rs.next()){for(inti=0;i<mb.length;i++){mb[i].setCod(rs.getInt("cod"));mb[i].setProduto(rs.getString("produto"));mb[i].setDataCompra(rs.getDate("data_compra"));}}}catch(Exceptione){System.out.println("Erro: "+e.getMessage());e.printStackTrace();}finally{ofbCon.fecharConexao(conexao);}returnmb;}}
O erro que gera é de NullPointerException, acredito que seja por que estou inicializando o array como null, porem, não sei como devo inicializar ele de forma correta para que funcione direito.
Não sei se esta é a melhor forma de um Webservice buscar dados do banco a fim de gerar um relatório, mas foi a forma que meu professor apontou.. porem ta complicado de resolver... Alguém aí pode me dar uma ajuda??