에러(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"> |