Problemas com jsp:useBean

4 respostas
R
Olá:





Estou rodando um sistema com JBoss + Tomcat. Numa página JSP crio um bean (um ArrayList) da seguinte forma:





<jsp:useBean id="listAddresses" class="java.util.ArrayList">


<%


org.jboss.logging.Logger.getLogger("_jspService").info(listAddresses);


org.jboss.logging.Logger.getLogger("_jspService").info("vazia? " + listAddresses.isEmpty());


%>


<%


listAddresses.addAll(bean.getAddress());


%>


</jsp:useBean>


<%


Collection addressCollection = bean.getAddress(); //capturando addresses


%>





A página aparece "qubrada". No Prompt do JBosss aparece a seguinte mensagem de erro:
Quote:


09:59:51,796 INFO [_jspService] []

09:59:51,796 INFO [_jspService] vazia? true

09:59:51,836 ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for ser

vlet jsp threw exception



09:59:51,906 ERROR [Engine] ----- Root Cause -----

java.lang.NullPointerException

at java.util.ArrayList.addAll(ArrayList.java:433)

at org.apache.jsp.cadast_endereco_jsp._jspService(cadast_endereco_jsp.ja

va:564)




Qual seria o NullPointer? Se fosse listAddresses, as mensagens de erro não seriam impressas. Além disso quando comento o bloco <jsp:useBean> Não acontece erros. Isso indica que o método bean.getAddress() não retorna null. Em outros trechos da mesma coisa faço coisa parecida: crio um Bean ArrayList e depois o preencho com um addAll() e não há problemas. Logo o que há de errado? :frowning:



Grato,



Rafael Ubiratam Clemente Afonso

Java 2 Certified Programmer



[ Esta mensagem foi editada por: rucafonso em 25-02-2003 10:18 ]



PS: Algúem pode me dizer por que sempre tenhos problemas ao usar tags HTLM neste forum? :frowning:



[ Esta mensagem foi editada por: rucafonso em 25-02-2003 10:21 ]



[ Esta mensagem foi editada por: Franklin em 25-02-2003 13:25 ]

4 Respostas

B
Na sua mensagem você diz que "bean.getAddress() não retorna null" porque "não acontecem erros"…


Bom, neste trecho do seu código o único lugar que aconteceria um erro no caso dele ser null é o addAll mesmo.





Então, só para ter certeza de que não é null, tente debugar colocando um





<% if(addressCollection==null) {%>


É null


<%}%>





Para testar melhor
R

Bani:



Fiz o teste que sugeriu e apareceu que addressCollection não é null. Mesmo se fosse acontaceria um NullPointerException no momento em que fizesse listAddresses.isEmpty(). Foi isso que quis dizer ao escrever que não é null.



Rafael Ubiratam Clemente Afonso

Java 2 Certified Programmer

[ Esta mensagem foi editada por: rucafonso em 25-02-2003 12:56 ]

F
Quote:
java.lang.NullPointerException


at java.util.ArrayList.addAll(ArrayList.java:433)






O erro é disparado de dentro da classe ArryList, como mostra o trecho de código acima. Muito provavelmente pq o seu ArrayList possui um objeto null.

Já experimentou imprimir o conteúdo da lista?
R

De fato, bean.getAddress() estava retornando null. E, de acordo com a especificação de AbstractCollection (da qual ArrayList deriva) é disparada uma NullPointerException quando recebe uma Collection null. Portanto fo falha minha :-?



Grato,

Criado 25 de fevereiro de 2003
Ultima resposta 25 de fev. de 2003
Respostas 4
Participantes 3