java-web - Java WEB: どのような種類の jar パッケージを WEB-INF の下に配置する必要がありますか?一部のパッケージが外部に配置されている場合、Tomcat は起動できません。
phpcn_u1582
phpcn_u1582 2017-05-17 09:58:05
0
5
1062

2 つの jar パッケージ commons-fileupload-1.3.2.jar と commons-io-2.5.jar があります。
私は最初にこれら 2 つのパッケージを他のパッケージ、つまり外部ライブラリと同様に外部に置きました
関連するクラス、web.xml

でサーブレットとマッピングを構成します。 リーリー

その後、Tomcat は起動に失敗し、次のプロンプトが表示されます:

重大: ContainerBase.addChild: 開始:
org.apache.catalina.LifecycleException: コンポーネントの開始に失敗しました

java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException

質問:
2 つの jar commons-fileupload と commons-io は WEB-INF の下に配置する必要がありますか?なぜですか?
外部ライブラリに配置できないのはなぜですか?他のすべてのパッケージは外部で使用できます。


なぜこれら 2 つは外部で使用できないのでしょうか?
WEB-INF に新しいライブラリを作成し、そこにこれら 2 つのパッケージを入れました。リリースしたときに存在していましたが、その後は正常に実行されました。
これら 2 つのパッケージの特別な点は何ですか?なぜ WEB-INF

の下に置く必要があるのですか
phpcn_u1582
phpcn_u1582

全員に返信(5)
某草草

idea の Tomcat プラグイン公開アプリケーションはこの Artifact です

現在のプロジェクトのアーティファクトに、外部ライブラリに依存する jar パッケージがないか確認してください

次に、このアーティファクトに lib を追加します (プロジェクト web/WEB-INF/lib下放入jar包会自动加到Artifact里面。这就是为什么你说的为什么放到WEB-INF才行的原因。当然你完全可以把依赖jar包还放在External Libraries,在Artifact这里添加上就行,不过还是推荐把依赖的jar包放在项目web/WEB-INF/lib で、このフォルダーを外部ライブラリの jar ライブラリとして配置します)

Tomcatを起動すると依存関係の問題が解決されました

いいねを押す +0
刘奇

まず最初に訂正してください。これは WEB-INFI ではなく WEB-INF ディレクトリです。

公開する前に Maven を使用してプロジェクトをパッケージ化しましたか? Maven に commons-fileupload的依赖,打包时会放在WEB-INF/lib がある場合。

いいねを押す +0
PHPzhong

ランタイム依存パッケージ

いいねを押す +0
PHPzhong

WEB-INF/lib に配置された jar パッケージは、依存関係として導入されていなくても、パッケージ化時にデフォルトで最終的な war パッケージに含まれます (場所は依然として WEB-INF/lib です)。 WEB-INF/lib に配置されていない jar パッケージについては、パッケージ中に最終 war パッケージが入力される前に、依存関係として導入する必要があります (引き続き WEB-INF/lib に配置されます)。依存関係の導入方法は3階の回答を参考にしてください

いいねを押す +0
我想大声告诉你

私もこの問題に遭遇しました。リリース時にインポートされた Jar が WEB-INF/lib に追加されていなかったので、Tomcat ディレクトリに対応する Jar が見つからなかったので、毎回コピーして貼り付けていました。インポート後、WEB-INF/lib の下で、インポートせずに参照ライブラリと WEB-INF/lib に直接貼り付けることもあります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート