検索

ホームページ  >  に質問  >  本文

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

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_u1582phpcn_u15822791日前1085

全員に返信(5)返信します

  • 某草草

    某草草2017-05-17 10:00:05

    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
  • 怪我咯

    怪我咯2017-05-17 10:00:05

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

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

    返事
    0
  • PHPz

    PHPz2017-05-17 10:00:05

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

    返事
    0
  • PHPz

    PHPz2017-05-17 10:00:05

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

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-17 10:00:05

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

    返事
    0
  • キャンセル返事