Erro na migração de JSF para Facelets  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
ctdaa
JavaGuru
[Avatar]

Membro desde: 12/08/2009 19:01:45
Mensagens: 222
Offline

Olá. Estou migrando um tutorial de JSF (petcatalog) para facelets usando o netbeans. Estou progredindo na conversão do JSP para xhtml, mas agora recebi um erro referente a entity bean "category"

javax.el.ELException: /content/category/List.xhtml @15,135 rendered="#{category.pagingInfo.itemCount == 0}": java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager

No Stack trace aparece:

javax.faces.FacesException: javax.el.ELException: /content/category/List.xhtml @15,135 rendered="#{category.pagingInfo.itemCount == 0}": java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
...
Caused by: javax.el.ELException: /content/category/List.xhtml @15,135 rendered="#{category.pagingInfo.itemCount == 0}": java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
...
Caused by: java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
...
Caused by: Exception [TOPLINK-8034] (Oracle TopLink Essentials - 2.1 (Build b60e-fcs (12/23/200)): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Error compiling the query [select count(o) from Category as o]. Unknown abstract schema type [Category].


Alguém pode dar alguma dica do que está acontecendo? falta alguma configuração no "faces-config.xml" ou "persistence.xml" ou "web.xml" ???

PS: a aplicação original JSF ainda funciona e acessa o mesmo database.

Obrigado.
[WWW]
ctdaa
JavaGuru
[Avatar]

Membro desde: 12/08/2009 19:01:45
Mensagens: 222
Offline

Pesquisando encontrei a seguinte dica: use annotations no lugar do xml.
OK
Fui na classe da Bean e inseri:


O problema agora é que o projeto não possui nenhuma bliblioteca com "javax.faces.bean". Onde encontro esta biblioteca? Já baixei o mojarra (mojarra-1.2_13-b01-FCS) e também não encontrei.
[WWW]
ctdaa
JavaGuru
[Avatar]

Membro desde: 12/08/2009 19:01:45
Mensagens: 222
Offline

Bom.... encontrei a javax.faces.bean. Estava em mojarra-2.0.0-RC (novo né?). Mas o problema principal persiste. Se alguém puder ajudar.... obrigado.
[WWW]
Guilherme Gomes
Virtual Machine Man
[Avatar]

Membro desde: 25/06/2007 14:32:09
Mensagens: 686
Localização: São Paulo
Offline

Pelo que entendi você está colocando JSF 2.0, certo?
A não ser que alguém aí conheça muito bem JSF 2.0, não recomendo, pois acho as referencias dele ainda muito escassas.

Fora isso, pode dizer quais outras configurações são usadas? Reparei o "Oracle TopLink Essentials" nas exceções!

-----------
Atenciosamente,
Guilherme V. F. Gomes.
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
ctdaa
JavaGuru
[Avatar]

Membro desde: 12/08/2009 19:01:45
Mensagens: 222
Offline

A aplicação original com JSF foi baseada neste tutorial do netbeans: http://www.netbeans.org/kb/docs/web/jsf-jpa-crud-wizard.html
A diferença foi que troquei as tabelas do banco pelas tabelas do petcatalog (famoso tutorial de javaee). Este tutorial usa "Generating the Entity Classes from the Database" e "Generating JSF Pages From Entity Classes" . Funcionou perfeitamente. Agora estou tentando fazer o mesmo, só que usando facelets. Quero trocar o JSP pelo XHTML somente e utilizar os templates do facelets.
Só que nos testes começou a dar este exception já citado. O JSF 2.0 foi incluido somente porque não estava encontrando o javax.faces.bean. Mas posso voltar atrás pois o problema continuou o mesmo.
[WWW]
Guilherme Gomes
Virtual Machine Man
[Avatar]

Membro desde: 25/06/2007 14:32:09
Mensagens: 686
Localização: São Paulo
Offline

Realmente, não conheço esse tipo de aplicação... Outra pessoa vai ter que te ajudar ^^



Caused by: Exception [TOPLINK-8034] (Oracle TopLink Essentials - 2.1 (Build b60e-fcs (12/23/200)): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Error compiling the query [select count(o) from Category as o]. Unknown abstract schema type [Category].



Pelo que consegui entender nesse trecho. Sua aplicação não está conseguindo montar corretamente a EJBQL, ou então não consegue interpretar direito a String (que para mim parece correta).
Quando ele diz "Unknown abstract schema type [Category]", me parece que a classe não foi mapeada ou que não existe nenhum XML que dite as regras para o JPA...

-----------
Atenciosamente,
Guilherme V. F. Gomes.
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
ctdaa
JavaGuru
[Avatar]

Membro desde: 12/08/2009 19:01:45
Mensagens: 222
Offline

Refiz a aplicação. Substitui o TopLInk por Hibernate. O projeto avançou, consegui chegar na pagina que "lista categorias". Agora está acontecendo outro problema: quando clico na ação "Detail" para ver os detalhes de um item específico:


Estou concluindo que com o hibernate eu tenho que controlar as sessões (abrir e fechar quando conveniente). Alguém sabe se realmente é este o problema? E se for isto, tem algum exemplo de código/classes que posso usar?




[WWW]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team