>  Q&A  >  본문

java-web - Java WEB: WEB-INF 아래에 어떤 종류의 jar 패키지를 배치해야 합니까? 일부 패키지가 외부에 배치되면 Tomcat을 시작할 수 없습니다.

jar 패키지는 commons-fileupload-1.3.2.jar과 commons-io-2.5.jar 두 개가 있습니다
처음에는 이 두 패키지를 다른 패키지, 즉 외부 라이브러리처럼 외부에 넣어두었습니다.
해당 클래스를 작성하고 서블릿을 구성합니다. web.xml

에 매핑 으아아아

그런 다음 Tomcat이 시작되지 않으면 프롬프트:

위험: ContainerBase.addChild: 시작:
org.apache.catalina.LifecycleException: 구성 요소를 시작하지 못했습니다.

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

질문:
commons-fileupload와 commons-io라는 두 개의 jar가 WEB-INF 아래에 배치되어야 하나요?
외부 라이브러리에 배치할 수 없는 이유는 무엇인가요? 다른 모든 패키지는 외부에서 사용할 수 있습니다. 왜 이 두 패키지에 액세스할 수 없나요?
WEB-INF 아래에 새 lib를 만든 다음 이 두 패키지를 여기에 넣었습니다. 제가 출시했을 때 거기에 있었고 정상적으로 실행되었습니다. 이 두 패키지의 특별한 점은 무엇인가요? 왜 그 밑에 WEB-INF를 넣어야 할까요

phpcn_u1582phpcn_u15822683일 전981

모든 응답(5)나는 대답할 것이다

  • 某草草

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

    idea의 tomcat 플러그인 퍼블리싱 애플리케이션은 바로 이 Artifact

    현재 프로젝트의 아티팩트에 외부 라이브러리에 의존하는 jar 패키지가 없는지 확인하세요. #
    그런 다음 이 아티팩트에 lib를 추가합니다(프로젝트 에서 이 폴더를 외부 라이브러리의 jar 라이브러리로 넣습니다)
    #🎜🎜 #

    Tomcat을 시작한 후 종속성 문제가 해결되었습니다

    회신하다
    0
  • 怪我咯

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

    먼저 정정하자면 WEB-INFI가 아닌 WEB-INF 디렉터리입니다. WEB-INF目录,不是WEB-INFI。

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

    게시하기 전에 프로젝트를 패키징하기 위해 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
  • 취소회신하다