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.