fyzicky sa samozrejme ten subor nachadza tam kde sa ma: /classes/com/house/dao/HibernateAuthenticationDao.class

co sa tyka viacerych verzii jar-u nejakeho produktu, to som tiez kontroloval, ale toto je subor projektu, nie je to trieda z nejakej kniznice.

terazec HibernateAuthenticationDao som nenasiel niekde inde v projekte, len v suboroch:

application-acegi.xml
HibernateAuthenticationDao.class

takze dufam ze sa ten nazov nebije s niecim inym.

Ivan

Ing. Jan Novotný  wrote / napísal(a):
Tyhle classpath problémy se přes konferenci těžko řeší. Zkoušel jste v
deploynuté verzi fyzicky tu classu najít? Když se mi stalo něco
podobného, vždycky to bylo nějakým zmatkem (např. dvě různé verze
stejného jaru na classpath apod.)

Honza N.

2008/1/9, Ivan Polák <[EMAIL PROTECTED]>:
zdravim konferenciu,

chcel som pouzit vo svojom projekte Spring a Acegi, ked som "vkladal"
Acegi presne podla navodu narazil som na nasledovnu chybu:

v subore application-acegi.xml mam:

<bean id="hibernateAuthenticationDao"
class="com.house.dao.HibernateAuthenticationDao">
    <property name="userManager" ref="userManager"/>
</bean>

<bean id="daoAuthenticationProvider"
class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
    <property name="userDetailsService" ref="hibernateAuthenticationDao"/>
    <property name="userCache" ref="userCache"/>
    <property name="saltSource" ref="saltSource"/>
    <property name="passwordEncoder" ref="passwordEncoder"/>
</bean>

<bean id="authenticationManager"
class="org.acegisecurity.providers.ProviderManager">
    <property name="providers">
        <list>
            <ref local="daoAuthenticationProvider"/>
        </list>
    </property>
</bean>

Trieda com.house.dao.HibernateAuthenticationDao vyzera nasledovne:

package com.house.dao;
import org.springframework.dao.DataAccessException;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import com.house.model.User;
import com.house.service.UserManager;

public class HibernateAuthenticationDao implements UserDetailsService {

    private UserManager userManager;

    public void setUserManager(UserManager userManager) {
        this.UserManager = userManager;
    }

    public UserManager getUserManager() {
        return userManager;
    }

    public UserDetails loadUserByUsername(String username) throws
UsernameNotFoundException, DataAccessException {
    .....
    }
}

trieda sa bez problemov prekompiluje, napriek tomu dostavam nasledovnu
chybu:

2008-01-08 21:16:33,568 ERROR ContextLoader - Context initialization failed
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot
find class [com.house.dao.HibernateAuthenticationDao] for bean with name
'hibernateAuthenticationDao' defined in class path resource
[applicationContext-acegi.xml]; nested exception is
java.lang.ClassNotFoundException: com.house.dao.HibernateAuthenticationDao
    at
org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1160)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:581)
....

skontroloval som preklepy, je nejaka specialna poziadavka ako ma vyzerat
bean , ked je prekompilovany a aj napriek tomu Spring pise ze ju nevie
najst ?, pretoze okrem tohoto mam v aplikacii asi 100 definicii
<bean></bean> a tam je vsetko OK.

dakujem

Ivan





Odpovedet emailem