Pourquoi ne peut-on pas des bibliothèques de la fonction à l'extérieur de l'environnement de serveur d'applications?
En fait ils le peuvent. La plupart des bibliothèques peut être directement utilisé de façon autonome (en Java SE) ou inclus dans un .la guerre, en pratique c'est presque toujours de Tomcat). Certaines parties de Java EE, comme JPA, explicite sections dans leurs spécifications respectives qui raconte comment ils doivent travailler et être utilisé en Java SE.
Si quoi que ce soit, ce n'est pas tellement un environnement de serveur d'applications en soi qui est en jeu ici, mais la présence de tous les autres bibliothèques et le code d'intégration qui les unit.
À cause de cela, les annotations seront analysés qu'une seule fois pour tous vos classes à la place de chaque bibliothèque (EJB, JPA, etc) de faire cette analyse et sur lui-même. Aussi à cause de cela, les CDI, les annotations peuvent être appliquées à des EJB les haricots et les gestionnaires de l'entité JPA peut être injecté dans.
Pourquoi ai-je besoin de quelque chose de massif comme JBoss juste compiler du code simple pour envoyer un e-mail?
Il y a quelques choses de mal avec cette question:
- Pour la compilation vous avez seulement besoin de l'API pot, ce qui est inférieur à 1 mo pour le Profil Web, et un peu plus de 1 mo pour le profil de.
- Pour la course, vous avez évidemment besoin d'une mise en œuvre, mais "massif" est exagéré les choses. L'OpenJDK par exemple, est d'environ 75 MO et TomEE (un Profil Web contenant de la mise en œuvre de messagerie pris en charge) est seulement de 25 mo. Même GlassFish (un Profil Complet de la mise en œuvre) n'est 53MB.
- Mail fonctionne parfaitement bien à partir de Java SE (et donc Tomcat) et à l'aide de l'application autonome mail.jar et activation.jar.
Pourquoi Java EE bibliothèques sont pas "standard" et inclus dans l'ordinaire de la JVM de télécharger et/ou le SDK?
Java EE dans une voie a été l'une des premières tentatives de diviser le déjà massive JDK en morceaux plus faciles à gérer et télécharger. Les gens se plaignent déjà que le graphique des classes (AWT, Swing) et les Applets sont à l'intérieur de la JRE quand tout ce qu'ils font est d'exécuter des commandes sur un serveur headless. Et puis vous aussi vous souhaitez inclure tous les Java EE bibliothèques dans la norme JDK?
Avec la libération éventuelle de la modularité de l'assistance, nous allons juste avoir une petite base JRE avec beaucoup de choses séparément installable sous forme de forfaits. Peut-être un jour, plusieurs ou même toutes les classes qui constituent aujourd'hui Java EE sera tel paquet. Le temps nous le dira.
Pourquoi sont-ils si nombreux Java EE offres quand il n'y a vraiment que deux saveurs de la norme Java (JVM Oracle/SDK | OpenJDK JVM/JDK)?
Il y a plus de juste deux versions de Java SE. Il y a au moins le JDK IBM, la précédente BEA un (JRocket, qui est fusionnée dans l'Oracle/Sun one en raison de l'acquisition), et divers autres implémentations open source et d'une flopée de mises en œuvre pour l'utilisation embarquée.
La raison derrière Java SE et EE être une spécification est que de nombreux fournisseurs et les organisations peuvent mettre en œuvre et, par conséquent, il encourage la concurrence et réduit le risque de l'enfermement.
C'est vraiment pas différent avec les compilateurs C et C++, où vous avez beaucoup de concurrents offres et tous les adhérant à la norme C++.
Pourquoi Java EE version de bibliothèque n'en synchronisation avec Java standard de la bibliothèque de versions (Java EE 6 vs Java 7)
Java EE s'appuie sur Java SE, donc c'est derrière. Les versions ne correspondent cependant. Java EE 5, nécessite Java SE 5. Java EE 6, Java SE 6, et ainsi de suite. C'est juste que la plupart du temps quand Java SE X est à jour, Java EE X-1 est en cours.