java/WEB WAS

tomcat 9 (servlet4.0, jdk1.8) 에 쓰던 어플리케이션을 Jeus7에 배포하면 에러가 나는 이유

짱가라 2021. 5. 14. 11:46
728x90
반응형

개요

Tomcat 9에서 쓰던 어플리케이션을 Jeus7에서 Deploy하려다 보니 JeusServer.log 파일에 아래와 같은 오류가 발생한다. 

Cannot find the declaration of element 'web-app'

원인은 JEUS 7 은 servlet 3.0까지 지원하는데 web.xml 파일에 servlet 4.0을 선언하고 어플리케이션을 디플로이 하려다 보니 생기는 오류였다.( tomcat 9는 servlet 4.0 지원)

결론적으로 서블릿 버전이 다르기 때문이다. 

jeus7에서 정상적으로 돌아가는 웹어플리케이션은 서블릿 2.5 or 3.0, jdk1.7 기반이어야 한다. 

결론적으로 톰캣 7에서 돌아가는 소스여야한다.

각 servlet 버전별 web.xml 스키마 헤더 

1. servlet 4.0



              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_4_0.xsd"
              version="4.0">

2. servlet 3.1



               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>

3. servlet 3.0

<?xml version="1.0" encoding="UTF-8"?>
http://java.sun.com/xml/ns/javaee"</web-app xmlns="
              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">
</web-app>

4. servlet 2.5

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="servlet-2_5" version="2.5"
              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">
</web-app>

5. servlet 2.4

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="servlet-2_4" 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">
</web-app>

6. servlet 2.3

<?xml version="1.0" encoding="UTF-8"?>
http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
</web-app>

7. servlet 2.2

<?xml version="1.0" encoding="UTF-8"?>
http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
</web-app>

** 2.4 부터는 DTD(Document Type Definition)를 사용하지 않고 xsd(XML Schema Definition)로 변경되었네요

 

728x90
반응형