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
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.
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.
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.