Acessar metodos get e set do meu array

7 respostas
R

ola pessoal,

em um probleminha aqui estou usando um Bean onde coloco informaçoes que pego de um banco de dados...

soh que eu preciso de um array desse bean e fiz o seguinte

MeuBean mb[] = new MueBean[20];

ateh aki td bem, nao deu erro

qd entro no loop pra pegar os dados do banco ele da erro

eu to pegando da seguinte forma

mb[indice].setValor(resulset.getAlgumaCoisa());

minha duvida eh : a maneira certa de acessar metodos get e set de um array de bean eh essa?? ou tenho q fazer algo diferente??

obrigado pela atençao

Rodrigo

7 Respostas

H

Pelas informações que você deu, tá tudo certinho.

T

é o seguinte… quando vc faz…

MeuBean mb[] = new MueBean[20];

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 (int i =0;i < mb.length; i++) mb[i] = new MueBean();

OK??

t+ … espero q agora de certo =]

M

Se ao invés de

MeuBean mb[] = new MueBean[20];

eu colocasse

mb[] = new MueBean[20];

Teria o mesmo resultado certo?

Ps: esse tópico foi muito útil na aula de hoje! :slight_smile: 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

isso:

MeuBean mb[] = new MueBean[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… :smiley:

M

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

Ok, obrigado! :smiley:

A

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.

package webservice;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import util.ConexaoJDBC;
import bean.ProdutoBean;

public class EnviaBean {

	public ProdutoBean[] retornaBean(String data1, String data2) {

		ConexaoJDBC ofbCon = new ConexaoJDBC();
		Connection conexao = null;
		
		DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
		
		ProdutoBean[] mb = null;

		try {
			conexao = ofbCon.abrirConexao();
			Date data1Parse = df.parse(data1);
			Date data2Parse = df.parse(data2);

			PreparedStatement st = conexao
					.prepareStatement("select cod, produto, data_cadastro from produtos where data_compra between ? and ?");
			;
			st.setDate(1, new java.sql.Date(data1Parse.getTime()));
			st.setDate(2, new java.sql.Date(data2Parse.getTime()));

			ResultSet rs = st.executeQuery();

			while (rs.next()) {			
				
				for (int i = 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 (Exception e) {
			System.out.println("Erro: "
					+ e.getMessage());
			e.printStackTrace();
		} finally {
			ofbCon.fecharConexao(conexao);
		}
		
		return mb;
	}

}

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.

Erro:

Erro: null
java.lang.NullPointerException
	at webservice.EnviaBean.retornaBean(EnviaBean.java:41)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
	at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
	at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

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??

Abraços!!!

Criado 18 de março de 2004
Ultima resposta 9 de jun. de 2010
Respostas 7
Participantes 6