2016-07-12 5 views
-2

私はTomcatとサーブレットを最近学んでいます。今、私はOracle APITomcat APIが少なくとも多少異なっていることに気づきました。私は、Oracle APIが広くなければならないことは分かっていますが、Tomcatの操作の限界でさえ、まったく別のパッケージなどを持つようです。誰かが違いを説明できますか?そして実用的に言えば、私がTomcatの下で動作するサービスをビルドすれば、それは輸入のリファクタリングなしに、例えばグラスフィッシュでも実行されますか?Tomcat APIとその他のAPI

--- EDIT ---だから、

、どうやら私はサーブレットAPIのためのTomcatのAPIを間違えたなど

enter image description here

ソリューションはショットでのTomcatのJavadocを見ていませんサーブレットJavadoc、または何が問題になっていても。写真のリストはApache Tomcat 8 Documentation Indexで、左側はやや下にあります。

ありがとう、アンドレアスとEJP。

+0

どのAPIを参照していますか?サーブレットAPIは共有標準であり、多くのWebアプリケーションサーバーによって実装されています。 Tomcat、Glassfish、WebLogic、...完全なJava EE APIが必要な場合は、TomcatはTomcatではなくTomEEを使用します。これは、Tomcatは完全なEEコンテナではなくServletコンテナであるためです。絶対に必要な場合を除いて、リンクしたTomcat APIを使用しないでください。 – Andreas

+0

ありがとうございます。私はそれを知っている、それは私の質問です。私は完全なEEは必要ありません。つまり、パッケージとクラスは、どちらのAPIでも、少なくともパッケージ構造も異なって見えます。私はサーブレット・パッケージをOracleで簡単に見つけることができますが、Tomcatでは見つけることはできません。 – Tomasz

+1

もちろん、[Servlet 3.1 API - Apache Tomcat 8.0.36](http://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html)、[JSP 2.3 API - Apache Tomcat 8.0]が可能です。 36](http://tomcat.apache.org/tomcat-8.0-doc/jspapi/index.html)など。[Apache Tomcat 8 Documentation Index](http:// tomcat。 apache.org/tomcat-8.0-doc/index.html)。 – Andreas

答えて

2

のJava Enterprise Editionの

あなたは「オラクルのAPI」と呼んで実際に何がJava Enterprise Edition (Jave EE)仕様です。私はあなたの誤称の使用を避けることをお勧めします。

Java EEは、Java Standard Edition(Java SE)上に階層化された膨大な数多くのテクノロジーの膨大なコレクションです。 Java EEのさまざまな実装は、必ずしもすべてではなく、異なる部分をサポートします。

これらのAPIは、小さくても重要なJava EEのサブセットです。

リンクしたTomcat APIは、Tomcatの実装に固有のものです。開発者はそのAPIをほとんどめったに通過しません。代わりに、サーブレット、JSP、EL、およびWebSocketの各仕様で公開されているすべてのインターフェースをJSRとして公開しています。仕様に固執すれば、必要な場合にTomcatの代替手段としてWebアプリケーションを他の実装にデプロイすることができます。 Java EE Web Profile

diagram showing nested subsets of Java EE, Web Profile, Web containers, and distinct from that is the Tomcat-specific API

Webプロファイル

は、サーブレットおよびJSPのAPI along with several more、それでもall the possible Java EE technologiesのサブセットを含む仕様です。 Apache TomEEはWebプロファイルの実装の1つで、Tomcatで始まり、さらに多くのライブラリを追加します。別の例は、either a complete Java EE edition or a stripped-down Web Profile editionで利用可能なグラスフィッシュです。質問、What is different about the Java EE packages? (SDK/normal vs Web Profile)を参照してください。

「フル」の実装

Some productsすべてを実装する(またはそれに近い)は、Java EE仕様の。

時にはこれは「完全な」実装と呼ばれます。私は、サブセットの実装が欠落しているか、必要なものがないことを意味するので、誤解を招くようなラベルを考えています。まったく逆です。必要な部分だけを含む最もリーンな実装を常に使用する必要があります。より多くの負荷のかかるサーバーは、より多くのメモリを消費し、開始と停止が遅くなり、より多くの費用がかかる可能性があります。たとえば、Mac OS XのJava 8 Standard Edition(SE)の上にVaadin 7のApache Tomcat 8のみを使用して、高度にインタラクティブなデスクトップスタイルのWebアプリケーションを構築して配備します。

また、Java EEテクノロジは、完全なJava EE実装とは別に、スタンドアロンにすることができます。したがって、よりリーンな実装から始めて、必要な数の個々のテクノロジーだけのライブラリを追加することができます。たとえば、Bean Validationは、an implementationのJARファイルを追加することでTomcatで使用できます。

関連する問題