Nous avons une situation où notre printemps file de certains haricots comprenant des classes Activemq construits avec Java 6. Notre application s'exécute sur les serveurs du client, nous ne pouvons donc pas garantir qu'ils ont installé Java 6 ou plus tard. S'ils arrivent à avoir Java 5, l'application ne peut pas démarrer à cause de Donc, ma question est, y a-t-il un moyen d'ignorer un My Hunch est qu'il n'ya aucun moyen de le faire, car le printemps doit être capable de garantir que ma demande est construite correctement après l'initialisation, mais je pensais que je demanderais de toute façon. Toute autre suggestion pour accomplir mon objectif final serait également utile et appréciée. P>
Nous utilisons le printemps 3.0.6 P>
Merci! P> BeanCreattionException Code> S avec les classes qui dépendent de ActiveMQ (Cause root étant un
non supportéClassVersionError Code>). P >
haricèrentexception code> et de commencer toujours l'application? Je souhaite pouvoir afficher un message d'erreur indiquant qu'elles ont besoin d'installer Java 6 ou plus tard, mais que l'application ne peut même pas commencer, je n'ai jamais eu la chance de le faire. P>
3 Réponses :
Tout d'abord, tous les jets qui sont une sous-classe de Un Cependant, si tout ce que vous allez faire est d'afficher un message d'erreur, vous devriez être capable de s'en tirer avec. P>
Pour revenir à votre question, je suggère Création d'une implémentation de java.lang.error code> sont généralement considérés comme non récupérables. Donc, alors qu'il est possible de les attraper, Il est fortement découragé A>: p>
Error code> est une sous-classe de
lancée code> qui indique de graves problèmes qu'une application raisonnable ne devrait pas essayer d'attraper. La plupart des erreurs de ce type sont des conditions anormales. P>
blockQuote>
interface Factybean code>, qui essaierait de charger les classes ActiveMQ. Si cela fonctionne, il peut renvoyer l'objet approprié de
Factorybean.getObject code>. Si elle échoue (via un
non supportéClassversionError code>), il peut renvoyer soit un
null code>, ou un autre objet représentant cette condition. P>
Merci, cela semble travailler pour moi. J'ai choisi cela comme la réponse puisqu'il s'agissait d'abord de suggérer FondsBean et ne m'a pas demandé de mettre à niveau le printemps.
Vous pouvez créer un haricot d'usine et laisser créer le haricot Activemq. Si cela ne peut pas être initialisé, l'usine pourrait renvoyer une implémentation mannequin / maxe afin que les choses ne se cassent pas. Plus tard, vous pourriez demander à l'usine si tout s'est bien passé. P>
Si vous pouvez passer à Spring 3.1 (Stable), profitez de la configuration Java: ou: p> plus vieux Versions du ressort FactoryBean code> pourrait être utilisé pour implémenter la même logique. Au lieu de retourner
null code> Vous pouvez également renvoyer une fausse implémentation que vous pouvez découvrir plus tard et avertir l'utilisateur lorsque l'application tente de l'utiliser. P> p>