Không thể thay đổi phiên bản của mô-đun Dynamic Web Module thành 3.0?


329

Tôi đang sử dụng maven để tạo một ứng dụng web động trong Eclipse. Tôi đã thêm một số thư mục như src/test/javasrc/test/resources. Ngoài ra, tôi đã thay đổi thư viện trong Java Build Path để lấy JavaSE-1.7. Tất cả đều ổn ở đây.

Khi tôi cố gắng thay đổi Mô-đun Web Dynamic Dự án, có gì đó không ổn. Tôi đã thay đổi Java thành 1.7 ở cùng một nơi. Và nó vẫn nói với tôi, không thể thay đổi phiên bản Mô-đun Web động của dự án thành 3.0.

Tôi đã thay đổi mọi thứ sẽ ảnh hưởng đến sự thay đổi mà tôi nghĩ.


ĐỒNG Ý. Tôi lấy làm tiếc vì điều đó. Archetype là maven-archetype-webapp khi tôi tạo Dự án Maven mới và Mô-đun Web động là 2,3 trong các khía cạnh dự án sau khi tôi tạo dự án. Tôi muốn thay đổi phiên bản Mô-đun Web động thành 3.0 và tôi đã nhận được 'Không thể thay đổi phiên bản của mô-đun Dynamic Web Module thành 3.0'
EdgarZeng


Trong Eclipse Kepler, khi tôi nhấp chuột phải vào khía cạnh 'Mô-đun Web động', nó sẽ hiển thị tùy chọn 'Mở khóa'. Sau khi bỏ khóa, tôi đã có thể thay đổi phiên bản khía cạnh. chỉ để biết thông tin
Jonathan

Đây có phải là một lỗi cho nhật thực?
CDT

Câu trả lời:


311

Tôi đã cập nhật 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>

và sau đó chỉ Maven -> Cập nhật dự án ...


64
Cập nhật tệp web.xml không hoạt động đối với tôi. Giải pháp được cung cấp bởi @enkor hoạt động: stackoverflow.com/a/18632054/378633
jplandrain

5
Đây là một tiêu đề hợp lệ cho tệp 3.1 tệp web <? Xml version = "1.0" mã hóa = "UTF-8"?> <Web-app xmlns: xsi = " w3.org/2001/XMLSchema-instance " xmlns = " xmlns.jcp.org/xml/ns/javaee " xsi: lượcLocation = " xmlns.jcp.org/xml/ns/javaee xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd " id = " WebApp_ID "phiên bản =" 3.1 ">
Jakob Alexander Eichler

3
Còn những dự án không có web.xml thì sao? :)
Anand Rockzz

việc thay đổi thuộc tính phiên bản thành 3.0 cũng không hiệu quả với tôi
tequilacat

Nếu không có giải pháp nào ở trên và bên dưới nếu không hoạt động, vui lòng truy cập liên kết này 100%, nó sẽ hoạt động.
Raki

587

Một cách khác là tự chỉnh sửa tệp cấu hình khía cạnh dự án: org.eclipse.wst.common.project.facet.core.xml

Thay đổi phiên bản mô-đun web động trong dòng này thành 3.0 - <installed facet="jst.web" version="2.5"/>

Và sau đó:

  1. Nhấp chuột phải vào dự án (trong bảng Project Explorer ).
  2. Chọn Maven »Cập nhật dự án (hoặc nhấn Alt+F5)

Bạn sẽ tìm thấy tệp này trong .settingsthư mục trong dự án Eclipse.


3
Cảm ơn bạn. Trên thực tế, tôi nghĩ rằng chúng ta nên làm một cái gì đó khác giống như ở trên, thay đổi phiên bản của mô-đun web trong tệp web.xml, nếu không, phiên bản 'Mô tả triển khai' sẽ không thay đổi thành 3.0. Và đó có phải là một lỗi trong maven plugin?
EdgarZeng

13
Đây dường như là cách duy nhất để giải quyết vấn đề này khi bạn đi mà không có tệp web.xml trong dự án của bạn.
Shawn Sherwood

3
Tôi đã có 3.0 trong tệp web.xml và STS vẫn không cập nhật được và bản cập nhật mvn cũng không giúp được gì. Phương pháp này hoạt động, tuy nhiên.
MiB

2
Điều này đã giúp, thực sự đi đến -> org.eclipse.wst.common.project.facet.core.xml -> xóa tất cả các mục -> dự án cập nhật maven.
tài năng

7
Bạn có thể tìm thấy tệp org.eclipse.wst.common.project.facet.core.xml trong thư mục ứng dụng / dự án .sinstall của bạn.
Rushi Shah

175

Tôi nghĩ rằng tôi đã có cùng một vấn đề như bạn. Web.xml của tôi đã có phiên bản 2.5 trong khi dự án có (nhấp chuột phải vào Project-> Properties-> Project Facets->) Module Web động 2.3.

Mặc dù tôi đã cố gắng thay đổi phiên bản từ 2.3 thành 2.5 ECLIPSE không cho phép. Giải pháp: Tôi đã xóa dấu kiểm dưới tiêu đề Mô-đun Web động, tôi đã lưu và tôi có Cập nhật dự án. Tự động đánh thức lại là vào hộp với phiên bản chính xác. Tôi sử dụng Kepler Eclipse.

ps: nhìn vào những bình luận của Jonathan ngay bên dưới, rất hữu ích.


1
Tuyệt vời! Nó đã giải quyết vấn đề của tôi nhưng bạn có thể cho tôi biết lý do tại sao ban đầu nó không cho phép đặt mô-đun động.
Suresh

26
@Suresh, tôi nghĩ vấn đề tại sao nó không cho phép thay đổi phiên bản là vì nó bị khóa. Nếu bạn nhấp chuột phải vào khía cạnh 'Mô-đun Web động', nó sẽ hiển thị tùy chọn 'Mở khóa'. Sau khi hủy khóa, bỏ kiểm tra khía cạnh DWM, áp dụng lại khía cạnh và thực hiện cập nhật maven dự án, lỗi đã biến mất.
Jonathan

2
+1. Không có điểm cực kỳ quan trọng này, những câu trả lời khác ở đây chẳng là gì cả. Chỉ tôi nghĩ Jonathan't bình luận nên được đưa vào câu trả lời.
Gangnus

1
+1 @Jonathan Mẹo của bạn đã làm việc. Bạn phải xuất bản nó như một câu trả lời và chúng ta cũng nên nâng nó lên Eclipse!
aksappy

Trong trường hợp của tôi, điều này hoạt động tại sao trong mô-đun web pom đã giải quyết một phiên bản khác cho mô-đun web Dnamic, vì vậy điều này mâu thuẫn với cấu hình dự án whit
ocrampico

49
  1. Bấm vào thư mục dự án của bạn.
  2. Chuyển đến Cửa sổ> Hiển thị Chế độ xem> Điều hướng
  3. Chuyển đến Điều hướng và mở rộng thư mục .sinstall
  4. Mở org.eclipse.wst.common.project.facet.core.xmltập tin

    <?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. Thay đổi phiên bản như thế này <installed facet="jst.web" version="3.1"/>

  6. Tiết kiệm
  7. Chỉ cần cập nhật dự án của bạn. Nhấp chuột phải vào Thư mục dự án> Maven> Cập nhật dự án> Chọn dự án và nhấp vào 'Ok'

Chỉ điều này làm việc với tôi.


43

Tôi đã có cùng một vấn đề và tôi thậm chí đã cố gắng loại bỏ dự án và thêm nó một lần nữa. Những gì đã lừa là để loại bỏ các .settingsthư mục.


2
Tôi cũng đã phải làm điều này. Tôi đang sử dụng một dự án web Spring với cấu hình dựa trên Java, vì vậy việc cập nhật một tệp web.xml là không thể đối với tôi.
bcody

Tại sao nó hoạt động sau khi xóa .sets bạn có thể vui lòng exaplain
Abhijit Chakra

Thư mục .sinstall đó chứa rất nhiều thứ và có thể một số trong số chúng đã thay đổi theo thời gian. Tôi không biết chính xác phần nào ảnh hưởng đến hành vi này, nhưng điều này giống như một thiết lập lại. Không có câu trả lời nào khác làm việc cho tôi, nhưng câu trả lời này. Và dường như tôi không phải là người duy nhất trong tình huống này.
Adrian Ber

Làm việc cho tôi, tôi đã gặp lỗi này: "Không thể thay đổi phiên bản của khía cạnh dự án EAR thành 1.3."
Giovanni P.

Đã làm cho tôi! Tôi đã gặp lỗi: "Không thể thay đổi phiên bản của mô-đun Dynamic Web Module thành 3.0"
Anup Ghosh

24

Xóa bỏ

.settings 
.classpatch 
.projejct 
target

và nhập lại dự án maven.


Làm cách nào để nhập lại Dự án Maven. Tôi mới biết điều này.
Daniel Brower

21

Điều gì làm việc cho tôi:

  1. Thay đổi Java thành 1.8 (hoặc 1.7)

Trong POM của bạn - bạn phải đặt plugin trình biên dịch thành phiên bản 1.8 (hoặc 1.7) trong <build>phần:

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

Đảm bảo rằng thay đổi Java Build hiển thị 1.8. Nếu không - nhấp vào EDIT và chọn những gì nó cần.

nhập mô tả hình ảnh ở đây

  1. Sửa đổi web.xml để 3.0 được tham chiếu trong phiên bản và trong liên kết

nhập mô tả hình ảnh ở đây

  1. Đảm bảo bạn đã đặt Java thành 1.8 trong các khía cạnh dự án

nhập mô tả hình ảnh ở đây

  1. Ở giai đoạn này tôi vẫn không thể thay đổi Mô-đun Web động;

Thay vì thay đổi nó:

a) bỏ chọn Mô-đun Web động

b) áp dụng

c) kiểm tra lại. Phiên bản 3.0 mới nên được đặt. **

nhập mô tả hình ảnh ở đây

Sau khi áp dụng và kiểm tra lại:

nhập mô tả hình ảnh ở đây

Hi vọng điêu nay co ich.


15

Nhấp chuột phải vào dự ánThuộc tính ; trong Project Facets , bỏ chọn Mô-đun Web động (phiên bản phải là 3.1 ) và bỏ chọn JavaServer Faces (phiên bản là 2.2 ).

Thay đổi cai nay đi:

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

đến đây:

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

Sau đó loại bỏ tiền tố trước param-namevà tương tự.

Cuối cùng, Maven -> Cập nhật dự án .


8

bạn vui lòng mở giao diện Điều hướng và làm theo bước sau

  1. (Window> Show View> Other> General) và thấy rằng có một thư mục .sinstall trong dự án của bạn, mở rộng nó và sau đó mở tệp "org.eclipse.wst.common.project.facet.core.xml", tạo bên dưới thay đổi và lưu tập tin.
  2. Thay đổi phiên bản mô-đun web động trong dòng này thành 2.5 -
  3. Thay đổi phiên bản Java trong dòng này thành 1,5 hoặc cao hơn -.

5
Bạn đã quên nói chế độ xem nào bạn nên chọn trong thư mục "Chung" trong hộp thoại "Hiển thị Chế độ xem". Đây có phải là chế độ xem "Điều hướng" không?
Roberto Linares

6

Mở tệp web.xml từ cấu trúc dự án http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "version =" 3.0 "> Ứng dụng web Servlet 3.0

và cập nhật tệp web.xml ví dụ thay đổi phiên bản = "2.5"

Đồng thời thay đổi tệp org.eclipse.wst.common.project.facet.core.xml từ tệp .sinstall của dự án của bạn Thực hiện theo các bước 1. Window> Show View> Other> General> Navigator

  1. Có một thư mục .sinstall trong thư mục dự án của bạn

  2. Thay đổi phiên bản mô-đun web động trong dòng này thành 2.5 4. Thay đổi phiên bản Java trong dòng này thành 1.5 hoặc cao hơn

Bây giờ làm mới dự án của bạn và được thiết lập để chạy trên máy chủ của bạn.

Hãy theo dõi blog để biết giải pháp http://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-eclipse.html

Giải pháp được sản xuất với hình ảnh minh họa


Mặc dù liên kết này có thể trả lời câu hỏi, tốt hơn là bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi.
Micha

Tôi đã thực hiện các thay đổi trong tệp pom.xml như được hiển thị trong crunchify.com/ . Tuy nhiên điều đó là không đủ. Tôi cũng phải tuân theo khuyến nghị để mở thư mục .sinstall và chỉnh sửa tệp or.eclipse.wst.common.project.facet.core.xml.
blackjack

6

Các bước đơn giản và tốt nhất đã giải quyết vấn đề này cho tôi là 1) Thuộc tính -> Khía cạnh dự án -> Bỏ chọn / bỏ đánh dấu hộp kiểm của Mô-đun Web động -> Áp dụng 2) Bây giờ thay đổi sang phiên bản mong muốn Áp dụng 3) Kiểm tra hộp kiểm Mô-đun web động .. - Bây giờ bạn đã hoàn thành -


1
Làm việc tốt nhưng hậu quả của việc này là gì?
sg28

4

Đây là một cách nữa để giải quyết vấn đề này (kiểm tra xem hy vọng nó sẽ giúp bạn giải quyết vấn đề của bạn)

VẤN ĐỀ

Không thể thay đổi phiên bản của mô-đun web động động dự án 2.3 thành 3.0

GIẢI PHÁP

  1. Chuyển đến vị trí dự án của bạn (ví dụ: D: / maven / todo)
  2. đi tới thư mục
  3. kiểm tra tệp này: org.eclipse.wst.common.project.facet.core.xml
  4. mở tệp và thay đổi thuộc tính "jst.web" từ 2.3 thành 3.0 và lưu
  5. Nhấp chuột phải vào dự án làm mới dự án và cập nhật maven
  6. Làm xong!!!....

3

Thủ thuật web.xml hoạt động vì giờ đây bạn nói rõ ràng với WTP rằng bạn đang sử dụng phiên bản servlet cụ thể đó, bất kể bộ chứa hỗ trợ gì.

Trong trường hợp của tôi, tôi đang sử dụng cấu hình chú thích trong một dự án Maven và tôi không có tệp web.xml. Nó chỉ ra rằng trong trường hợp không có tệp web.xml, WTP sẽ xem xét các phụ thuộc Maven của bạn để xác định phiên bản Servlet nào sẽ sử dụng. Trong trường hợp của tôi, tôi đã định nghĩa như sau:

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

Việc thay đổi nó thành 6.0 đã khắc phục sự cố và hiện đang sử dụng Servlet 3.0 thay vì 3.1, đây là mặc định cho JavaEE 7. Vì tôi phải chuyển từ Tomcat 8 sang Tomcat 7, Tomcat 7 chỉ hỗ trợ cấu hình Web JavaEE 6. Bây giờ mọi thứ làm việc tuyệt vời.


3

Tôi gặp vấn đề tương tự, chỉnh sửa tệp web.xml cũng như thay đổi tệp trong thư mục .sinstall không giúp được gì. Giải pháp của tôi là trực tiếp trỏ plugin trình biên dịch maven để sử dụng phiên bản java mong muốn bằng cách chỉnh sửa 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> 

Bây giờ hãy chạy Maven-> Cập nhật dự án và sau đó, bạn có thể thay đổi phiên bản servlets trong thuộc tính-> khía cạnh dự án-> Phiên bản mô-đun Web động hoặc, như được viết trước đó, bằng cách chỉnh sửa thủ công org.eclipse.wst.common.project.facet.core. xml trong thư mục .sinstall của dự án của bạn.


2

Trong trường hợp của tôi, tệp web.xml được tham chiếu bởi một dtd. Sau khi tôi thay đổi tham chiếu này thành xsd giống như tài liệu được đăng bởi Sydney, nó đã hoạt động.


2

Tôi gặp vấn đề tương tự, xóa thư mục .sinstall đã giải quyết vấn đề


1

Giải pháp của tôi cho vấn đề không cho phép tôi thay đổi phiên bản Mô-đun Web động của dự án trong Eclipse (Mars) là:

  • Vô hiệu hóa Maven Nature
  • Đảm bảo rằng các không gian tên web.xml trỏ đến phiên bản bên phải
  • Kích hoạt lại Maven Nature
  • Maven »Cập nhật dự án (hoặc nhấn Alt + F5)

1

Nếu câu trả lời của Sydney vẫn không giúp được thì hãy thử bên dưới. Sau khi làm theo câu trả lời của Sydney, goto Properties> Project Facets bỏ chọn Dynamic Web Module và sau đó thay đổi phiên bản để khớp với web.config của bạn và sau đó chọn lại. Áp dụng> Lưu rồi cập nhật 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

Tôi đã thử nhiều câu trả lời ở đây, nhưng không có câu trả lời nào phù hợp với tôi. Sau đó, tôi tìm thấy một bài viết về vấn đề của tôi ở đây . Tôi nghĩ về việc chia sẻ nó ở đây quá.

Dưới đây là các bước được thực hiện ngắn gọn.

  1. Đặt mức độ tuân thủ Trình biên dịch.
  2. Cập nhật khía cạnh dự án
  3. Cập nhật JRE được cài đặt từ tùy chọn
  4. Thêm cấu hình trong pom.xml để sử dụng java 1.7 và cuối cùng
  5. cập nhật dự án từ Maven.

1

Đối với một dự án web nhật thực maven, việc thay đổi phiên bản mô-đun web động cần kiểm tra ba vị trí. Nếu một người sử dụng nhật thực và sau khi bạn đã kiểm tra như sau: 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) đường dẫn xây dựng nhật thực và phiên bản trình biên dịch là 1.7

bạn vẫn có một điểm đánh dấu lỗi tại maven:

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

Sau đó, bạn có thể: bỏ chọn mô-đun web động và kiểm tra lại nó. Tôi nghĩ rằng đó là vì. Cài đặt của tệp nhật thực bị hỏng bằng cách nào đó. Về mẹo thứ hai tomcat phiên bản nào là một lưu ý tốt.


1

Tôi đã gặp lỗi này khi tôi cố gắng chuyển đổi Dự án Java chung sang Dự án Maven .

Những gì tôi đã làm là xác định phiên bản trình biên dịch Java được yêu cầu bởi dự án của tôi. Đối với dự án của tôi, phiên bản Java tối thiểu là 1.8.

Bằng cách hạ thấp phiên bản xuống bất cứ thứ gì thấp hơn 1.8IDE của tôi sẽ bắt đầu phàn nàn rằng nó không nhận ra một loạt các thư viện đã nhập, do đó tôi xác định phiên bản Java tối thiểu của tôi là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

nhập mô tả hình ảnh ở đây

Bây giờ hãy đảm bảo phiên bản trình biên dịch Java sử dụng cùng phiên bản Java như những gì bạn đã đặt trong Project Facets.

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.

nhập mô tả hình ảnh ở đây

Sau khi thay đổi, lỗi sẽ được giải quyết. Nếu lỗi vẫn còn, nhấp chuột phải vào dự án -> Maven -> Cập nhật dự án



0

Mở tệp org.eclipse.wst.common.project.facet.core.xml và thay đổi phiên bản jst.web thành 3.0. Đồng thời cập nhật tệp webDB lên phiên bản 3.0. Lưu và cập nhật dự án. Hi vọng điêu nay co ich. Tôi đang sử dụng Juno Eclipse


0

Đây là một biến thể về câu trả lời của pagurix, nhưng sử dụng Sao Hỏa Eclipse.

Thay đổi tệp web.xml của bạn thành web.bak

Bỏ qua các lỗi, chúng tôi sẽ tạo lại nó tiếp theo.

Đi vào thuộc tính dự án -> các khía cạnh của dự án và đặt phiên bản Mô-đun Web động thành những gì bạn cần. Eclipse hiện cho phép bạn lưu.

Bây giờ bấm chuột phải vào dự án. Chọn Công cụ Java EE -> Tạo sơ khai mô tả triển khai.

Điều này tạo ra một tệp web.xml mới với phiên bản bắt buộc.

Mở tệp web.xml mới và sao chép qua tiêu đề XML và thẻ mở ứng dụng web hoàn chỉnh vào web.bak ban đầu của bạn, xóa tệp webDB mới và đổi tên web.bak trở lại web.xml.

Làm xong.


0

Của tôi là Web Module 3.0trong web.xml, nhưng trong properties>Dynamic Web ModuleNó là trên3.1

Tôi đã thay đổi web.xmlđiều này:

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

Sau khi thay đổi, hãy làm: right click on project>Maven>Update Project...


0

Vấn đề này Với phiên bản nhấp chuột phải vào dự án-> thuộc tính-> Khuôn mặt dự án-> nhấp chuột phải vào Mô-đun Web động-> mở khóa-> bỏ chọn-> chọn phiên bản 2.5-> Áp dụng-> Cập nhật maven


0

Tôi đã giải quyết vấn đề bằng cách sửa đổi tệp web.xml với phiên bản chính xác, vị trí xsd và sửa đổi org.eclipse.wst.common.project.facet.core.xml với phiên bản chính xác và thực hiện cập nhật maven .


0

cập nhật maven làm việc cho tôi

chọn dự án rồi nhấn ALT + F5 rồi chọn dự án bấm ok


0

Tôi đã có cùng một triệu chứng với một phương pháp chữa trị khác nhau. Tôi đã cố gắng nâng cấp ứng dụng web JSF 2.2.4 / Spring 3.0 của mình lên JSF 2.3 để tận hưởng các móc nối websocket mới của JSF ở đó và Eclipse (thực ra là STS) sẽ không hợp tác. Trong các khía cạnh dự án của Eclipse, JSF 2.3 không bao giờ có sẵn cho đến khi tôi chỉnh sửa trực tiếp tệp org.eclipse.wst.common.project.facet.core.xml theo hướng dẫn trong các câu trả lời trước - mức cao nhất sẽ là 2.2.

Đây là những cái vòng tôi nhảy qua. Tôi không biết rằng tất cả những thứ này là cần thiết bởi vì về cơ bản tôi không hiểu tất cả cấu hình này.

Trong Eclipse tôi thường xuyên nhận được một cảnh báo đáng sợ, "Sửa đổi một dự án theo khía cạnh khi việc triển khai một hoặc nhiều khía cạnh được cài đặt không có khả năng có thể dẫn đến một dự án bị hỏng. Bạn có chắc chắn muốn tiến hành không?" Điều này thôi thúc tôi thực hiện các cam kết thường xuyên hơn nhưng không có tham nhũng xảy ra.

  1. Nâng cấp JDK từ 1.7 lên 1.8 trong POM, trình biên dịch Eclipse và các khía cạnh dự án Eclipse.
  2. Cập nhật các phụ thuộc Maven sau:

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

    ... đến:

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

... và ...

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

... đến:

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

Tôi đã phải cập nhật các khai báo không gian tên web.xml của mình từ:

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

... đến:

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

Tôi đã phải cập nhật các khía cạnh dự án -> Mô-đun web động từ 2.5 lên 3.0. Tôi đã thử 3.1 nhưng gặp lỗi.

Trong quá trình này, tôi thường xuyên gặp lỗi trong tiêu đề của bài đăng này, "Không thể thay đổi phiên bản của mô-đun Dynamic Web Module thành 3.0" và Eclipse đã từ chối biên dịch dự án hoặc cung cấp JSF 2.3 trong các khía cạnh dự án. Khi tôi chỉnh sửa tệp org.eclipse.wst.common.project.facet.core.xml theo hướng dẫn các lỗi đã biến mất, Eclipse đã cung cấp JSF 2.3 trong Project Facets và dự án được biên dịch và chạy tốt trên Tomcat 9.0.8. Tuy nhiên, Project Facets vẫn cảnh báo "Không thể tìm thấy phiên bản 2.3 của khía cạnh dự án jst.jsf. Chức năng sẽ bị hạn chế." Tôi nghi ngờ điều này đơn giản có nghĩa là tự động hoàn thành và các tiện ích Eclipse khác sẽ không khả dụng vì nó không thể tìm thấy triển khai JSF 2.3 được khai báo trong POM của tôi.

Hy vọng điều này sẽ giúp được ai đó. Các tìm kiếm của Google chỉ mang lại bài đăng này của Ali Bassam và gián tiếp BalusC đã giúp.


0

Tôi gặp vấn đề tương tự - Tôi vừa xóa dự án khỏi không gian làm việc của mình, sau đó dọn sạch "tệp / thư mục nhật thực, ví dụ: .project, .sinstall, v.v.) sau đó nhập lại dự án maven, nó đã hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.