Announcement Announcement Module
Collapse
No announcement yet.
hibernate + spring + jsf class service not found Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • hibernate + spring + jsf class service not found

    Hi everyone
    I have a web application wich uses jsf 2.0 and spring 3.0 + hibernate 4 The problem is that: after two days of setup .. finally I got a list in my page jsf with datatable, but it has errors in console on the class of service this is my class service show in error
    Code:
    package com.ardia.service; 
    @Service("compService")
    @Transactional
    public class ComposantImp implements ComposantService {
    
        @Autowired
        SessionFactory sessionFactory;
    
        @Override
        public void inserComposant(Composant comp) {
            // TODO Auto-generated method stub
    
            sessionFactory.getCurrentSession().saveOrUpdate(comp);
        }
    
        @Override
        public Composant getComposantById(int compId) {
            // TODO Auto-generated method stub
            return (Composant) sessionFactory.
                      getCurrentSession().
                      get(Composant.class, compId);
        }
    
        @Override
        public Composant getComposant(String compname) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        @SuppressWarnings("unchecked")
        public List<Composant> getComposants() {
            // TODO Auto-generated method stub
            Criteria criteria = sessionFactory.
                      getCurrentSession().
                      createCriteria(Composant.class);
                    return criteria.list();
        }
    
    }
    this is my bean
    Code:
    package com.ardia.beans;
    
    @ManagedBean(name="userMB")
    @SessionScoped
    public class Composantbeam {
    
    @ManagedProperty(value="#{compService}")
    ComposantService service;
    
    private List<Composant> list;
    
    @PostConstruct
    public void init()
    {
        list=service.getComposants();
    
    }
    
    public List<Composant> getList() {
        return list;
    }
    
    public void setList(List<Composant> list) {
        this.list = list;
    }
    
    public ComposantService getService() {
        return service;
    }
    
    public void setService(ComposantService service) {
        this.service = service;
    }
    and this is all my configuration

    Code:
    <faces-config
        xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
        version="2.0">
    <application>
      <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
     </application>
    </faces-config>
    web.xml

    Code:
    <web-app id="WebApp_ID" version="3.0"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
     <display-name>PFE</display-name>
     <context-param>
      <param-name>contextConfigLocation</param-name>
          <param-value>
         /WEB-INF/application.xml
          </param-value>
       </context-param>
     <listener>
      <listener-class>
       org.springframework.web.context.ContextLoaderListener
      </listener-class>
       </listener>
       <listener>
      <listener-class>
       org.springframework.web.context.request.RequestContextListener
      </listener-class>
       </listener>
     <context-param>
      <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
      <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
      <param-value>client</param-value>
     </context-param>
     <context-param>
      <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
      <param-value>resources.application</param-value>
     </context-param>
     <listener>
      <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
     </listener>
     <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.jsf</url-pattern>
     </servlet-mapping>
     <welcome-file-list>
      <welcome-file>/Test.jsp</welcome-file>
     </welcome-file-list>
    </web-app>
    this spring configuration

    Code:
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
    
       <context:component-scan 
        base-package="ardia.beans" />
      <context:component-scan 
        base-package="com.ardia.service" />
    <!-- Data Source Declaration -->
        <bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource" >
            <property name="driverClassName" value="org.postgresql.Driver" />
            <property name="url" value="jdbc:postgresql:PFE" />
            <property name="username" value="postgres" />
            <property name="password" value="root" />
    
        </bean>
    
        <!-- Session Factory Declaration -->
        <bean id="SessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <property name="dataSource" ref="DataSource" />
            <property name="packagesToScan" value="com.ardia.model" />
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
                    <prop key="hibernate.show_sql">true</prop>
                </props>
            </property>
    
    
        </bean>
    
     <tx:annotation-driven transaction-manager="transactionManager"/>
    
     <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager" >
        <property name="sessionFactory" ref="SessionFactory"/>
      </bean>
    </beans>
    data table on my jsf page work and return the list of component

    But this is my eroor

    Code:
    avr. 21, 2013 12:41:43 PM org.apache.catalina.core.StandardContext listenerStart
    Grave: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) com.sun.faces.config.ConfigureListener
    java.lang.NoClassDefFoundError: Lcom/ardia/service/ComposantService;
        at java.lang.Class.getDeclaredFields0(Native Method)
        at java.lang.Class.privateGetDeclaredFields(Unknown Source)
        at java.lang.Class.getDeclaredFields(Unknown Source)
        at com.sun.faces.application.annotation.ManagedBeanConfigHandler.collectAnnotatedFields(ManagedBeanConfigHandler.java:242)
        at com.sun.faces.application.annotation.ManagedBeanConfigHandler.getBeanInfo(ManagedBeanConfigHandler.java:151)
        at com.sun.faces.application.annotation.ManagedBeanConfigHandler.process(ManagedBeanConfigHandler.java:137)
        at com.sun.faces.application.annotation.ManagedBeanConfigHandler.push(ManagedBeanConfigHandler.java:123)
        at com.sun.faces.application.annotation.AnnotationManager.applyConfigAnntations(AnnotationManager.java:196)
        at com.sun.faces.config.processor.AbstractConfigProcessor.processAnnotations(AbstractConfigProcessor.java:328)
        at com.sun.faces.config.processor.ManagedBeanConfigProcessor.process(ManagedBeanConfigProcessor.java:244)
        at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
        at com.sun.faces.config.processor.ValidatorConfigProcessor.process(ValidatorConfigProcessor.java:120)
        at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
        at com.sun.faces.config.processor.ConverterConfigProcessor.process(ConverterConfigProcessor.java:126)
        at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
        at com.sun.faces.config.processor.ComponentConfigProcessor.process(ComponentConfigProcessor.java:117)
        at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
        at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:337)
        at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
        at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:116)
        at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
        at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:223)
        at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: com.ardia.service.ComposantService
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
        ... 34 more
    Infos: Server startup in 15288 ms
    I dont have classe named Lcom.ardia.service but I have com.ardia.service helpe me please on this problem

  • #2
    I chnage my service class without anotation

    i have creat my service manually on spring this is the code

    <bean id="compService" class="com.ardia.service.ComposantImp">
    <property name="sessionFactory" ref="SessionFactory" />
    </bean>
    the the error was deleted ...Is the annotaion not suported here !!!!with jsf and hibenate ...

    Comment

    Working...
    X