Não encontra classe[RESOLVIDO]

Ola pessoal, estou tentando fazer com que uma interface receba uma implementação dela, mas esta interface esta em outro projeto junto com a implementação, mas quando ele vai criar o objeto interface = new interfaceImp ela da erro de java.lang.NoClassDefFoundError.

Eu jah importei o outro projeto que contém a interface.

O estranho é que ele consegue criar outros objetos normal.
Segue abaixo minhas classes

public class HumidityServiceImp 
        extends GenericServiceImp<Humidity>
        implements HumidityService{

    HumidityDAO humiditydDao = new HumidityDAOImp(); // Aqui ocorre a Exception

    @Override
    protected <F extends GenericDAO<Humidity>> F getInstance() {
        return (F) humiditydDao;
    }

Classe de Teste

public static void main(String[] args) {
        Humidity humidity = new Humidity();
        humidity.setChangeDate(Calendar.getInstance().getTime());
        humidity.setValue(2.0);

        HumidityService hs = new HumidityServiceImp();
        hs.save(humidity);
    }
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/PersistenceException
        at br.com.greenhouse.service.model.imp.HumidityServiceImp.<init>(HumidityServiceImp.java:23)
        at TestService.main(TestService.java:30)
Caused by: java.lang.ClassNotFoundException: javax.persistence.PersistenceException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
Java Result: 1

Gostaria de alguma opnião de o que pode ser, pois o projeto que tem essa interface - HumidityDAO - é o domain que estou importando.
Desde já agradeço a colaboração de todos

Axo que as classe não esta no mesmo pacote.

Ola henrique,

No mesmo pacote?

como assim nao entendi

Eu tenho um projeto domain e dentro dele eu tenho um pacote com as interfaces e outro pacotes com a implementação delas

e este projeto importo para este outro projeto service.

Já verifiquei o domain está tudo certo as classes estao lá mesmo, removi o projeto, adicionei novamente e ainda continua dizendo q não acha a classe.

:S

Você consegue instanciar a InterfaceImp em algum outro lugar do seu projeto?

Ola drigo.angelo

então tentei instanciar em outro lugar do service, mas acaba dando o mesmo erro da exception que postei no inicio.

ao inves de

 HumidityService hs = new HumidityServiceImp();  
  hs.save(humidity);

tentei direto mas sem passar pelo service mesmo.

public static void main(String[] args) {
        Humidity humidity = new Humidity();
        humidity.setChangeDate(Calendar.getInstance().getTime());
        humidity.setValue(2.0);

        HumidityDAO humidityDAO = new HumidityDAOImp();
        try {
            humidityDAO.save(humidity);
        } catch (PersistentException ex) {
            Logger.getLogger(TestService.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

No projeto domain esse mesmo teste funciona normal e grava no banco como estou querendo mesmo
mas no service em qualquer lugar do projeto q instancie a interfaceImp da erro.

Obrigado!

Estranho… assim fica parecendo que as bibliotecas não foram adicionadas corretamente…

Entao bem estranho mesmo!

estou importando elas

import br.com.greenhouse.model.domain.DAO.HumidityDAO;
import br.com.greenhouse.model.domain.DAOImp.HumidityDAOImp;

e no projeto service, fui em propriedades/ bibliotecas e adicionei um projeto(domain)

Acho q nao deve ser algum problema da IDE não é?

Quando importo um projeto, este projeto pode estar aonde for nao seria isso, e importando o projeto posso instanciar qualquer classe dele, este é o esquema nao seria.

Obrigado!

Ola pessoal, consegui resolver este problema.

Só explicando: eu tenho dois projetos um Domain e um Service.

No domain eu tenho bibliotecas do hibernate, mysql, etc. E pensei q no service não precisava essas bibliotecas, pois para mim importando o domain que jah tem elas quando eu instanciava uma classe do domain e mandava gravar no banco eu pensei q as bibliotecas domain são utilizadas e por isso nao importei elas para o service.

Mas importando para o service as bibliotecas funcionou normalmente.

Bom agradeço a colaboração de Todos

Grande abraço