facebook

Problem with JPA or Libs ????

  1. MyEclipse Archived
  2.  > 
  3. Database Tools (DB Explorer, Hibernate, etc.)
Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #284478 Reply

    Hi everyone,

    I’m facing one strange problem, my system work’s well on Tomcat 6, although not into JBOSS 4.2.2.
    Here is my data-source :

    
    <datasources>
    <local-tx-datasource>
    <jndi-name>SPE</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/pmesp</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>user</user-name>
    <password>12345678</password>
    <min-pool-size>5</min-pool-size>
    <max-pool-size>50</max-pool-size>
    <idle-timeout-minutes>5</idle-timeout-minutes> <exception-sorter-class-name>com.mysql.jdbc.integration.jboss.ExtendedMysqlExceptionSorter</exception-sorter-class-name> <valid-connection-checker-class-name>com.mysql.jdbc.integration.jboss.MysqlValidConnectionChecker</valid-connection-checker-class-name>
    <metadata>
    <type-mapping>mySQL</type-mapping>
    </metadata>
    </local-tx-datasource>
    </datasources>
    

    My persistence.xml

    
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
        
        <persistence-unit name="SPEPU" transaction-type="JTA">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <jta-data-source>java:SPE</jta-data-source>
            <class>br.gov.sp.polmil.spe.persistencia.Fucctt</class>
            <class>br.gov.sp.polmil.spe.persistencia.Instituicao</class>
            <class>br.gov.sp.polmil.spe.persistencia.Instinstr1</class>
            <class>br.gov.sp.polmil.spe.persistencia.Diarioclasse</class>
            <class>
                br.gov.sp.polmil.spe.persistencia.Diarioclasseitens
            </class>
    
            <class>br.gov.sp.polmil.spe.persistencia.Abrpeopm</class>
    
            <class>br.gov.sp.polmil.spe.persistencia.Instinstr1</class>
            <properties>
                <property name="hibernate.connection.driver_class"
                    value="com.mysql.jdbc.Driver" />
                <property name="hibernate.connection.url"
                    value="jdbc:mysql://10.60.51.54:3306/pmesp" />
                <property name="hibernate.connection.username" value="user" />
                <property name="hibernate.connection.password"
                    value="12345678" />
            </properties>
        </persistence-unit>
    </persistence>
    

    One course managed bean

    
    package br.gov.sp.polmil.spe.beans;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    
    import javax.faces.component.html.HtmlDataTable;
    import javax.faces.model.SelectItem;
    
    import br.gov.sp.polmil.spe.classes.ScreenMsg;
    import br.gov.sp.polmil.spe.persistencia.Curso;
    import br.gov.sp.polmil.spe.persistencia.CursoDAO;
    import br.gov.sp.polmil.spe.persistencia.EntityManagerHelper;
    import br.gov.sp.polmil.spe.persistencia.InstrutorCurso;
    import br.gov.sp.polmil.spe.persistencia.InstrutorCursoDAO;
    
    public class CadastroCurso {
        private Integer idCurso;
        private String descricao;
        private String local;
        private Curso curso;
        private CursoDAO cursoDAO;
        private HtmlDataTable dataTable; 
        private List<CadastroCurso> cursoLista = new ArrayList<CadastroCurso>();
        //private List<Uf> ufList = new ArrayList<Uf>();
        private List<SelectItem> cursoItem = new ArrayList<SelectItem>();
        private EntityManagerHelper emh;
        
        /*
         * Construtores
         */
        public CadastroCurso(){
            super();
        }
        public CadastroCurso(String descricao, String local){
            super();
            this.descricao = descricao;
            this.local = local;
        }
        
        /*
         * Getters and Setters
         */
        
        public Integer getIdCurso() {
            return idCurso;
        }
        public void setIdCurso(Integer idCurso) {
            this.idCurso = idCurso;
        }
        
        public HtmlDataTable getDataTable() {
            return dataTable;
        }
        public void setDataTable(HtmlDataTable dataTable) {
            this.dataTable = dataTable;
        }
        public List<CadastroCurso> getCursoLista() {
            if (cursoLista.size() == 0) {
                cursoLista = new ArrayList<CadastroCurso>();
                emh.beginTransaction();
                List<Curso> lista = new ArrayList<Curso>(); // Here is the problem!!!!
                cursoDAO = new CursoDAO();
                lista = cursoDAO.findAll(); 
                for (int i=0; i < lista.size(); i++) {
                    curso = new Curso();
                    curso = lista.get(i);
                    cursoLista.add(new CadastroCurso(curso.getDescricao(),curso.getLocal()));
                }
            }
            return cursoLista;
        }
        public void setCursoLista(List<CadastroCurso> cursoLista) {
            this.cursoLista = cursoLista;
        }
        
        
        public List<SelectItem> getCursoItem() {
            return cursoItem;
        }
        public void setCursoItem(List<SelectItem> cursoItem) {
            this.cursoItem = cursoItem;
        }
        
        
        public String getDescricao() {
            return descricao;
        }
        public void setDescricao(String descricao) {
            this.descricao = descricao;
        }
        
        
        public String getLocal() {
            return local;
        }
        public void setLocal(String local) {
            this.local = local;
        }
    
        /**
         * salva ou atualiza o registro editado
         */
        public void salvar(){
            //Acha o cófigo do Uf na tabela de Ufs
            if(descricao == ""){
                ScreenMsg msg = new ScreenMsg();
                msg.screenMsg("Favor informar o nome do Curso", "cursos");
            }else{
            cursoDAO = new CursoDAO();
                    try{
                        emh.beginTransaction();
                        if(cursoDAO.findById(idCurso) == null){
                                Integer ult = pegaUltimo();
                                ult = ult + 1;
                                curso = new Curso(ult,local,descricao);
                                cursoDAO.save(curso);
                                limpar();
                        }else{
                            curso = new Curso(idCurso,local,descricao);
                            cursoDAO.update(curso);
                            limpar();
                        }
                        emh.commit();
                        emh.closeEntityManager();
                    }catch (Exception e) {
                        ScreenMsg msg = new ScreenMsg();                
                        msg.screenMsg("Ocorreu erro ao incluir, favor entrar em contato com administrador", "municipios");
                        EntityManagerHelper.log("save failed", Level.SEVERE, e);
                    }
                
                cursoLista = new ArrayList<CadastroCurso>();
            }
        }
    
            /**
         * exclui o registro corrente
         */
        public void excluir(){
            List<InstrutorCurso> insCurso = new ArrayList<InstrutorCurso>();
            InstrutorCursoDAO insCursoDAO = new InstrutorCursoDAO();
            insCurso = insCursoDAO.findByCurso(idCurso);
            if(insCurso.size()==0){
                Curso curso2 = new Curso();
                curso2 = cursoDAO.findById(idCurso);
                curso = new Curso(idCurso,local,descricao);
                if( curso2 != null){
                        try {
                            emh.beginTransaction();
                            cursoDAO.delete(curso);
                            emh.commit();
                            emh.closeEntityManager();
                            limpar();
                        } catch (RuntimeException ex) {
                            ScreenMsg msg = new ScreenMsg();                
                            msg.screenMsg("Não foi possível deletar, favor tentar novamente mais tarde!", "cadresp");
                            emh.log("delete failed", Level.SEVERE, ex);
                            throw ex;
                        }
                        cursoLista = new ArrayList<CadastroCurso>();
                }else{
                    ScreenMsg msg = new ScreenMsg();                
                    msg.screenMsg("Não existe municipio com este código!", "municipios");
                }
            }
        }
        
        public void limpar(){
            idCurso = 0;
            local = "";
            descricao = "";
        }
        
        /*
         * Método para selecionar o dado que esta no htmldatatable e jogar os dados na tela
         */
        public void edita(){
            CadastroCurso s = (CadastroCurso) dataTable.getRowData();
            curso = new Curso();
            List<Curso> curso2 = new ArrayList<Curso>();
            cursoDAO = new CursoDAO();
            curso2 = cursoDAO.findByDescricao(s.getDescricao()); // busca o registro pelo nome do curso
            idCurso = curso2.get(0).getIdcurso(); 
            curso = cursoDAO.findById(idCurso);
            local = curso.getLocal();
            descricao = curso.getDescricao();
        }
        
        public String voltar() {
            return "volta";  
        }
        
        public Integer pegaUltimo() {
            cursoDAO = new CursoDAO();
            List<Curso> ultimo = new ArrayList<Curso>();
            ultimo = cursoDAO.findAll();
            Integer i = ultimo.get(ultimo.size()-1).getIdcurso();
            return i;
        }
    }
    

    When I’d use Tomcat 6, all works fine! But on JBOSS 4.2.2 I’d have this errors…

    
    type Exception report
    
    message
    
    description The server encountered an internal error () that prevented it from fulfilling this request.
    
    exception
    
    javax.servlet.ServletException: /cadastrocurso.jsp(100,8) '#{cadastroCurso.cursoLista}' Error reading 'cursoLista' on type br.gov.sp.polmil.spe.beans.CadastroCurso
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
        org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
        org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
        org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
        org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
        org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    
    root cause
    
    org.apache.jasper.el.JspELException: /cadastrocurso.jsp(100,8) '#{cadastroCurso.cursoLista}' Error reading 'cursoLista' on type br.gov.sp.polmil.spe.beans.CadastroCurso
        org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)
        javax.faces.component.UIData.getValue(UIData.java:582)
        javax.faces.component.UIData.getDataModel(UIData.java:1063)
        javax.faces.component.UIData.setRowIndex(UIData.java:417)
        com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)
        javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
        javax.faces.component.UIData.encodeBegin(UIData.java:879)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
        javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
        javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
        com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
        com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
        org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
        org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
        com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
        com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
        org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
        org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
        org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
        org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
        org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    
    root cause
    
    java.lang.ExceptionInInitializerError
        br.gov.sp.polmil.spe.beans.CadastroCurso.getCursoLista(CadastroCurso.java:61)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        java.lang.reflect.Method.invoke(Method.java:597)
        javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
        javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
        com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
        org.apache.el.parser.AstValue.getValue(AstValue.java:97)
        org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
        javax.faces.component.UIData.getValue(UIData.java:582)
    javax.faces.component.UIData.getDataModel(UIData.java:1063)
        javax.faces.component.UIData.setRowIndex(UIData.java:417)
        com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)
        javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
        javax.faces.component.UIData.encodeBegin(UIData.java:879)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
        javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
        javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
        com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
        com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
        org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
        org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
        com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
        com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
        org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
        org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
        org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
        org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
        org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    
    root cause
    
    java.lang.ClassCastException: org.hibernate.search.event.FullTextIndexEventListener cannot be cast to org.hibernate.event.PostInsertEventListener
        org.hibernate.cfg.search.SearchConfiguration.enableHibernateSearch(SearchConfiguration.java:81)
        org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:856)
        org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
        org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
        javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
        javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
        br.gov.sp.polmil.spe.persistencia.EntityManagerHelper.<clinit>(EntityManagerHelper.java:20)
        br.gov.sp.polmil.spe.beans.CadastroCurso.getCursoLista(CadastroCurso.java:61)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        java.lang.reflect.Method.invoke(Method.java:597)
        javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
        javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
        com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
        org.apache.el.parser.AstValue.getValue(AstValue.java:97)
        org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
        javax.faces.component.UIData.getValue(UIData.java:582)
        javax.faces.component.UIData.getDataModel(UIData.java:1063)
        javax.faces.component.UIData.setRowIndex(UIData.java:417)
        com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)
        javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
        javax.faces.component.UIData.encodeBegin(UIData.java:879)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
        javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
        javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
        com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
        com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
        org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
        org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
        com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
        com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
        org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
        org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
        org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
        org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
        org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    
    note The full stack trace of the root cause is available in the JBossWeb/2.0.1.GA logs.
    

    The JSF page, just one part of it!

    
    <tr style="background-color: gray; color: white;">
                                            <td colspan="3">
    
                                                Cadastro de Cursos
                                            </td>
                                            <td width="50">
                                            </td>
                                            <td width="50">
                                                <h:commandLink action="#{cadastroInstrutor.logout}">
                                                    <h:outputText value="Logout" />
                                                </h:commandLink>
                                            </td>
                                        </tr>
    
                                    </table>
                                    <hr>
                                    <table width="100%">
    
                                        <tr>
                                            <td>
                                                Descrição:
                                            </td>
                                            <td>
                                                <h:inputText value="#{cadastroCurso.descricao}"
                                                    style="width: 321px; height: 24px" />
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>
                                                Local:
                                            </td>
                                            <td>
                                                <h:inputText value="#{cadastroCurso.local}"
                                                    style="width: 321px; height: 24px" />
                                            </td>
                                        </tr>
                                    </table>
                                    <br>
                                    <h:message style="color:#ff0000" for="cursos" />
                                    <h:dataTable border="1" value="#{cadastroCurso.cursoLista}"
                                        binding="#{cadastroCurso.dataTable}" var="item" first="0"
                                        rows="200" width="100%" dir="ltr" frame="hsides" rules="all"
                                        style="font-family: verdana; font-size: 10px; scrool=auto text-align:center;">
                                        <h:column id="numrersp">
                                            <f:facet name="header">
                                                <h:outputText value="Descrição" />
                                            </f:facet>
                                            <h:commandLink action="#{cadastroCurso.edita}"
                                                style="font-weight: bold;" value="#{item.descricao}" />
                                        </h:column>
                                        <h:column id="uf" rendered="true">
                                            <f:facet name="header">
                                                <h:outputText value="Local" />
                                            </f:facet>
                                            <h:outputText style="font-weight: bold;" value="#{item.local}" />
                                        </h:column>
    
                                    </h:dataTable>
    

    I’m using the MyEclipse 6.0.1. Using the debug I could see that the problem happens when
    the entitymanager try to be instantiated.
    Please if someone could help me, I’m with a little bit rush for this.
    Thanks in advance!

    #284494 Reply

    Loyal Water
    Member

    There is some problem with the libs I guess. I’ll check this issue with the dev team. In the mean time, can you cross post on the JBoss/JPA forum as well.

    #284590 Reply

    Hi guys,

    I’d have discovered the problem…
    First I did put into mysql-ds.xml after < jndi-name > the follow line < use-java-context >false< /use-java-context > for that the persistence.xml could find the DS, and
    on persistence.xml < jta-data-source >MySqlDS< /jta-data-source > .
    Because that MyEclipse put all libs into deploy, I did have to remove all lib’s that JBOSS already have it.
    After that all works properly.

    #284600 Reply

    Loyal Water
    Member

    Glad you got this to work. Thanks for letting me know.

Viewing 4 posts - 1 through 4 (of 4 total)
Reply To: Problem with JPA or Libs ????

You must be logged in to post in the forum log in