recherche

Maison  >  Questions et réponses  >  le corps du texte

java-web - Java WEB : quel type de package jar doit être placé sous WEB-INF ? Si certains packages sont placés à l'extérieur, Tomcat ne pourra pas démarrer.

Il existe deux packages jar commons-fileupload-1.3.2.jar et commons-io-2.5.jar
J'ai initialement placé ces deux packages à l'extérieur comme les autres packages, c'est-à-dire les bibliothèques externes
Écrivez les classes pertinentes Après cela, configurez le servlet et cartographie dans web.xml

<servlet>
    <servlet-name>mytest</servlet-name>
    <servlet-class>servlet.FileUploadServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>mytest</servlet-name>
    <url-pattern>/upload</url-pattern>
</servlet-mapping>

Ensuite, Tomcat ne démarre pas, message :

Critique : ContainerBase.addChild : démarrage :
org.apache.catalina.LifecycleException : échec du démarrage du composant

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

Question :
Les deux jars commons-fileupload et commons-io doivent-ils être placés sous WEB-INF Pourquoi ?
Pourquoi ne peut-il pas être placé dans des bibliothèques externes ? Tous mes autres packages peuvent être utilisés en externe. Pourquoi ces deux-là ne sont-ils pas accessibles ?
J'ai créé une nouvelle bibliothèque sous WEB-INF, puis j'y ai mis ces deux packages. Elle était là lorsque je l'ai publiée, puis elle a fonctionné normalement Quelle est la particularité de ces deux packages ? Pourquoi devez-vous mettre WEB-INF en dessous

phpcn_u1582phpcn_u15822750 Il y a quelques jours1050

répondre à tous(5)je répondrai

  • 某草草

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

    L'application de publication de plug-ins Tomcat d'idea est cet artefact


    Vérifiez si l'artefact de votre projet actuel n'a pas le package jar dont il dépend dans les bibliothèques externes



    Ensuite, ajoutez lib à cet artefact (dans le projet

    , mettez ce dossier comme bibliothèque jar dans les bibliothèques externes) web/WEB-INF/lib下放入jar包会自动加到Artifact里面。这就是为什么你说的为什么放到WEB-INF才行的原因。当然你完全可以把依赖jar包还放在External Libraries,在Artifact这里添加上就行,不过还是推荐把依赖的jar包放在项目web/WEB-INF/lib

    Le problème de dépendance a été résolu après le démarrage de Tomcat

    répondre
    0
  • 怪我咯

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

    Tout d'abord, permettez-moi de vous corriger. Il s'agit du répertoire WEB-INF, pas WEB-INFI. WEB-INF目录,不是WEB-INFI。

    发布之前,你是用maven对项目打包的吗?如果maven中有commons-fileupload的依赖,打包时会放在WEB-INF/lib

    Avez-vous utilisé maven pour empaqueter le projet avant de le publier ? S'il existe une dépendance commons-fileupload dans maven, elle sera placée sous WEB-INF/lib lors de l'empaquetage. 🎜

    répondre
    0
  • PHPz

    PHPz2017-05-17 10:00:05

    Packages dépendants de l'exécution

    répondre
    0
  • PHPz

    PHPz2017-05-17 10:00:05

    Le package jar placé dans WEB-INF/lib, même s'il n'est pas introduit en tant que dépendance, sera inclus par défaut dans le package war final lors du packaging (l'emplacement est toujours WEB-INF/lib). Quant au package jar qui ne se trouve pas sous WEB-INF/lib, il doit être introduit en tant que dépendance avant que le package war final ne soit saisi lors du package (il sera toujours situé dans WEB-INF/lib). Pour la méthode d'introduction de la dépendance, merci de vous référer à la réponse au 3ème étage

    répondre
    0
  • 我想大声告诉你

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

    J'ai également rencontré ce problème. J'ai constaté que le Jar d'importation n'était pas ajouté à WEB-INF/lib lors de sa sortie. Je ne pouvais vraiment pas voir le Jar correspondant dans le répertoire Tomcat, je l'ai donc copié et collé à chaque fois. après l'importation Sous WEB-INF/lib, parfois même coller directement dans les Bibliothèques Référencées et WEB-INF/lib sans importer.

    répondre
    0
  • Annulerrépondre