1つのWebコンテナの瓶に対してJavaプログラムを構築し、別のWebコンテナに展開することの意味
-
26-10-2019 - |
質問
1つのWebコンテナ(Jettyなど)の瓶に対してJavaプログラムを構築し、別のWebコンテナ(たとえばTomcatなど)で実行することの意味は何ですか?
Jetty Durring Developmentで実行されますが、生産用にTomcatサーバーに展開されているアプリケーションがあります(なぜですか?Tomcatサーバー全体を実行することなく開発が簡単に思えるからです。)
解決
開発者以外のビルドについては、ターゲットのレベルに対して、公式のJava EE APIのみをコンパイルする必要があります。できればビルドエンジンによって。できれば、あなたが開発するのとは異なるオペレーティングシステムで。
Webアプリケーションの場合、これはOracleからダウンロードされた適切なサーブレットAPIを意味します。エンタープライズアプリケーションについても同様です。
私の経験では、これはそれをまっすぐに保つための最良の方法です。
編集:Java EE SDKはから入手できます http://www.oracle.com/technetwork/java/javaee/downloads/index.html. 。 Java EE 6より古いバージョンが必要な場合は、「以前のリリース」リンクに従ってください。
他のヒント
MethodNotFounderrorなどの問題を取得できます。通常、サーバーマッチにインストールされているJARのバージョンを確認することで、これらを解決できます。
通常、展開する場所を開発したいと考えています。それは可能性があります 少し Tomcat vs Jettyで開発するのは難しいですが、Jarの競合の問題の潜在的な混乱を特定したので、Tomcatに展開するので、Tomcatで開発する価値はありませんか?
また、通常、Tomcat/あなたの選択したコンテナに対する発達の痛みは、開発コンテナにコードを展開するアリ(または他の)タスクを書くために時間を費やすことにより緩和されます。作業サイクルはbemoesです
1)新しいコードを書きます
2)テストが合格していることを確認してください
3)「redeploy」スクリプトを実行します
4)実行中のインスタンスで突く
あなたはおそらくそれをしたいと思うでしょう。
最後に、ゆるいカップリングの精神では、おそらくそれを避けることができれば、コンテナ固有のライブラリに依存したくないでしょう。絶対的な最後の手段としてのみそれを行います。