프로젝트 패싯 동적 웹 모듈의 버전을 3.0으로 변경할 수 없습니까?


329

maven을 사용하여 Eclipse에서 동적 웹 애플리케이션을 작성 중입니다. 나는 일부 폴더가 좋아 추가 src/test/java하고 src/test/resources. 또한 JavaSE-1.7을 얻기 위해 Java Build Path의 라이브러리를 변경했습니다. 여기까지는 괜찮습니다.

프로젝트 패싯 동적 웹 모듈을 변경하려고 할 때 문제가 발생했습니다. 같은 장소에서 Java를 1.7로 변경했습니다. 그리고 그것은 여전히 ​​말해, 프로젝트 패싯 동적 웹 모듈의 버전을 3.0으로 변경할 수 없습니다.

나는 생각하는 변화에 영향을 미치는 모든 것을 바꿨다.


확인. 나는 그것에 대해 죄송합니다. New Maven Project를 만들 때 아키타 입은 maven-archetype-webapp이고, 프로젝트를 생성 한 후 프로젝트 패싯에서 Dynamic Web Module은 2.3입니다. 동적 웹 모듈의 버전을 3.0으로 변경하고 싶습니다. '프로젝트 패싯 동적 웹 모듈의 버전을 3.0으로 변경할 수 없습니다'
EdgarZeng


Eclipse Kepler에서 'Dynamic Web Module'패싯을 마우스 오른쪽 단추로 클릭하면 '잠금 해제'옵션이 표시됩니다. 잠금을 해제 한 후 패싯 버전을 변경할 수있었습니다. 정보 용으로 만 사용하십시오.
Jonathan

이클립스 버그입니까?
CDT

답변:


311

나는 내 업데이트 web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>Servlet 3.0 Web Application</display-name>
</web-app>

그리고 Maven-> Update Project ...


64
web.xml 업데이트가 작동하지 않았습니다. @enkor에 의해 주어진 솔루션은 작동합니다 stackoverflow.com/a/18632054/378633
jplandrain

5
여기에 3.1 web.xml 파일에 대한 올바른 헤더는 <? XML 버전 = "1.0"인코딩 = "UTF-8"?> <웹 응용 프로그램의 xmlns :이 xsi = " w3.org/2001/XMLSchema-instance "의 xmlns = " xmlns.jcp.org/xml/ns/javaee"xsi : schemaLocation = " xmlns.jcp.org/xml/ns/javaee xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"id = " WebApp_ID "version ="3.1 ">
Jakob Alexander Eichler

3
web.xml이없는 프로젝트는 어떻습니까? :)
Anand Rockzz

version 속성을 3.0으로
변경해도

위 및 아래 솔루션 중 아무것도 작동하지 않으면이 링크를 100 % 통과하지 않으면 작동합니다.
Raki

587

다른 방법은 프로젝트 패싯 구성 파일 자체를 편집하는 것입니다. org.eclipse.wst.common.project.facet.core.xml

이 줄의 동적 웹 모듈 버전을 3.0으로 변경하십시오. <installed facet="jst.web" version="2.5"/>

그리고:

  1. 프로젝트 탐색기 패널 에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오 .
  2. 선택 메이븐»업데이트 프로젝트 (또는 누릅니다 Alt+F5)

이 파일 .settings은 Eclipse 프로젝트 의 디렉토리에 있습니다.


3
감사합니다. 실제로 위와 같은 다른 작업을 수행하고 web.xml에서 웹 모듈 버전을 변경해야한다고 생각합니다. 그렇지 않으면 'Deployment Descriptor'버전이 3.0으로 변경되지 않습니다. 그리고 maven 플러그인의 버그입니까?
EdgarZeng

13
이것은 프로젝트에서 web.xml없이 갈 때이 문제를 해결하는 유일한 방법 인 것 같습니다.
Shawn Sherwood

3
나는 이미 web.xml에 3.0을 가지고 있었고 STS는 여전히 업데이트에 실패했으며 mvn 업데이트도 도움이되지 않았습니다. 그러나이 방법은 효과적입니다.
MiB

2
이것은 실제로 도움이되었습니다-> org.eclipse.wst.common.project.facet.core.xml-> 모든 항목 제거-> maven 업데이트 프로젝트로 이동하십시오.
virtuvious

7
application / project .settings 폴더에서 org.eclipse.wst.common.project.facet.core.xml 파일을 찾을 수 있습니다.
Rushi Shah

175

나는 당신과 같은 문제가 있다고 생각합니다. 내 web.xml의 버전은 2.5 였고 프로젝트에는 (프로젝트-> 속성-> 프로젝트 패싯-> 마우스 오른쪽 버튼을 클릭) Dynamic Web Module 2.3이있었습니다.

2.3에서 2.5로 버전을 변경하려고 시도했지만 ECLIPSE가 허용하지 않았습니다. 솔루션 : 동적 웹 모듈이라는 제목 아래의 확인 표시를 제거하고 저장했으며 프로젝트 업데이트가있었습니다. 올바른 버전으로 상자에 자동으로 다시 깨우기가 이루어집니다. Eclipse Kepler를 사용합니다.

추신 : 아래에서 Jonathan의견을 살펴보십시오 . 매우 유용합니다.


1
Great! it는 내 문제를 해결했지만 동적 모듈을 처음 설정하도록 허용하지 않은 이유를 말해 줄 수 있습니다.
Suresh

26
@Suresh, 버전 변경이 허용되지 않는 이유는 잠겨 있기 때문입니다. 'Dynamic Web Module'패싯을 마우스 오른쪽 단추로 클릭하면 '잠금 해제'옵션이 표시됩니다. 잠금을 해제하고 DWM 패싯을 선택 취소하고 패싯을 다시 적용한 후 프로젝트 메이븐 업데이트를 수행하면 오류가 사라졌습니다.
Jonathan

2
+1. 이 매우 중요한 점이 없으면 다른 사람들이 여기에 대한 대답은 아무것도 아닙니다. 나는 조나단의 의견은 대답에 포함되지 않아야한다고 생각합니다.
Gangnus

1
+1 @Jonathan 당신의 팁이 일을했습니다. 이것을 답변으로 게시해야하며 이클립스로 올려야합니다!
aksappy

제 경우에는 이것이 웹 모듈 pom에 Dnamic 웹 모듈에 대해 다른 버전을 설정 한 이유가 작동하므로 프로젝트 구성과 충돌합니다
ocrampico

49
  1. 프로젝트 폴더를 클릭하십시오.
  2. 창>보기 표시> 네비게이터로 이동
  3. 네비게이터로 이동하여 .settings 폴더를 펼치십시오.
  4. org.eclipse.wst.common.project.facet.core.xml파일 열기

    <?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
      <fixed facet="wst.jsdt.web"/>
      <installed facet="jst.web" version="2.3"/>
      <installed facet="wst.jsdt.web" version="1.0"/>
      <installed facet="java" version="1.8"/>
    </faceted-project>
  5. 이처럼 버전을 변경하십시오 <installed facet="jst.web" version="3.1"/>

  6. 저장
  7. 프로젝트를 업데이트하십시오. 프로젝트 폴더> Maven> 프로젝트 업데이트> 프로젝트를 선택하고 '확인'을 클릭하십시오.

이게 나에게 효과가 있었다.


43

나는 같은 문제가 있었고 프로젝트를 제거하고 다시 추가하려고했습니다. 트릭은 .settings디렉토리 를 제거하는 것이 었습니다 .


2
나는 또한 이것을해야했다. Java 기반 구성으로 Spring 웹 프로젝트를 사용하고 있었으므로 web.xml을 업데이트 할 수 없었습니다.
bcody

.setting을 삭제 한 후 왜 효과가 있었는지 설명해 주시겠습니까?
Abhijit Chakra

.settings 디렉토리에는 많은 것들이 포함되어 있으며 시간이 지남에 따라 일부가 변경되었을 수 있습니다. 이 동작에 어떤 부분이 영향을 미치는지 정확히 알지 못하지만 재설정과 같습니다. 다른 답변은 나에게 도움이되지 않았지만이 답변은 나에게 효과적이었습니다. 그리고이 상황에서 내가 유일한 사람은 아닌 것 같습니다.
Adrian Ber

나를 위해 일한이 오류가 발생했습니다 : "프로젝트 패싯 EAR의 버전을 1.3으로 변경할 수 없습니다."
Giovanni P.

나를 위해 일했다! "프로젝트 패싯 동적 웹 모듈의 버전을 3.0으로 변경할 수 없습니다"오류가 발생했습니다
Anup Ghosh

24

지우다

.settings 
.classpatch 
.projejct 
target

maven 프로젝트를 다시 가져옵니다.


Maven Project를 다시 가져 오려면 어떻게합니까? 나는 이것에 익숙하지 않다.
Daniel Brower 2016 년

21

나를 위해 일한 것 :

  1. Java를 1.8 (또는 1.7)로 변경

POM에서 <build>섹션의 컴파일러 플러그인을 버전 1.8 (또는 1.7)로 설정해야 합니다.

  <build>
    ...
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.6.0</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>  
      </plugins>    
  </build>

Java 빌드 변경에 1.8이 표시되는지 확인하십시오. 그렇지 않은 경우-편집을 클릭하고 원하는 것을 선택하십시오.

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

  1. 3.0이 버전 및 링크에서 참조되도록 web.xml을 수정하십시오.

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

  1. 프로젝트 패싯에서 Java를 1.8로 설정했는지 확인하십시오.

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

  1. 이 단계에서 여전히 동적 웹 모듈을 변경할 수 없습니다.

변경하는 대신 :

a) 동적 웹 모듈의 선택을 해제 하십시오

b) 신청

c) 다시 확인하십시오. 새로운 버전 3.0을 설정해야합니다. **

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

적용하고 다시 확인한 후 :

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

도움이 되었기를 바랍니다.


15

프로젝트속성을 마우스 오른쪽 버튼으로 클릭하십시오 . 에 프로젝트 패싯 , 선택 해제 동적 웹 모듈 (버전은해야합니다 3.1 ) 및 선택 해제 JSF를 (버전은 2.2 ).

이것을 변경하십시오 :

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

이에:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

그런 다음 접두사 등을 제거하십시오 param-name.

마지막으로 Maven- > Update project .


8

네비게이터보기를 열고 다음 단계를 수행하십시오.

  1. (윈도우>보기 표시> 기타> 일반) 프로젝트 아래에 .settings 폴더가 있는지 확인하고 확장 한 다음 "org.eclipse.wst.common.project.facet.core.xml"파일을 열고 아래의 내용을 변경하고 파일을 저장하십시오.
  2. 이 줄의 동적 웹 모듈 버전을 2.5로 변경하십시오.
  3. 이 줄의 Java 버전을 1.5 이상으로 변경하십시오.

5
"보기 표시"대화 상자의 "일반"폴더에서 선택해야하는보기를 잊어 버렸습니다. "네비게이터"보기입니까?
Roberto Linares

6

프로젝트 구조 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "version ="3.0 "> Servlet 3.0 웹 응용 프로그램에서 web.xml을여십시오.

web.xml 파일을 업데이트하십시오 (예 : change version = "2.5").

또한 프로젝트 .settings 파일에서 org.eclipse.wst.common.project.facet.core.xml 파일을 변경하십시오. 1 단계 : 창>보기 표시> 기타> 일반> 탐색기

  1. 프로젝트 디렉토리 아래에 .settings 폴더가 있습니다

  2. 이 줄의 동적 웹 모듈 버전을 2.5로 변경하십시오. 4.이 줄의 Java 버전을 1.5 이상으로 변경하십시오.

이제 프로젝트를 새로 고치고 서버에서 실행되도록 설정하십시오.

솔루션 http://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-eclipse.html에 대한 블로그를 따르십시오

솔루션은 이미지 일러스트레이션으로 생성됩니다


이 링크가 질문에 대한 답변을 제공 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않을 수 있습니다.
Micha

crunchify.com/… 과 같이 pom.xml 파일을 변경했습니다 . 그러나 그것은 충분하지 않았습니다. 또한 권장 사항에 따라 .settings 폴더를 열고 파일 또는 .eclipse.wst.common.project.facet.core.xml 파일을 편집해야했습니다.
블랙 잭

6

가장 좋고 간단한 단계는이 문제를 해결했습니다 .1) 속성 -> 프로젝트 패싯 -> Dynamic Web Module 의 확인란 선택 취소 / 표시 해제 -> 적용 2) 이제 원하는 버전으로 변경 적용 3) 동적 웹 모듈 확인란 선택 .. – 이제 끝났습니다 -


1
잘 작동했지만 이것의 결과는 무엇입니까?
sg28 1

4

그것들은이 문제를 해결하는 또 다른 방법입니다 (문제를 해결하는 데 도움이되기를 바랍니다)

문제

프로젝트 패싯 동적 웹 모듈 2.3 버전을 3.0으로 변경할 수 없습니다

해결책

  1. 프로젝트 위치로 이동하십시오 (예 : D : / maven / todo)
  2. .setting 폴더로 이동
  3. 이 파일을 확인하십시오 : org.eclipse.wst.common.project.facet.core.xml
  4. 파일을 열고 "jst.web"특성을 2.3에서 3.0으로 변경 한 후 저장하십시오.
  5. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트를 새로 고치고 maven을 업데이트하십시오.
  6. 끝난!!!....

3

web.xml 트릭은 컨테이너가 지원하는 것과 상관없이 WTP에 특정 서블릿 버전을 사용하고 있음을 명시 적으로 알리기 때문에 작동합니다.

필자의 경우 Maven 프로젝트에서 주석 구성을 사용하고 있으며 web.xml 파일이 없습니다. web.xml이 없으면 WTP는 Maven 종속성을 확인하여 사용할 서블릿 버전을 결정합니다. 필자의 경우 다음을 정의했습니다.

<dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-api</artifactId>
  <version>7.0</version>
  <scope>provided</scope>
</dependency>

6.0으로 변경하면 문제가 해결되었으며 이제 JavaEE 7의 기본값 인 3.1 대신 Servlet 3.0을 사용하고 있습니다. Tomcat 8에서 Tomcat 7로 이동해야했기 때문에 Tomcat 7은 JavaEE 6 웹 프로파일 만 지원합니다. 이제 일이 훌륭하게 작동합니다.


3

web.xml을 편집하고 .settings 폴더의 파일을 변경해도 같은 문제가 발생했습니다. 내 솔루션은 pom.xml을 편집하여 원하는 Java 버전을 사용하도록 maven 컴파일러 플러그인을 직접 지정하는 것입니다.

  <build>
    ...
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>    
  </build> 

이제 Maven-> 프로젝트 업데이트를 실행 한 후 속성-> 프로젝트 패싯-> 동적 웹 모듈 버전에서 서블릿 버전을 변경하거나 org.eclipse.wst.common.project.facet.core를 수동으로 편집하여 서블릿 버전을 변경할 수 있습니다. 프로젝트의 .settings 폴더에 xml이 있습니다.


2

필자의 경우 web.xml은 dtd에 의해 참조되었습니다. 이것을 시드니가 게시 한 것과 같은 xsd 참조로 변경 한 후에 효과가있었습니다.


2

동일한 문제가 발생하여 .settings 폴더를 삭제하면 문제가 해결되었습니다.


1

Eclipse (Mars)의 프로젝트 패싯 동적 웹 모듈 버전을 변경할 수 없었던 문제에 대한 해결책은 다음과 같습니다.

  • 메이븐 자연 비활성화
  • web.xml 네임 스페이스가 올바른 버전을 가리키는 지 확인하십시오.
  • 메이븐 자연 재 활성화
  • Maven»프로젝트 업데이트 (또는 Alt + F5를 누름)

1

시드니의 답변이 여전히 도움이되지 않으면 아래에서 시도해보십시오. 시드니의 답변을 따른 후 속성> 프로젝트 패싯으로 이동하여 동적 웹 모듈을 선택 취소 한 다음 web.config와 일치하도록 버전을 변경 한 다음 다시 선택하십시오. 적용> 저장 후 메이븐 업데이트.

web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="Web_App_1" version="3.1">

<display-name>JavaServerFaces</display-name>

<!-- Change to "Production" when you are ready to deploy -->
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

<!-- Welcome page -->
<welcome-file-list>
    <welcome-file>jsfs/hello.xhtml</welcome-file>
</welcome-file-list>

<!-- JSF mapping -->
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<!-- Map these files with JSF -->
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>jsfs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>


1

나는 여기서 많은 답변을 시도했지만 그중 아무것도 나를 위해 일하지 않았다. 그런 다음 여기에서 내 문제에 대한 기사를 찾았 습니다 . 나도 그것을 공유 할 생각했다.

다음은 간단한 단계입니다.

  1. 컴파일러 준수 수준을 설정하십시오.
  2. 프로젝트 패싯 업데이트
  3. 환경 설정에서 설치된 JRE 업데이트
  4. java 1.7을 사용하기 위해 pom.xml에 구성 추가
  5. Maven에서 프로젝트 업데이트.

1

maven eclipse 웹 프로젝트의 경우 동적 웹 모듈 버전을 변경하면 세 곳을 확인해야합니다. 일식을 사용하는 경우 다음을 확인한 후 1) web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

2) 메이븐 :

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>   ## ensure you have tomcat 7 not other version
</dependency>

<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.0</version>
      <configuration>
            <source>1.7</source> ## at least 6
            <target>1.7</target>
      </configuration>
</plugin>

3) 일식 빌드 경로와 컴파일러 버전은 1.7입니다

여전히 maven에서 오류 마커가 있습니다.

cannot change version of project facet dynamic web module to 3.0 one or more constrants have not been satisfied

그런 다음 동적 웹 모듈을 선택 취소 한 후 다시 확인할 수 있습니다. 이클립스 파일의 .settings가 어떻게 든 손상 되었기 때문이라고 생각합니다. 두 번째 팁 tomcat 어떤 버전 이 좋은 메모인지에 대해.


1

일반 Java 프로젝트를 Maven Project 로 변환하려고 할 때이 오류가 발생했습니다 .

내가 한 것은 내 프로젝트에 필요한 Java 컴파일러 버전을 결정하는 것이 었습니다. 내 프로젝트의 경우 최소 Java 버전은 1.8입니다.

1.8IDE 보다 낮은 버전으로 버전을 낮추면 가져온 라이브러리를 인식하지 못한다고 불평하기 시작하므로 최소 Java 버전을 다음과 같이 결정합니다.1.8

1. Right click your project
2. Go to Properties
3. Left hand-side panel, click "Project Facets"
4. For Java, set the version according to your minimum version

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

이제 Java 컴파일러 버전이 프로젝트 패싯에서 설정 한 것과 동일한 Java 버전을 사용하는지 확인하십시오.

1. Right click your project
2. Go to Porperties
3. Left hand-side panel, click "Java Compiler"
4. Make sure Java Compiler version is the same. 
5. If it is not the same, change the version. (Uncheck "Use compliance from execution environment' if needed to make the changes.

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

변경 후 오류를 해결해야합니다. 오류가 계속 발생하면 프로젝트-> Maven-> 프로젝트 업데이트를 마우스 오른쪽 단추로 클릭하십시오.



0

org.eclipse.wst.common.project.facet.core.xml 파일을 열고 jst.web 버전을 3.0으로 변경하십시오. 또한 web.xml을 버전 3.0으로 업데이트하십시오. 프로젝트를 저장하고 업데이트하십시오. 도움이 되었기를 바랍니다. Eclipse Juno를 사용하고 있습니다.


0

이것은 pagurix의 답변에 대한 변형이지만 Eclipse Mars를 사용합니다.

web.xml 파일을 web.bak로 변경하십시오

오류를 무시하고 다음에 다시 생성합니다.

프로젝트 속성-> 프로젝트 패싯으로 이동하여 동적 웹 모듈 버전을 필요한 것으로 설정하십시오. Eclipse는 이제 저장할 수 있습니다.

이제 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오. Java EE 도구-> 배치 디스크립터 스텁 생성을 선택하십시오.

필요한 버전의 새 web.xml이 생성됩니다.

새 web.xml을 열고 XML 헤더와 완전한 web-app 여는 태그를 원래 web.bak에 복사하고 새 web.xml을 삭제 한 후 web.bak의 이름을 web.xml로 다시 바꾸십시오.

끝난.


0

Web Module 3.0안에 web.xml있었지만 안에 properties>Dynamic Web Module있었다3.1

나는 web.xml이것을 다음과 같이 바꿨다 .

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

이 변경 후 다음을 수행하십시오. right click on project>Maven>Update Project...


0

이 버전의 문제는 프로젝트-> 속성-> 프로젝트 패싯을 마우스 오른쪽 버튼으로 클릭하고 동적 웹 모듈을 마우스 오른쪽 버튼으로 클릭-> 잠금 해제-> 선택 취소-> 2.5 버전 선택-> 적용-> 메이븐 업데이트


0

올바른 버전, xsd 위치로 web.xml수정 하고 올바른 버전으로 org.eclipse.wst.common.project.facet.core.xml 을 수정하고 maven 업데이트를 수행 하여 문제를 해결했습니다 .


0

maven을 업데이트 하면 나를 위해 일했습니다.

프로젝트를 선택한 다음 Alt + F5 를 누르고 프로젝트를 선택하고 확인을 클릭하십시오.


0

나는 다른 치료법과 동일한 증상을 보였습니다. 새로운 JSF 웹 소켓 훅을 즐기기 위해 JSF 2.2.4 / Spring 3.0 웹앱을 JSF 2.3으로 업그레이드하려고했지만 Eclipse (실제로 STS)는 작동하지 않습니다. Eclipse의 프로젝트 패싯에서 JSF 2.3은 이전 답변에서 지시 한대로 org.eclipse.wst.common.project.facet.core.xml 파일을 직접 편집 할 때까지 사용할 수 없었습니다. 가장 높은 것은 2.2입니다.

여기에 내가 뛰었던 농구대가 있습니다. 나는 기본적 으로이 모든 구성을 이해하지 못하기 때문에이 모든 것이 필요하다는 것을 모르겠습니다.

Eclipse에서 나는 종종 하나 이상의 설치된 패싯의 구현을 사용할 수 없을 때 패싯 프로젝트를 수정하면 프로젝트가 손상 될 수 있다는 무서운 경고를 받았다. 계속 하시겠습니까? " 이로 인해 더 자주 커밋을 수행했지만 손상이 발생하지 않았습니다.

  1. POM, Eclipse 컴파일러 및 Eclipse 프로젝트 패싯에서 JDK를 1.7에서 1.8로 업그레이드하십시오.
  2. 다음 Maven 종속성을 업데이트하십시오.

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
        <scope>provided</scope>
    </dependency>

    ...에서 :

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.0</version>
        <scope>provided</scope>
    </dependency>

... 그리고 ...

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.2.4</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.4</version>
    </dependency>

...에서 :

    <dependency>
        <groupId>javax.faces</groupId>
        <artifactId>javax.faces-api</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>2.0</version>
    </dependency>

web.xml 네임 스페이스 선언을 다음에서 업데이트해야했습니다.

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">

...에서 :

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

프로젝트 패싯-> 동적 웹 모듈을 2.5에서 3.0으로 업데이트해야했습니다. 3.1을 시도했지만 오류가 발생했습니다.

이 프로세스에서 나는 종종이 글의 제목 인 "프로젝트 패싯 동적 웹 모듈의 버전을 3.0으로 변경할 수 없습니다"라는 오류를 얻었으며 Eclipse는 프로젝트를 컴파일하거나 프로젝트 패싯에서 JSF 2.3을 제공하는 것을 거부했습니다. 오류가 사라지도록 org.eclipse.wst.common.project.facet.core.xml 파일을 편집했을 때 Eclipse는 프로젝트 패싯에서 JSF 2.3을 제공했으며 프로젝트는 Tomcat 9.0.8에서 컴파일되어 정상적으로 실행되었습니다. 그러나 프로젝트 패싯은 여전히 ​​"프로젝트 패싯 jst.jsf 버전 2.3의 구현을 찾을 수 없습니다. 기능이 제한 될 것"이라고 경고했습니다. 필자는 이것이 POM에 선언 된 JSF 2.3 구현을 찾을 수 없기 때문에 자동 완성 및 기타 Eclipse 편의를 사용할 수 없다는 것을 의미한다고 생각합니다.

이것이 누군가를 돕기를 바랍니다. Google 검색은 Ali Bassam과 간접적으로 BalusC의 도움 으로이 게시물 만 작성 했습니다 .


0

나는 같은 문제를 겪었다. 방금 작업 공간에서 프로젝트를 제거한 다음 "일식 파일 / 폴더 (예 : .project, .settings 등)를 정리 한 다음 maven 프로젝트를 다시 가져 와서 작동했다.

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