L'injection de dépendance avec le Printemps (JSR 330 annotations) dans WebSphere 7 ne fonctionne pas

J'ai une application d'entreprise construit avec Java 6, Spring Framework 3.1.2 et de Mule ESB 3.3.0, entre autres bibliothèques ne sont pas liées à cette question.

Nos haricots et les services sont tous déclarés avec @Named et @Inject JSR 330 annotations, respectivement pour le réglage automatique de composant de balayage et d'injection de dépendance (pas d'Ejb, au seul service des haricots). Lorsqu'il est déployé dans JBoss 4.2.3 (notre environnement de test) tout fonctionne bien. Toutefois, lorsqu'il est déployé dans WebSphere 7, la JSR 330 annotations semblent ne pas avoir de travail. Les haricots marqué avec @Named sont tout simplement pas détecté, à tous.

Je peux vous assurer que tout est configuré à droite (puisque c'est de travailler dans JBoss). Plus précisément, le <context:component-scan /> a la base-package attribut correctement définie et la scope-resolver attribut correctement configuré pour utiliser Jsr330ScopeMetadataResolver (nous avons essayé sans trop).

Je suis conscient de WebSphere 7 (7.0.0.23) ne peut pas soutenir ce genre d'annotations. Je suis encore à tester avec @Component et @Autowired Printemps équivalents. Malheureusement, nous aimerions beaucoup à l'utilisation de la JSR 330 annotations afin que nos classes ne serait pas directement dépendent de Printemps, même si nous sommes à l'aide de Spring Framework sous le capot.

Néanmoins, même si j'avais passé une œuvre complète du jour à la recherche pour une certaine instruction que WebSphere 7 ne prend pas en charge la JSR 330 annotations, je n'ai rien trouvé jusqu'à présent.

De plus, je ne vois pas pourquoi cela ne fonctionnerait pas, depuis que je suis en supposant que le Framework Spring est celui qui fait tout le travail, par le biais de la <context:component-scan /> directive dans le application-context.xml fichier.

Quelqu'un peut-il apporter un peu de lumière sur cette question?

Est-il un moyen d'activer l'injection de dépendance via des annotations dans WebSphere 7?

Si je passe en arrière de la JSR 330 @Named /@Inject annotations de Spring propre @Component et @Autowired est-il susceptible de travailler?

Dans une tentative désespérée, puis-je prolonger le Printemps ComponentScanBeanDefinitionParser de sorte qu'il détecte la JSR 330 annotations même dans WebSphere 7?

Si rien ne fonctionne, je vais finir par revenir à la plaine de configuration XML. Qui est hautement indésirable, cependant, parce qu'il y aura des centaines de haricots être configuré manuellement dans le fichier XML.

  • Je suis certain que le Printemps annotations fonctionne. Je n'ai jamais essayé avec de l'appelé et l'Injecter. Il n'est pas surprenant que WebSphere ne prend pas en charge elle - logiciel IBM est terrible.
  • Tous les CDI des trucs que j'ai vu pour WebSphere commence à la version 8, mais je suis d'accord je ne peux pas trouver une réponse définitive à cet effet. C'est certainement dans le v8 de la documentation. ibm.biz/BdxmBv