2011-07-09 33 views
14

khai ứng dụng web của tôi trong web.xml của tôi là:Eclipse phàn nàn về ứng dụng web thuộc tính

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

và Eclipse phàn nàn về tất cả 4 thuộc tính, đây là một trong những khiếu nại Eclipse:

Attribute "version" must be declared for element type "web-app" 

Tại sao Eclipse phàn nàn về các thuộc tính này? Tôi có làm gì sai ở đây không?

+0

Khi nào nó phàn nàn? Bạn đã thử buộc nó xác nhận lại chưa? – nitind

Trả lời

8

Cố gắng đặt theo cách này:

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

Eclipse validator là rất nghiêm khắc với đơn đặt hàng.

+0

Có, tôi thấy http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd nên phiên bản phải là 2.4. Cảm ơn. –

3

Không bạn quên hàng này trong file xml của bạn ?:

<?xml version="1.0" encoding="ISO-8859-1"?> 

tập tin của bạn nên bắt đầu như thế này:

<?xml version="1.0" encoding="ISO-8859-1"?> 
    <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_2_5.xsd" version="2.5"> 

Nếu nó không hoạt động làm sạch và làm mới dự án của bạn.

8

Tôi gặp vấn đề tương tự. Tôi đã thử một vị trí lược đồ khác và nó đã làm việc cho tôi. Thay vì

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

hãy thử sử dụng này

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd

Ngoài ra, thiết lập các phiên bản như "3.0".

28

Xóa dòng DOCTYPE, đó là ý nghĩa của xsd thay thế. Tôi đã có cùng một vấn đề và chỉ có điều này đã làm việc.

0

Chỉ cần xóa DOCTYPE. Và nó hoạt động tốt.

+0

Bạn có thể vui lòng xây dựng thêm câu trả lời của bạn thêm mô tả chi tiết hơn về giải pháp bạn cung cấp không? – abarisone

+0

Để tôi xóa DOCTYPE đã sửa lỗi. Điều này sẽ ở đầu tệp web.xml của bạn - "" –

1

Hãy tham khảo liên kết this oracle.com để biết tất cả những gì đã được công bố với Java EE 7 (giả sử đó là những gì chúng tôi đang làm việc). Liên kết nêu rõ

Tất cả các lược đồ mới nằm trong không gian tên http://xmlns.jcp.org/xml/ns/javaee/ .

Các namespace java.sun đã không trở thành java.oracle, thay vào đó nó đã được giữ lại bởi The Java Community Process (JCP). Do đó tất cả các không gian tên nên trỏ đến xmlns.jcp.org, cũng như được chỉ ra bởi các tài liệu Java EE 7.

Bây giờ, khi chúng tôi đang triển khai một ứng dụng web (và do đó cần phải xác định một tệp web.xml), trước tiên chúng ta phải biết chúng tôi định làm gì.

Giả sử, chúng tôi đang làm việc với Apache Tomcat V8. Nếu chúng ta đọc các tài liệu here, chúng ta sẽ biết rằng nó đi kèm với gói Servlet 3.1. Vì vậy, tôi muốn thực hiện một Servlet 3.1, chỉ để ở lại đến ngày nếu không phải bất cứ điều gì khác.

Bây giờ tất cả những gì đang được nói, đây là lời tuyên bố tôi sẽ phải

<web-app 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" 
     version="3.1"> 

</web-app> 

Hy vọng điều này trả lời câu hỏi.

1

Tôi đã thay đổi tuyên bố từ

http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd ">

như sau và nó làm việc như nét duyên dáng. Bây giờ không có lỗi thể hiện trong web.xml

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd ">

Các vấn đề liên quan