Tidak dapat mengubah versi segi proyek Dynamic Web Module menjadi 3.0?


329

Saya menggunakan pakar untuk membuat aplikasi web dinamis di Eclipse. Saya menambahkan beberapa folder seperti src/test/javadan src/test/resources. Saya juga mengubah perpustakaan di Java Build Path untuk mendapatkan JavaSE-1.7. Tidak apa-apa sampai disini.

Ketika saya mencoba untuk mengubah Modul Web Proyek Facet Dynamic sesuatu yang tidak beres. Saya telah mengubah Java menjadi 1,7 di tempat yang sama. Dan masih mengatakan kepada saya, tidak dapat mengubah versi segi proyek Dynamic Web Module menjadi 3.0.

Saya telah mengubah segala sesuatu yang akan mempengaruhi perubahan yang saya pikir.


BAIK. Saya minta maaf tentang itu. Pola dasar adalah maven-archetype-webapp ketika saya membuat Proyek Maven Baru, dan Modul Web Dinamis adalah 2,3 di Aspek Proyek setelah saya membuat proyek. Saya ingin mengubah versi Modul Web Dinamis menjadi 3.0, dan saya dapat 'Tidak dapat mengubah versi sisi proyek Modul Web Dinamis menjadi 3.0'
EdgarZeng


Di Eclipse Kepler, ketika saya mengklik kanan pada sisi 'Modul Web Dinamis', ia menampilkan opsi 'Buka Kunci'. Setelah un-locking, saya dapat mengubah versi facet. hanya untuk info.
Jonathan

Apakah ini bug untuk gerhana?
CDT

Jawaban:


311

Saya memperbarui 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>

dan kemudian hanya Maven -> Perbarui Proyek ...


64
Pembaruan web.xml tidak berhasil untuk saya. Solusi yang diberikan oleh @enkor bekerja: stackoverflow.com/a/18632054/378633
jplandrain

5
Berikut adalah tajuk yang valid untuk file 3.1 web.xml <? Xml version = "1.0" encoding = "UTF-8"?> <Aplikasi web 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
bagaimana dengan proyek tanpa web.xml? :)
Anand Rockzz

perubahan atribut versi ke 3.0 juga tidak berhasil bagi saya
tequilacat

Jika tidak ada solusi di atas dan di bawah ini jika tidak berhasil silakan melalui tautan ini 100% itu akan berhasil.
Raki

587

Cara lain adalah dengan mengedit file konfigurasi facet proyek itu sendiri: org.eclipse.wst.common.project.facet.core.xml

Ubah versi modul web dinamis di baris ini menjadi 3.0 - <installed facet="jst.web" version="2.5"/>

Lalu:

  1. Klik kanan pada proyek (di panel Project Explorer ).
  2. Pilih Maven »Perbarui Proyek (atau tekan Alt+F5)

Anda akan menemukan file ini di .settingsdirektori dalam proyek Eclipse.


3
Terima kasih. Sebenarnya saya pikir kita harus melakukan hal lain seperti di atas, ubah versi modul web di web.xml, jika tidak, versi 'Deployment Descriptor' tidak akan berubah menjadi 3.0. Dan apakah itu bug di plugin pakar?
EdgarZeng

13
Tampaknya ini adalah satu-satunya cara untuk menyelesaikan masalah ini ketika Anda pergi tanpa web.xml di proyek Anda.
Shawn Sherwood

3
Saya sudah memiliki 3.0 di web.xml dan STS masih gagal untuk memperbarui dan pembaruan mvn juga tidak membantu. Namun metode ini berhasil.
MiB

2
Ini membantu, benar-benar pergi ke -> org.eclipse.wst.common.project.facet.core.xml -> hapus semua entri -> proyek pembaruan maven.
virtuvious

7
Anda dapat menemukan file org.eclipse.wst.common.project.facet.core.xml di folder .settings aplikasi / proyek Anda.
Rushi Shah

175

Saya pikir saya memiliki masalah yang sama seperti Anda. Web.xml saya memiliki versi 2.5 sedangkan proyek memiliki (Klik kanan pada Project-> Properties-> Project Facets->) Dynamic Web Module 2.3.

Meskipun saya mencoba mengubah versi dari 2.3 ke 2.5 ECLIPSE tidak mengizinkannya. Solusi: Saya menghapus tanda centang di bawah judul Dynamic Web Module, saya menyimpan dan saya telah memperbarui Proyek. Secara otomatis kebangkitan kembali memasuki kotak dengan versi yang benar. Saya menggunakan Eclipse Kepler.

ps: lihat komentar Jonathan di bawah, sangat berguna.


1
Hebat! Itu menyelesaikan masalah saya tetapi dapatkah Anda memberi tahu saya mengapa awalnya tidak diizinkan untuk mengatur modul dinamis.
Suresh

26
@ Suresh, saya pikir masalah mengapa itu tidak mengizinkan untuk mengubah versi karena terkunci. Jika Anda mengklik kanan pada sisi 'Modul Web Dinamis', ia akan menampilkan opsi 'Buka Kunci'. Setelah un-locking, un-checking facet DWM, menerapkan kembali facet, dan melakukan pembaruan proyek, kesalahan hilang.
Jonathan

2
+1. Tanpa poin yang sangat penting ini, jawaban orang lain tidak ada artinya. Hanya saya pikir komentar Jonathan't harus dimasukkan ke dalam jawaban.
Gangnus

1
+1 @Jonathan Kiat Anda berhasil. Anda harus mempublikasikan ini sebagai jawaban dan kami juga harus menyampaikannya ke Eclipse!
aksappy

Dalam kasus saya ini bekerja mengapa di modul web pom ada diselesaikan versi lain untuk modul web Dnamic, jadi ini bertentangan dengan konfigurasi proyek
ocrampico

49
  1. Klik pada folder proyek Anda.
  2. Pergi ke Window> Show View> Navigator
  3. Pergi ke Navigator dan perluas folder .settings
  4. Buka org.eclipse.wst.common.project.facet.core.xmlfile

    <?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. Ubah versinya seperti ini <installed facet="jst.web" version="3.1"/>

  6. Menyimpan
  7. Perbarui proyek Anda. Klik kanan pada Folder Proyek> Maven> Perbarui Proyek> Pilih Proyek dan klik 'Oke'

Ini berhasil bagi saya.


43

Saya memiliki masalah yang sama dan saya bahkan mencoba untuk menghapus proyek dan menambahkannya lagi. Apa triknya adalah menghapus .settingsdirektori.


2
Saya juga harus melakukan ini. Saya menggunakan proyek web Spring dengan konfigurasi berbasis Java, jadi memperbarui web.xml tidak mungkin bagi saya.
bcody

Mengapa ini berhasil setelah menghapus .setting bisa tolong ditiru
Abhijit Chakra

Direktori .settings itu berisi banyak hal dan mungkin beberapa di antaranya berubah seiring waktu. Saya tidak tahu persis apa yang mempengaruhi perilaku ini, tetapi ini seperti reset. Tidak ada jawaban lain yang bekerja untuk saya, tetapi yang ini. Dan sepertinya saya bukan satu-satunya dalam situasi ini.
Adrian Ber

Bekerja untuk saya, saya memiliki kesalahan ini: "Tidak dapat mengubah versi segi proyek EAR menjadi 1.3."
Giovanni P.

Bekerja untukku! Saya mengalami kesalahan: "Tidak dapat mengubah versi segi proyek Dynamic Web Module menjadi 3.0"
Anup Ghosh

24

Menghapus

.settings 
.classpatch 
.projejct 
target

dan mengimpor lagi proyek pakar.


Bagaimana cara mengimpor lagi Proyek Maven. Saya baru dalam hal ini.
Daniel Brower

21

Apa yang berhasil untuk saya:

  1. Ubah Java menjadi 1,8 (atau 1,7)

Di POM Anda - Anda harus mengatur plugin kompiler ke versi 1.8 (atau 1.7) di <build>bagian:

  <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>

Pastikan bahwa perubahan Java Build menunjukkan 1.8. Jika tidak - klik EDIT dan pilih apa yang seharusnya.

masukkan deskripsi gambar di sini

  1. Ubah web.xml sehingga 3.0 direferensikan dalam versi dan di tautan

masukkan deskripsi gambar di sini

  1. Pastikan Anda memiliki Java diatur ke 1,8 di Aspek Proyek

masukkan deskripsi gambar di sini

  1. Pada tahap ini saya masih belum bisa mengubah Modul Web Dinamis;

Alih-alih mengubahnya:

a) hapus centang pada Modul Web Dinamis

b) berlaku

c) periksa lagi. Versi 3.0 baru harus ditetapkan. **

masukkan deskripsi gambar di sini

Setelah mendaftar dan memeriksanya lagi:

masukkan deskripsi gambar di sini

Semoga ini membantu.


15

Klik kanan proyekProperti ; dalam Project Facets , batalkan pilihan Dynamic Web Module (versi harus 3.1 ) dan batalkan pilihan JavaServer Faces (versi 2.2 ).

Ubah ini:

<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">

untuk ini:

<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">

Kemudian hapus awalan sebelum param-namedan sejenisnya.

Akhirnya, Maven -> Perbarui proyek .


8

Anda silakan buka tampilan Navigator dan langkah selanjutnya

  1. (Window> Show View> Other> General) dan temukan bahwa ada folder .settings di bawah proyek Anda, perluas dan buka file "org.eclipse.wst.common.project.facet.core.xml", buatlah di bawah ini berubah dan simpan file.
  2. Ubah versi modul web dinamis pada baris ini menjadi 2.5 -
  3. Ubah versi Java di baris ini menjadi 1,5 atau lebih tinggi -.

5
Anda lupa memberi tahu tampilan apa yang harus Anda pilih di bawah folder "Umum" dalam dialog "Tampilkan Tampilan". Apakah ini tampilan "Navigator"?
Roberto Linares

6

Buka web.xml dari struktur proyek http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "version =" 3.0 "> Aplikasi Web Servlet 3.0

dan perbarui file web.xml misalnya ubah versi = "2.5"

Juga ubah file org.eclipse.wst.common.project.facet.core.xml dari file .settings proyek Anda Ikuti langkah-langkah 1. Window> Show View> Other> General> Navigator

  1. Ada folder .settings di bawah direktori proyek Anda

  2. Ubah versi modul web dinamis pada baris ini menjadi 2.5 4. Ubah versi Java pada baris ini menjadi 1.5 atau lebih tinggi

Sekarang segarkan proyek Anda dan siap untuk berjalan di server Anda.

Ikuti blog untuk solusinya http://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-eclipse.html

Solusinya dihasilkan dengan ilustrasi gambar


Meskipun tautan ini dapat menjawab pertanyaan, lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini dan memberikan tautan untuk referensi. Jawaban hanya tautan dapat menjadi tidak valid jika halaman tertaut berubah.
Micha

Saya telah membuat perubahan pada file pom.xml seperti yang ditunjukkan di crunchify.com/… . Namun itu tidak cukup. Saya juga harus mengikuti rekomendasi untuk membuka folder .settings dan mengedit file or.eclipse.wst.common.project.facet.core.xml.
blackjack

6

Langkah-langkah terbaik dan sederhana untuk menyelesaikan masalah ini bagi saya adalah 1) Properti -> Project Facets -> Hapus centang / centang kotak Dinamis Modul Web -> Terapkan 2) Sekarang ubah ke versi yang diinginkan Terapkan 3) Centang kotak centang Modul web dinamis .. - Sekarang sudah selesai -


1
Bekerja dengan baik tetapi Apa konsekuensi dari ini?
sg28

4

Mereka adalah satu lagi cara untuk menyelesaikan masalah ini (lihat saja harapannya akan membantu Anda untuk menyelesaikan masalah Anda)

MASALAH

Tidak dapat mengubah versi modul web dinamis segi proyek 2.3 ke 3.0

LARUTAN

  1. Pergi ke lokasi proyek Anda (mis.-D: / maven / todo)
  2. buka folder .setting
  3. periksa file ini: org.eclipse.wst.common.project.facet.core.xml
  4. buka file dan ubah properti "jst.web" dari 2.3 menjadi 3.0, dan simpan
  5. Klik kanan pada proyek menyegarkan proyek dan memperbarui pakar
  6. Selesai !!! ....

3

Trik web.xml berfungsi karena Anda sekarang secara eksplisit memberi tahu WTP bahwa Anda menggunakan versi servlet tertentu, apa pun yang didukung oleh wadah.

Dalam kasus saya, saya menggunakan konfigurasi anotasi dalam proyek Maven dan saya tidak memiliki file web.xml. Ternyata dengan tidak adanya web.xml, WTP melihat dependensi Maven Anda untuk menentukan versi Servlet yang digunakan. Dalam kasus saya, saya telah menetapkan yang berikut:

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

Mengubahnya menjadi 6.0 memperbaiki masalah dan sekarang menggunakan Servlet 3.0 bukan 3.1, yang merupakan default untuk JavaEE 7. Karena saya harus beralih dari Tomcat 8 ke Tomcat 7, Tomcat 7 hanya mendukung profil Web JavaEE 6. Sekarang semuanya berjalan dengan baik.


3

Saya memiliki masalah yang sama, mengedit web.xml serta mengubah file di folder .settings saja tidak membantu. Solusi saya adalah mengarahkan langsung plugin maven compiler untuk menggunakan versi java yang diinginkan dengan mengedit pom.xml:

  <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> 

Sekarang jalankan Maven-> Perbarui proyek dan setelah itu Anda dapat mengubah versi servlets di properti-> proyek segi-> versi modul Web Dinamis atau, seperti yang ditulis sebelumnya, dengan mengedit secara manual org.eclipse.wst.common.project.facet.core. xml dalam folder .settings dari proyek Anda.


2

Dalam kasus saya, web.xml direferensikan oleh dtd. Setelah saya mengubah ini menjadi referensi xsd seperti yang diposting oleh Sydney itu berhasil.


2

Saya memiliki masalah yang sama, menghapus folder .settings menyelesaikan masalah


1

Solusi saya untuk masalah yang tidak memungkinkan saya untuk mengubah versi segi modul Dynamic Web Module di Eclipse (Mars) adalah:

  • Nonaktifkan Alam Maven
  • Pastikan bahwa namespace web.xml menunjuk ke versi yang benar
  • Aktifkan kembali Maven Nature
  • Maven »Perbarui Proyek (atau tekan Alt + F5)

1

Jika jawaban dari Sydney masih tidak membantu maka coba di bawah ini. Setelah mengikuti jawaban Sydney, goto Properties> Projects Facets batalkan pilihan Dynamic Web Module dan kemudian ubah versi untuk mencocokkan web.config Anda lalu pilih lagi. Terapkan> Simpan Kemudian Perbarui Maven.

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

Saya mencoba banyak jawaban di sini, tetapi tidak ada yang bekerja untuk saya. Kemudian saya menemukan artikel tentang masalah saya di sini . Saya berpikir untuk membagikannya di sini juga.

Di bawah ini adalah langkah-langkah yang diambil secara singkat.

  1. Setel tingkat kepatuhan Kompiler.
  2. Perbarui aspek proyek
  3. Perbarui JRE yang diinstal dari preferensi
  4. Menambahkan konfigurasi di pom.xml untuk menggunakan java 1.7 dan akhirnya
  5. memperbarui proyek dari Maven.

1

Untuk proyek web gerhana maven, mengubah versi modul web dinamis perlu memeriksa tiga tempat. Jika seseorang menggunakan gerhana, dan setelah Anda memeriksa yang berikut: 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) pakar:

<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) eclipse build path dan versi kompiler adalah 1.7

Anda masih memiliki penanda kesalahan di maven:

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

Kemudian Anda dapat: hapus centang pada modul web dinamis, dan periksa kembali. Saya pikir itu karena. Pengaturan file gerhana entah bagaimana rusak. Tentang kucing jantan ujung kedua versi mana yang merupakan catatan yang baik.


1

Saya mendapatkan kesalahan ini ketika saya mencoba untuk mengubah Proyek Java umum untuk Proyek Maven .

Apa yang saya lakukan adalah menentukan versi Java compiler yang diperlukan oleh proyek saya. Untuk proyek saya, versi Java minimum adalah 1.8.

Dengan menurunkan versi ke sesuatu yang lebih rendah dari 1.8IDE saya akan mulai mengeluh bahwa ia tidak mengenali banyak pustaka yang diimpor, maka saya menentukan versi Java minimum milik saya sebagai1.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

masukkan deskripsi gambar di sini

Sekarang pastikan versi kompiler Java menggunakan versi Java yang sama dengan apa yang telah Anda atur di Aspek Proyek.

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.

masukkan deskripsi gambar di sini

Setelah perubahan, kesalahan harus diselesaikan. Jika kesalahan masih ada, klik kanan proyek -> Maven -> Perbarui Proyek



0

Buka file org.eclipse.wst.common.project.facet.core.xml dan ubah versi jst.web menjadi 3.0. Perbarui juga web.xml ke versi 3.0. Simpan dan perbarui proyek. Semoga ini membantu. Saya menggunakan Eclipse Juno


0

Ini adalah variasi pada jawaban pagurix, tetapi menggunakan Eclipse Mars.

Ubah file web.xml Anda ke web.bak

Abaikan kesalahan, kami akan membuat ulang itu selanjutnya.

Pergilah ke properti proyek -> aspek proyek dan atur versi Modul Web Dinamis ke apa yang Anda butuhkan. Eclipse sekarang memungkinkan Anda untuk menyimpan.

Sekarang klik kanan pada proyek. Pilih Java EE Tools -> Generate Deployment Descriptor Desubtor.

Ini menciptakan web.xml baru dengan versi yang diperlukan.

Buka web.xml baru dan salin di header XML dan tag pembuka aplikasi web lengkap ke web.bak asli Anda, hapus web.xml baru dan ganti nama web.bak kembali ke web.xml.

Selesai


0

Punyaku ada Web Module 3.0di web.xml, tetapi di properties>Dynamic Web Moduledalamnya3.1

Saya mengubah web.xmlini menjadi:

<?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">

setelah perubahan ini, lakukan: right click on project>Maven>Update Project...


0

Masalah Ini Dengan versi klik kanan pada project-> properties-> Project Facets-> klik kanan pada Dynamic Web Module-> buka itu-> hapus centang-> pilih 2.5 versi-> Terapkan-> Perbarui pakar


0

Saya menyelesaikan masalah dengan memodifikasi web.xml dengan versi yang benar, lokasi xsd dan memodifikasi org.eclipse.wst.common.project.facet.core.xml dengan versi yang benar dan melakukan pembaruan pakar .


0

memperbarui pakar bekerja untuk saya

pilih proyek lalu tekan ALT + F5 lalu pilih proyek klik ok


0

Saya memiliki gejala yang sama dengan obat yang berbeda. Saya mencoba untuk meningkatkan webapp JSF 2.2.4 / Spring 3.0 saya ke JSF 2.3 untuk menikmati kait websocket JSF baru di sana dan Eclipse (sebenarnya STS) tidak mau bekerja sama. Dalam Project Facets Eclipse, JSF 2.3 tidak pernah tersedia sampai saya mengedit langsung file org.eclipse.wst.common.project.facet.core.xml seperti yang diarahkan pada jawaban sebelumnya - yang tertinggi adalah 2.2.

Inilah simpai yang saya lewati. Saya tidak tahu bahwa semua ini diperlukan karena pada dasarnya saya tidak mengerti semua konfigurasi ini.

Di Eclipse saya sering mendapat peringatan menakutkan, "Memodifikasi proyek faceted ketika implementasi dari satu atau lebih aspek yang diinstal tidak tersedia dapat berpotensi menghasilkan proyek yang rusak. Apakah Anda yakin ingin melanjutkan?" Ini mendorong saya untuk melakukan komitmen lebih sering tetapi tidak terjadi korupsi.

  1. Tingkatkan JDK dari 1,7 menjadi 1,8 di POM, Eclipse compiler, dan Eclipse Project Facets.
  2. Perbarui dependensi Maven berikut:

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

    ... untuk:

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

... dan ...

    <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>

... untuk:

    <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>

Saya harus memperbarui deklarasi namespace web.xml saya dari:

<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">

... untuk:

<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">

Saya harus memperbarui Aspek Proyek -> Modul Web Dinamis dari 2.5 ke 3.0. Saya mencoba 3.1 tetapi mendapat kesalahan.

Dalam proses ini saya sering mendapat kesalahan dalam judul posting ini, "Tidak dapat mengubah versi segi proyek Dynamic Web Module menjadi 3.0" dan Eclipse menolak untuk mengkompilasi proyek atau menawarkan JSF 2.3 di Aspek Proyek. Ketika saya mengedit file org.eclipse.wst.common.project.facet.core.xml seperti yang diarahkan kesalahan menghilang, Eclipse menawarkan JSF 2.3 dalam Project Facets, dan proyek dikompilasi dan berjalan dengan baik pada Tomcat 9.0.8. Namun, Aspek Proyek masih memperingatkan "Implementasi versi 2.3 dari segi proyek jst.jsf tidak dapat ditemukan. Fungsionalitas akan terbatas." Saya menduga ini berarti bahwa autocomplete dan kenyamanan Eclipse lainnya tidak akan tersedia karena tidak dapat menemukan implementasi JSF 2.3 yang dinyatakan dalam POM saya.

Semoga ini bisa membantu seseorang. Pencarian Google hanya menghasilkan posting ini oleh Ali Bassam dan secara tidak langsung BalusC yang membantu.


0

Saya memiliki masalah yang sama - saya baru saja menghapus proyek dari ruang kerja saya, kemudian membersihkan "file / folder gerhana, misalnya: .project, .settings, dll) kemudian mengimpor proyek maven lagi, itu berhasil.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.