1

あるWebコンテナ(たとえばJetty)のjarに対してJavaプログラムを構築し、それを別のWebコンテナ(たとえばTomcat)で実行することの意味は何ですか?

開発中にJettyで実行しているが、本番用にTomcatサーバーにデプロイされているアプリケーションがあります(Tomcatサーバー全体を実行しなくても開発が簡単なように見えるためです)。

4

3 に答える 3

2

開発者以外のビルドでは、ターゲットレベルの公式JavaEEAPIに対してのみコンパイルする必要があります。できればビルドエンジンによって。できれば、開発したオペレーティングシステムとは異なるオペレーティングシステムで。

Webアプリケーションの場合、これはOracleからダウンロードされた適切なサーブレットAPIを意味します。エンタープライズアプリケーションの場合も同様です。

私の経験では、これはそれをまっすぐに保つための最良の方法です。


編集:JavaEESDKはhttp://www.oracle.com/technetwork/java/javaee/downloads/index.htmlから入手できます。Java EE 6より古いバージョンが必要な場合は、「以前のリリース」リンクをたどってください。

于 2011-07-25T17:18:58.973 に答える
0

MethodNotFoundErrorなどの問題が発生する可能性があります。通常、サーバーにインストールされているjarのバージョンが一致していることを確認することで、これらを解決できます。

于 2011-07-25T17:04:30.493 に答える
0

通常、展開する場所を開発する必要があります。tomcatとjettyを使用して開発するのは少し難しいかもしれませんが、jarの競合に関する問題の潜在的な混乱を特定したので、tomcatにデプロイするので、tomcatを使用して開発する価値はないように思われますか?

また、通常、tomcat /選択したコンテナーに対して開発する際の苦痛は、コードを開発コンテナーにデプロイするant(またはその他の)タスクを作成する時間を設けることで軽減されます。作業サイクルが始まります

1)新しいコードを記述します
2)テストに合格することを確認します
3)「再デプロイ」スクリプトを実行します
4)実行中のインスタンスを調べます

あなたはおそらくそれをしたいでしょう。

最後に、緩い結合の精神では、回避できるのであれば、おそらくコンテナー固有のライブラリーに依存したくないでしょう。絶対的な最後の手段としてのみそれを行ってください。

于 2011-07-25T17:10:50.980 に答える