에러(error)

error 1) cvc-complex-type.2.4.a: Invalid content was found starting with element 'url-pattern'. One of '{"http://java.sun.com/xml/ns/javaee":web-resource-name}' is expected.

error 2) cvc-complex-type.2.4.a: Invalid content was found starting with element 'init-param'. One of '{"http://java.sun.com/xml/ns/j2ee":run-as, "http://java.sun.com/xml/ns/j2ee":security-role-ref}' is expected.

error 3) cvc-complex-type.2.4.a: Invalid content was found starting with element 'location'. One of '{"http:// java.sun.com/xml/ns/javaee":error-code, "http://java.sun.com/xml/ns/javaee":exception-type}' is expected.

 

 

원인(cause)

위 에러 내용에서 빨간색으로 표시한 부분 때문에 발생하는 에러이다. 3가지 에러 모두web.xml 파일안에 잘못 작성한 내용이 있어서 발생하는 에러이다. web.xml 사용법 중에 해당 부분에 대한 것만 좀 살펴보고 올바른 방법으로 수정하면 된다.

 

첫 번째 에러의 경우, <web-resource-name>가 없기 때문에 발생한 것이기 때문에, 해당 값을 추가시켜줘서 해결할 수 있다.

두 번째 에러의 경우, <load-on-startup> <init-param>위에 작성되었기 때문에 발생 것이므로, <load-on-startup> <init-param>아래로 위치시키도록 수정하면 해결된다.

번째 에러의 경우, <location> 태그를 사용할 없어서 발생 것이므로, 지원가능한 버전을 사용하도록 <web-app> 버전을 올려서 해결하면 된다.

 

 

error 1 발생 위치)

web.xml

<web-resource-collection>

    <url-pattern>/_ah/api/*</url-pattern>

</web-resource-collection>

 

error 2 발생 위치)

web.xml

<servlet>

   <servlet-name>WorkerServlet</servlet-name>

   <servlet-class>jeus.servlet.servlets.WorkerServlet</servlet-class>

<load-on-startup>1</load-on-startup>         

   <init-param>

        <param-name>ServletRoot</param-name>

        <param-value>D:\workspace\proj\WebContent\WEB-INF\classes</param-value>

   </init-param>    

   <init-param>

        <param-name>PackageSeparator</param-name>

        <param-value>.</param-value>

   </init-param>

</servlet>

 

error 3 발생 위치)

web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

     version="2.5"

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

 

 

해결(solution)

error 1 해결)

<web-resource-collection>

   <web-resource-name>test</web-resource-name>

   <url-pattern>/_ah/api/*</url-pattern>

</web-resource-collection>

 

error 2 해결)

web.xml

<servlet>

   <servlet-name>WorkerServlet</servlet-name>

   <servlet-class>jeus.servlet.servlets.WorkerServlet</servlet-class>

<init-param>

        <param-name>ServletRoot</param-name>

        <param-value>D:\workspace\proj\WebContent\WEB-INF\classes</param-value>

   </init-param>    

   <init-param>

        <param-name>PackageSeparator</param-name>

        <param-value>.</param-value>

   </init-param>

<load-on-startup>1</load-on-startup>

</servlet>

 

error 3 해결)

web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

     version="3.0"

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