Quantcast
Channel: Spring Community Forums - Data
Viewing all articles
Browse latest Browse all 297

hibernate + spring + jsf class service not found

$
0
0
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

Viewing all articles
Browse latest Browse all 297

Trending Articles