나는 다른 치료법과 동일한 증상을 보였습니다. 새로운 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에서 나는 종종 하나 이상의 설치된 패싯의 구현을 사용할 수 없을 때 패싯 프로젝트를 수정하면 프로젝트가 손상 될 수 있다는 무서운 경고를 받았다. 계속 하시겠습니까? " 이로 인해 더 자주 커밋을 수행했지만 손상이 발생하지 않았습니다.
- POM, Eclipse 컴파일러 및 Eclipse 프로젝트 패싯에서 JDK를 1.7에서 1.8로 업그레이드하십시오.
다음 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의 도움 으로이 게시물 만 작성 했습니다 .