web.xml이없고 <failOnMissingWebXml>이 true로 설정되었습니다.


142

치다:

여기에 이미지 설명을 입력하십시오

Eclipse 에서 간단한 Maven 프로젝트를 만들면 다음 오류가 발생합니다.

web.xml이 누락 <failOnMissingWebXml>되어 true로 설정되었습니다.

이 문제를 어떻게 해결할 수 있습니까?


5
을 추가해야합니다 maven-war-plugin. 이는 해당 구성 특성의 기본값이 true 인 내재적 플러그인입니다. 명시 적으로 선언하고 구성 특성을 false로 설정해야합니다. 자세한 내용은 여기를 참조 하십시오 . 또는 당신은 빈 web.xml에 추가 할 수 있습니다
— 폴 Samsotha

답변:


181

다음과 같이 할 수도 있습니다.

  1. Project Explorer 에서 Deployment Descriptor 를 마우스 오른쪽 버튼으로 클릭하십시오 .
  2. 배치 디스크립터 스텁 생성을 선택 하십시오 .

그것은 생성 WEB-INF에 있는 폴더 SRC / 메인 / 웹 애플리케이션 과 web.xml을 거기에 있습니다.

여기에 이미지 설명을 입력하십시오


39
빌드 도구에 오류가 발생하기 때문에 상용구를 코드에 추가하지 않는 것이 좋습니다.
— Martijn Burger

1
@MartijnBurger 위 해킹의 가능한 영향에 대해 알려주고 가능한 경우 다른 대안을 추가 할 수 있습니까? -저 같은 초보자 프로그래머를 도울 것입니다. 감사.
— Sendhilkumar Alalasundaram

7
대안은 아래 답변을 참조하십시오. 위의 해결책은 잘못된 것이 아니라 최종 제품을 가능한 한 깨끗하게 만들기 위해 항상 노력해야한다는 것입니다. 위의 솔루션을 사용하면 최종 제품에 불필요한 web.xml 파일 이 생깁니다 . 대신 빌드 도구 (예 : maven)에서이 문제를 해결해야합니다.
— Martijn Burger

귀하는 또한 참조 할 수 있습니다 : eggsylife.co.uk/2009/12/20/…
— Satyendra

이것은 프로젝트에 불필요한 파일을 추가하고 다른 것은 web.xml approcah가 오래되었다는 것입니다. 이 오류를 제거하려면 다음 바로 받는다는 오류는 사라질 것입니다 업데이트 강제
— jitendra의 varshney

393

이것은 maven 오류입니다. 에 표시된 것처럼 웹 응용 프로그램이기 때문에 프로젝트에 web.xml 파일이 필요하다고 말합니다 <packaging>war</packaging>. 그러나 최근 웹 응용 프로그램의 경우 web.xml 파일은 완전히 선택 사항입니다. 메이븐은이 협약을 따라야합니다. pom.xmlmaven을 따라 잡기 위해 이것을 maven 에 추가하면 web.xml프로젝트에 쓸모없는 것을 추가 할 필요가 없습니다 .

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

이것은 web.xml최종 제품을 깨끗하게 유지하고 빌드 매개 변수를 변경하기 때문에 빈을 추가하는 것보다 더 나은 솔루션 입니다.

최신 버전의 maven의 경우 더 짧은 버전을 사용할 수도 있습니다.

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

28
이 답변은 다른 것보다 더 논리적입니다.
— smwikipedia

7
Servlet 3.0+ 환경에서을 사용하고 있으며이 Interface WebApplicationInitializer답변을 구현 한 경우 올바른 접근 방법입니다. 이 문제를 해결하는 현명한 방법입니다. 문제 web.xml없이 살기위한 조치를 취한 후 추가 할 필요는 없습니다!
— Geeb

4
이것은 빈 web.xml을 만드는 것보다 더 나은 대답입니다.
— dtortola

1
Maven> Update Project 없이도 작동합니다. 따라서 필요하지 않습니다.
— Lucky

13
아래 제안 된 대로 더 짧은 구성에 대한 답변을 업데이트하십시오 . <properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>더 자세한 플러그인 구성 설정 대신 충분 함을 포함 합니다.
— Olivier Cailloux

32

이미 / SRC / 메인 / 웹 애플리케이션 / WEB-INF 아래의 web.xml을 가지고 있지만 경우에 당신은 아직도 당신이 포함 된 경우 확인할 수있다 "web.xml을 누락하고 true로 설정되어있는"오류가 / SRC / 메인 / 웹 애플리케이션 에 프로젝트 소스.

수행 할 수있는 단계는 다음과 같습니다.

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성 대화 상자를 연 다음 "배치 어셈블리"를 열어 폴더 / src / main / webapp를 추가 할 수 있습니다. 설정을 저장 한 다음
  2. Eclipse 메뉴 프로젝트-> 정리 ...로 이동하여 프로젝트를 정리하면 오류가 사라집니다.

(이클립스 화성으로 이것을 확인했습니다)


"Eclipse Mars"에서 동일한 문제를 경험했으며 설명 된 솔루션이 완벽하게 작동합니다! 감사합니다
— Hartmut P.

나를 위해 작동하지 않았다 ... 나는 이미 그 폴더를 가지고 있고 심지어 web.xml을 false로 설정하려고 시도했다. 그것은 작동하지 않습니다 ....
— Baradwaj Aryasomayajula

19

Spring Tool Suite를 사용하는 경우 배치 디스크립터 스텁 생성 옵션이 Java EE 도구 아래로 이동되므로 다음을 수행 할 수 있습니다.

  1. 마우스 오른쪽 단추로 클릭 온 프로젝트
  2. Java EE 도구를 선택하십시오.
  3. 배치 디스크립터 스텁 생성 옵션을 선택 하십시오.

이것은 src / main / webapp / WEB-INF / 폴더 안에 web.xml 파일을 생성 할 것입니다. 물론 Maven의 pom.xml 파일에서 에러를 제거합니다.

여기에 이미지 설명을 입력하십시오


16

나도 같은 문제가있어. 공부하고 인터넷 검색을 한 후 문제를 해결했습니다.

프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고로 이동하여을 Java EE Tools선택하십시오 Generate Deployment Descriptor Stub. web.xml폴더에 생성 됩니다 src/main/webapp/WEB-INF.


3
빌드 도구에 오류가 발생하기 때문에 상용구를 코드에 추가하지 않는 것이 좋습니다.
— Martijn Burger

16

당신은 또한 덜 장황한 이것을 할 수 있습니다

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

가장 우아한 솔루션 IMHO. 참조 문서를 (그리고 오래된 일식 버그 지금, 일에이 솔루션을 방지 해결).
— Olivier Cailloux

9

Eclipse가 올바르지 않은 기본 webapp디렉토리를 인식 합니다. 따라서 우리는이를 명확하게 설정해야합니다 maven-war-plugin.

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>3.0.0</version>
      <configuration>
        <webappDirectory>src/main/webapp</webappDirectory>
      </configuration>
    </plugin>
  </plugins>
</build>

이 설정을 저장하면 오류를 제거해도 오류가 발생하지 않습니다. (왜 그런지 설명 할 수 없습니다.)


3

'src/main/webapp/WEB-INF/'올바른 폴더가 있지만 동일한 문제가 발생했습니다 web.xml.

Maven build..내가 실행 하여 (maven-> eclipse) 구성을 다시 만든 후에 문제가 사라졌습니다. mvn eclipse:clean eclipse:eclipse

그리고 Maven -> Update Project플러그인 특정 옵션을 추가 하는 데 사용 했습니다.


여기에도 git reset --hard HEAD
— Markus Barthlen을 사용했지만

감사합니다. 이것도 도움이되었습니다. 마우스 오른쪽 버튼으로 클릭-> Maven-> 프로젝트 업데이트
— trebor

2

이클립스에서만이 문제가 발생했으며 Maven 명령 줄에서 모든 것이 잘 작동했으며 web.xml 파일이 존재했습니다. 영향을받은 것은 성숙한 프로젝트 (이미 프로덕션 환경에 배포)였습니다. 내 문제는 일식 메타 데이터와 관련이 있습니다. 내 .settings / 폴더의 파일 중 하나에 문제가 있었으며, 특히 org.eclipse.wst.common.component가 변경되었습니다. 이 파일을 이전 버전으로 복원 할 수 있었으며 이로 인해 문제가 해결되었습니다.

이클립스 속성에서 배포 어셈블리를 클릭하려고 할 때 "현재 표시된 페이지에 유효하지 않은 값이 포함되어 있습니다"라는 오류가 발생했습니다.


나는 같은 상황에 있었고 내 .settings / 폴더에서 org.eclipse.wst.common.component 파일을 복원해야했고 프로젝트가 이제 작동합니다. 구성 요소의 내용이 삭제되었으므로 웹 경로가 아닙니다. xml 파일. 또한 Eclipse 속성에서 배포 어셈블리를 열려고 할 때 같은 오류가 발생했습니다. "현재 표시된 페이지에 잘못된 값이 있습니다." 나는이 답변을 약간 늦게 찾았지만 이것이 내가 그것을 해결하는 방법입니다. 좋은 대답 btw.
— Jorge Valdés

2

web.xml이있는 Project의 경우 Project- > Properties-> Deployment Assembly가 있으며 src / main / webapp 폴더를 추가 할 수 있습니다. 변경 사항을 저장하십시오. 프로젝트를 정리하여 진행하십시오.

web.xml이있는 프로젝트가없는 경우 속성 태그 아래의 pom.xml에서 failOnMissingWebXml을 false로 설정하십시오.


1

이 작업을 수행:

Deployment Descriptor를 마우스 오른쪽 단추로 클릭하고 Deployment Descriptor Stub 생성을 클릭하십시오.


0

web.xml을 만드는 것은 의미가 없습니다. elcipse는 원하는 경우에도 필요하지 않습니다. 서블릿 conatiner가 포함되어 있거나 spring-boot와 같이 xml cfg없이 생활하는 경우입니다. 프로젝트 레벨 또는 글로벌에서 일식으로 JavaEE (무용지물)를 막을 수 있습니다.

Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK

0

프로젝트를 선택하고 "Deployment Descriptor"옵션을 선택한 다음 "Deployment Descriptor 스텁 생성"을 선택하십시오.


0

단계 : 프로젝트를 선택하고 "Deployment Descriptor"옵션을 선택한 다음 "Deployment Descriptor 스텁 생성"을 선택하십시오. 문제는 항상 web.xml이 필요한 것은 아니며 pom.xml에 false를 추가하는 것이 가장 좋습니다


0

오른쪽 클릭 project --> New --> Other --> Standard Deployment Descriptor(web.xml)

1

다음을 눌러 다음 이 생성됩니다 WEB-INF와 폴더 web.xml의 파일 내부.

2

끝났습니다.



-1

-web / .setting & -admin / .setting 에서 파일을 제거하십시오.

1


-1

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Maven-> Update Project ... 로 이동 한 다음 Force Snapshots / Releases 업데이트 를 확인한 다음 Ok 를 클릭하십시오 . 끝났다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.