détails: J'essaye d'utiliser le framework Jalapeno pour connecter mon application RCP avec la base de données Cache. Une fois la connexion établie, je suis en train d'obtenir toutes les données de la table exactement comme dans le manuel Jalapeno:Eclipse RCP: ClassNotFoundException ou Comment charger un autre paquet ma classe
if (objManager==null) return;
DBClass cortege = null;
try {
Iterator terms = objManager.openByQuery(DBClass.class, null, null);
System.out.println("terms ok");
while (terms.hasNext()){
System.out.println("has next");
cortege = (DBClass)terms.next();
}
cette compilation de code, en cours d'exécution et trowing exception
java.lang.RuntimeException: myPluginId.views.DBClass
at com.intersys.objects.POJOIterator.next(POJOIterator.java:75)
...skip...
Caused by: java.lang.ClassNotFoundException: myPlugin.views.DBClass
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.core.runtime.internal.adaptor.ContextFinder.loadClass(ContextFinder.java:129)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.jalapeno.runtime.ObjectCopierToPojo.detach(ObjectCopierToPojo.java:76)
at com.jalapeno.runtime.ObjectCopierToPojo.findPojo(ObjectCopierToPojo.java:472)
at com.intersys.classes.CacheRootObject.detach(CacheRootObject.java:255)
at com.intersys.classes.Persistent.detach(Persistent.java:567)
at com.intersys.objects.POJOIterator.next(POJOIterator.java:59)
à terms.next(); Je n'arrive pas à l'obtenir ... instance de la classe DBClass a été créée, mais la classe ne peut pas être chargée. alors j'ai essayé de placer ce code dans une application java simple (pas eclipse rcp) et tout s'est bien passé. donc je pense que le chargement des classes de blocage des pièces Eclipse.
J'ai également essayé de charger la classe avant d'appeler terms.next();
Bundle b = Platform.getBundle("myPluginId");
try {
b.loadClass("DBClass");
} catch (ClassNotFoundException e) {
System.out.println("no class");
e.printStackTrace();
}
et la même erreur. La classe ne peut pas être chargée. alors, est-ce que c'est un problème connu? Y a-t-il une solution? ========================================== après quelques recherches mettant à jour la question: Comment faire Jalapeno plugin pour charger la classe de Mon plugin?
dans l'éclipse google group trouvé, que J alapeno plugin et ma classe doit être chargée par le même chargeur de classe ... je ne sais pas comment faire cela. – Imaskar
c'est ce dont j'ai besoin? http://wiki.eclipse.org/index.php/BundleProxyClassLoader_recipe si oui, comment l'utiliser? – Imaskar
jetez un oeil à ma réponse ci-dessous, mais oui, je crois que vous avez besoin de chargement de classe buddy. – nstehr