मुझे एक अलग इलाज के साथ एक ही लक्षण था। मैं अपने JSF 2.2.4 / स्प्रिंग 3.0 वेब अप को JSF 2.3 में अपग्रेड करने का प्रयास कर रहा था ताकि नए JSF वेबसोकेट हुक का आनंद लिया जा सके और ग्रहण (वास्तव में STS) सहयोग नहीं करेगा। ग्रहण के प्रोजेक्ट पहलुओं में, JSF 2.3 कभी भी उपलब्ध नहीं हुआ, जब तक कि मैंने सीधे org.eclipse.wst.common.project.facet.core.xml फ़ाइल को सीधे संपादित नहीं किया, जैसा कि पिछले उत्तरों में निर्देशित था - उच्चतम यह 2.2 था।
यहाँ हुप्स हैं जिनके माध्यम से मैं कूद गया। मुझे नहीं पता कि ये सभी आवश्यक थे क्योंकि मैं मूल रूप से इस सभी कॉन्फ़िगरेशन को नहीं समझता हूं।
ग्रहण में मुझे अक्सर एक डरावनी चेतावनी मिलती है, "जब एक या एक से अधिक स्थापित पहलुओं के कार्यान्वयन उपलब्ध नहीं होते हैं तो एक सुविचारित परियोजना को संशोधित करने से संभावित रूप से एक दूषित परियोजना हो सकती है। क्या आप सुनिश्चित हैं कि आप आगे बढ़ना चाहते हैं?" इसने मुझे और लगातार कमिट करने के लिए प्रेरित किया लेकिन कोई भ्रष्टाचार नहीं हुआ।
- POM, ग्रहण संकलक और ग्रहण परियोजना पहलुओं में JDK को 1.7 से 1.8 तक अपग्रेड करें।
निम्नलिखित मावेन निर्भरता को अद्यतन करें:
<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 में नहीं बदल सकता" और एक्लिप्स ने परियोजना को संकलित करने या प्रोजेक्ट पहलुओं में JSF 2.3 की पेशकश करने से इनकार कर दिया। जब मैंने org.eclipse.wst.common.project.facet.core.xml फ़ाइल को संपादित किया, जैसा कि निर्देश दिए गए कि त्रुटियां गायब हो गईं, तो ग्रहण ने परियोजना पहलुओं में JSF 2.3 की पेशकश की, और परियोजना को संकलित किया और Tomatat 9.0.8 पर ठीक से चलाया। हालाँकि, प्रोजेक्ट पहलुओं ने अभी भी चेतावनी दी है "परियोजना के संस्करण 2.3 के कार्यान्वयन के लिए पहलू js.jsf नहीं पाया जा सकता है। कार्यक्षमता सीमित होगी।" मुझे इस पर संदेह है कि इसका मतलब यह है कि स्वतः पूर्ण और अन्य ग्रहण योग्यताएं उपलब्ध नहीं होंगी क्योंकि यह मेरे POM में घोषित JSF 2.3 कार्यान्वयन नहीं पा सकता है।
आशा है कि यह किसी की मदद करता है। Google ने अली बासम और अप्रत्यक्ष रूप से BalusC द्वारा इस पोस्ट को केवल खोजा जिससे मदद मिली।