2017-10-16 5 views
0

J'attache le débogueur d'oxygène Eclipse à une application Java distante. L'application Java distante a la classe org.example.Foo sur son classpath. Lors de la création d'un point d'arrêt conditionnel pour le codeComment résoudre une erreur de compilation de classe non résolue dans un point d'arrêt conditionnel?

org.example.Foo.log("some message"); 
return false; 

Je reçois une fenêtre d'erreur qui dit:

conditionnelle Breakpoint a erreur de compilation (s).

Raison: org.example ne peut être résolu

Lorsque j'utilise le code de réflexion dans le point d'arrêt conditionnel pour appeler la méthode statique de la classe Foo cela fonctionne.

J'ai essayé d'utiliser différents projets pour la configuration de débogage lors de la connexion à l'application java distante, mais aucun n'a essayé. J'ai essayé avec le projet containig org.example.Foo et j'ai également essayé avec le projet qui contient le servlet qui est déployé et je veux placer un point d'arrêt conditionnel dans. Comment est-ce que je peux utiliser la classe dans le point d'arrêt conditionnel?

EDIT: Ce que je remarque est que la fonction de complétion de code pour l'éditeur point d'arrêt conditionnel ne fournit que des paquets qui existent sur le Buildpath de l'éclipse et le classpath dans l'application en cours d'exécution et ne fournit pas non plus de classe les paquets affichés comme suggestions d'achèvement de code.

Répondre

0

Le problème ici est de savoir comment un point d'arrêt conditionnel est compilé et quelles sont les dépendances dans l'application entre les projets Eclipse.

L'application se compose de 3 projets. Le projet représentant l'application exécutable A a des dépendances sur les projets B et C, mais les projets B et C n'ont pas de dépendance entre eux. Le point d'arrêt conditionnel est créé pour une classe dans le projet B. Mais la classe utilisée dans l'expression conditionnelle se trouve dans le projet C.

Cette configuration entraînera une erreur de compilation pour la condition de point d'arrêt car celle-ci est compilée dans le contexte du projet B et ne connaît donc pas le projet C.

Le projet sélectionné dans la configuration de débogage à distance n'a aucune influence sur ce point. Il n'est pas non plus possible d'utiliser un projet différent via les propriétés du point d'arrêt conditionnel.