2011-03-03 26 views
36

'-param init' Đây là của tôi web.xml xsdcvc-phức-type.2.4.a: Nội dung không hợp lệ đã được tìm thấy bắt đầu với yếu tố

<?xml version="1.0" encoding="UTF-8"?> 
    <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"> 

Dưới đây là servlet nút

<servlet> 
    <servlet-name>spring1</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    <init-param> <!-- here is a problem --> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-servlet.xml</param-value> 
    </init-param> 
</servlet> 

Trên dòng đánh dấu xml validator cho biết

cvc-complex-type.2.4.a: Tìm thấy nội dung không hợp lệ bắt đầu với yếu tố 'init-param'. Một trong số '{"http://java.sun.com/xml/ns/javaee": đã bật "http://java.sun.com/xml/ns/javaee": được hỗ trợ không đồng bộ, "http://java.sun.com/xml/ns/javaee": run-as, "http://java.sun.com/xml/ns/javaee": bảo mật-vai trò-ref, "http://java.sun.com/xml/ns/javaee": multipart-config}' được mong đợi.

Điều gì là sai và cách khắc phục lỗi này?

Trả lời

112

Trình tự của các yếu tố trong web.xml vấn đề và trong tất cả các ví dụ tôi đã đi qua, các <load-on-startup> đưa ra sau khi <init-param>.

<servlet> 
    <servlet-name>spring1</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-servlet.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
+2

+1 thú vị !! – craig

+1

Bạn sẽ nghĩ rằng có một cách NICE để nói rằng! thay vì tìm thấy nội dung không hợp lệ bắt đầu bằng phần tử 'init-param'. Có lẽ một trường hợp của RTFM ... sau đó id được bận rộn đọc cho đến khi những con bò trở về nhà ... – Gerrie

+0

thiên tài! đã lưu ngày –

12

Đó là gàn dở, nhưng <init-param> có đến trước <load-on-startup>, vì vậy:

<servlet> 
    <servlet-name>spring1</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param><!--here is a problem--> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-servlet.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
+0

Tôi không chắc tại sao đây không phải là câu trả lời được chấp nhận vì đây là câu trả lời bằng văn bản đầu tiên. – Vignesh

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