2010-05-19 16 views
17

Je viens de décomposer un fichier de configuration de bean Spring en fichiers externes plus petits et j'ai utilisé la directive "import" pour les inclure dans mon fichier XML de contexte d'application Spring Test.Avertissement Printemps/Eclipse 'référencé bean non trouvé' lors de l'utilisation <import>?

Mais chaque fois que je référence à l'une des fèves à partir des fichiers importés, je reçois un avertissement dans les éditeur XML Eclipse/STS/Spring se plaignant que « référencé haricot « foo » not found »

Est-ce est un bug ou est moi moi? C'est vraiment agaçant parce que je ne veux pas désactiver l'avertissement, mais dans ma société, nous essayons d'éliminer tous les avertissements.

Répondre

23

Il m'a vraiment agacé aussi!

Je ne suis pas sûr quand cette fonctionnalité a été introduite, mais avec des versions ultérieures, il est possible d'ajouter ce support.

  1. Faites un clic droit sur votre projet dans l'explorateur de printemps
  2. Cliquez sur les propriétés
  3. Voir image ci-dessous:

alt text

Je ne comprends pas pourquoi il est pas vérifié par par défaut, mais cela fonctionne comme un charme après l'avoir activé!

Si vous n'avez pas cette option avec votre version, je vous recommande fortement de télécharger le STS de SpringSource avec tous les plugins Eclipse nécessaires.

+1

La seconde approche de vonc fonctionne. Je crois que c'est la façon la plus simple et la plus appropriée de le faire. Merci! – HDave

+0

Pour les importations, cette approche est bonne. Pour simplement partitionner la configuration (par exemple, la sécurité dans un fichier et les listes de contrôle d'accès de sécurité dans un autre), l'approche du jeu de configuration de VonC fonctionne. –

+0

Cette solution ne semble pas fonctionner lorsque le bean référencé est dans un projet compagnon dans Eclipse. Je ai essayé de les ajouter comme un ensemble de configuration, mais pas de joie – Marc

2

1) Il est noble d'essayer d'éliminer tous les avertissements, mais ne vous attendez pas à réussir. 10 avertissements par projet sont corrects, 500 ne le sont pas. 2) cela dit, ce n'est pas votre bug, c'est une fonctionnalité qui manque délibérément à STS. délibérément, car ils n'ont aucun moyen de savoir quel sera votre classpath runtime. Bien sûr, ils pourraient résoudre certaines déclarations d'importation, mais ce serait un comportement incohérent. Bref, je l'ai appris à vivre avec cet avertissement

6

Selon this thread, cela pourrait ressembler à:

J'ai un problème (il est vrai cosmétique) avec les plug-ins IDE Spring pour Eclipse que je Je n'ai pas été capable de résoudre. J'ai une situation dans laquelle les fichiers de contexte A et B sont tous deux importés par le contexte C. B utilise plusieurs beans définis dans A, mais comme ils ne sont jamais utilisés indépendamment (uniquement par C), ce n'est pas un problème. Cependant, le validateur du plugin Spring IDE marque toutes les références aux beans dans A dans le fichier de contexte B comme des erreurs, en disant quelque chose comme "Bean référencé" foo "introuvable bar.xml". De toute évidence, c'est une affirmation correcte, mais dans mon cas d'utilisation ce n'est pas une erreur.

il y a deux façons de résoudre ce problème:

  1. ne configurer que le contexte C avec Spring IDE et que les autres fichiers (A. B) traités par le soutien à l'importation. Cela ne créera pas l'avertissement. Assurez-vous que vous n'ajoutez pas de fichiers de configuration A et B à Spring IDE car ils seraient également validés en mode autonome, ce qui provoque l'erreur de validation que vous voyez.
  2. Configurez un ensemble de configuration pour A, B et C et n'activez pas le traitement d'importation pour le projet.
+2

J'ai utilisé l'option # 2 et ça a marché comme un charme! Je me demandais toujours quelle était la valeur des ensembles de configuration dans un projet Eclipse/Spring. Maintenant je sais! Merci beaucoup. – HDave

+0

Yup, option # 2 prend en charge les avertissements de validation. Aucune importation impliquée non plus. –

+0

L'option 2 a fonctionné pour moi aussi. merci :) –