Eclipse java.lang.NoClassDefFoundError

Hi,

I am new en the JSF-Spring-Hibernate and the problem is that I created a proyect in Eclipse 3.2 and I have the page:

index.jsp:

<html>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

<f:view>

<body>

<table>

<tr>

<td>Documents : </td>

<td>

<h:selectOneMenu id="documento" value="#{accesoInscripcion.documentosItems}">

</h:selectOneMenu>

</td>

</tr>

<tr>

</tr>

</table>

</body>

</f:view>

</html>

but I try to execute the nex error appear:

11/07/2007 08:31:33 AM org.apache.myfaces.shared_impl.util.ClassUtils newInstance

GRAVE: Class : co.edu.uis.admisiones.vista.beans.AccesoInscripcionBean not found.

java.lang.NoClassDefFoundError

at co.edu.uis.admisiones.vista.beans.BaseBean.<init>(BaseBean.java:14)

at co.edu.uis.admisiones.vista.beans.AccesoInscripcionBean.<init>(AccesoInscripcionBean.java:12)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:494)

at java.lang.Class.newInstance0(Class.java:350)

at java.lang.Class.newInstance(Class.java:303)

at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:277)

at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:268)

at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:49)

at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:314)

at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:570)

at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)

at org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBindingImpl.java:458)

at org.apache.myfaces.el.ValueBindingImpl.getType(ValueBindingImpl.java:175)

But the class is in the package. Sombody could tell me what is the solution?

The configuration files are:

faces-config.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE faces-config PUBLIC

"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"

"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<faces-config>

<managed-bean>

<managed-bean-name>

documento</managed-bean-name>

<managed-bean-class>

co.edu.uis.admisiones.modelo.bo.Documento</managed-bean-class>

<managed-bean-scope>

request</managed-bean-scope>

</managed-bean>

<managed-bean>

<managed-bean-name>accesoInscripcion</managed-bean-name>

<managed-bean-class>

co.edu.uis.admisiones.vista.beans.AccesoInscripcionBean

</managed-bean-class>

<managed-bean-scope>

request</managed-bean-scope>

<managed-property>

<property-name>initAware</property-name>

<value>true</value>

</managed-property>

</managed-bean>

</faces-config>

BaseBean.java:

package co.edu.uis.admisiones.vista.beans;

import co.edu.uis.admisiones.vista.ServiceLocatorAdmisiones;

public class BaseBean

{

private boolean initAware = false;

protected ServiceLocatorAdmisiones serviceLocator;

public BaseBean()

{

try

{

this.setServiceLocator(ServiceLocatorAdmisiones.getInstance());

}

catch (Exception e)

{

e.printStackTrace();

throw new RuntimeException("Error inicializando serviceLocator", e);

}

}

public boolean isInitAware()

{

return initAware;

}

public void setInitAware(boolean initAware)

{

this.initAware = initAware;

if (this.initAware)

{

this.init();

}

}

protected void init(){}

public ServiceLocatorAdmisiones getServiceLocator()

{

return serviceLocator;

}

public void setServiceLocator(ServiceLocatorAdmisiones serviceLocator)

{

this.serviceLocator = serviceLocator;

}

}

AccesoInscripcionBean.java:

package co.edu.uis.admisiones.vista.beans;

import java.util.*;

import co.edu.uis.admisiones.vista.*;

public class AccesoInscripcionBean extends BaseBean

{

private List documentosItems;

public AccesoInscripcionBean()

{

super();

documentosItems = new ArrayList();

}

public List getDocumentosItems()

{

return documentosItems;

}

public void setDocumentosItems(List listaDocumentos)

{

this.documentosItems = listaDocumentos;

}

private void initItemsDocumentos()

{

this.documentosItems = Listados.ListaDocumentos(

this.getServiceLocator().getServicioConsultasGen().getDocumentos());

}

protected void init()

{

try

{

super.init();

initItemsDocumentos();

}

catch(Exception e)

{

System.err.println("Error en el mtodo init() de AccesoInscripcionBean.java: "+e.toString());

}

}

}

admisiones.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd" >

<beans>

<!-- DataSource Definition -->

<bean id="dataSourceAdmisiones"

class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

<property name="driverClassName">

<value>com.informix.jdbc.IfxDriver</value>

</property>

<property name="url">

<value>jdbc:informix-sqli://192.168.19.6:12010/academic:INFORMIXSERVER=UI;SelectMethod=cursor</value>

</property>

<property name="username">

<value>admis</value>

</property>

<property name="password">

<value>sdlfkseic</value>

</property>

</bean>

<!-- Spring Data Access Exception Translator Defintion -->

<bean id="jdbcExceptionTranslator" class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator">

<property name="dataSource"><ref bean="dataSourceAdmisiones"/></property>

</bean>

<!-- Hibernate SessionFactory Definition -->

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="mappingResources">

<list>

<value>co/edu/uis/admisiones/modelo/bo/Documento.hbm.xml</value>

</list>

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">org.hibernate.dialect.InformixDialect</prop>

<prop key="hibernate.show_sql">false</prop>

<prop key="hibernate.cglib.use_reflection_optimizer">false</prop>

<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>

</props>

</property>

<property name="dataSource">

<ref bean="dataSourceAdmisiones"/>

</property>

</bean>

<!-- INTERCEPTORS -->

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory"><ref local="sessionFactory"/></property>

</bean>

<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">

<property name="transactionManager"><ref bean="transactionManager"/></property>

<property name="transactionAttributes">

<props>

<prop key="*">PROPAGATION_REQUIRED</prop>

</props>

</property>

</bean>

<bean id="hibernateInterceptor" class="org.springframework.orm.hibernate3.HibernateInterceptor">

<property name="sessionFactory">

<ref bean="sessionFactory"></ref>

</property>

</bean>

<!-- Hibernate Template Defintion -->

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">

<property name="sessionFactory"><ref bean="sessionFactory"/></property>

<property name="jdbcExceptionTranslator"><ref bean="jdbcExceptionTranslator"/></property>

</bean>

<!--DAO'S-->

<bean id="DocumentoDao" class="co.edu.uis.admisiones.modelo.dao.hibernate.DocumentoDaoHibernateImpl">

<property name="hibernateTemplate"><ref bean="hibernateTemplate"/></property>

</bean>

<!-- SERVICIOS-->

<!-- Servicio de consultas -->

<bean id="servicioConsultasGenTarget" class="co.edu.uis.admisiones.modelo.servicios.implementaciones.ServicioConsultasGenImpl">

<property name="DocumentoDao">

<ref bean="DocumentoDao"/>

</property>

</bean>

<!-- Servicio consultas Proxy Transaccional-->

<bean id="servicioConsultasGen" class="org.springframework.aop.framework.ProxyFactoryBean">

<property name="target">

<ref bean="servicioConsultasGenTarget"/>

</property>

<property name="proxyInterfaces">

<value>co.edu.uis.admisiones.modelo.servicios.ServicioConsultasGen</value>

</property>

<property name="interceptorNames">

<list>

<value>hibernateInterceptor</value>

<value>transactionInterceptor</value>

</list>

</property>

</bean>

</beans>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app id="WebApp_ID">

<display-name>jsf</display-name>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/admisiones.xml</param-value>

</context-param>

<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>*.faces</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>

[10984 byte] By [KennethRenea] at [2007-11-27 10:15:54]
# 1

I dont really know what the problem is, but one guess would be that the versions of the various vendor packages are not compatable, if AccesoInscripcionBean is a vendor object and not one of your custom classes.

Another possibility is that AccesoInscripcionBean is an interface (or abstract class?) that you need to implement so the implementation can be instansiated (interfaces cannot be instansiated). Sorry, I have no other ideas than those.

George123a at 2007-7-28 15:42:16 > top of Java-index,Java Essentials,Java Programming...
# 2

AccesoInscripcionBean is not an interface or abstract class, if a custom class and is located in co.edu.uis.admisiones.vista.beans inside the proyect.

The problem is extrange because I belive tha all is good, but the message NoClassDefFoundException appear.

KennethRenea at 2007-7-28 15:42:17 > top of Java-index,Java Essentials,Java Programming...