天天看點

Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules(由Version版本差異引起)前話一些整理針對開始提問的回答總結

前話

最近複習JavaWeb,在看一些視訊的時候,發現視訊中建立dynamic web 檔案時候,會在 version 版本中把預設的 3.0 改為 2.5 。以前初學的時候也沒有深入的考慮,現在再看視訊發現了這個問題,于是就想多了解一些這樣做的原因。
  • version 選擇的場景
    Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules(由Version版本差異引起)前話一些整理針對開始提問的回答總結
    Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules(由Version版本差異引起)前話一些整理針對開始提問的回答總結
  • 問題焦點
預設版本為3.0,且可選版本不唯一,為什麼不選擇最新的版本3.0,或者其他老版本,而唯獨選擇了版本2.5。 那麼2.5和3.0的差異在哪裡,選擇2.5在寫項目時候又有什麼優于3.0的地方呢?

一些整理

  • Web Module Version 概念
Dynamic web module version即表示所建web工程的版本,不同版本的web項目有不同的應用環境。例如,3.0的web項目就不能部署在JBoss5以及早起的伺服器上。
  • Web Module Version 與 Tomcat 之間的對應關系

dynamic web module 2.4 << ------ >> Tomcat 5.5

dynamic web module 2.5 << ------ >> Tomcat 6.0

dynamic web module 3.0 << ------ >> Tomcat 7.0

  • 常見因 version 版本差異引起的錯誤提示

Tomcat version 5.5 only supports J2EE 1.2, 1.3, 1.4 Web modules

Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules

Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web

modules

Project facet Dynamic Web Module version 3.0 is not supported.

Project facet Dynamic Web Module version 2.5 is not supported.

  • 如何解決上述版本差異引起的問題?

問題的核心是 version 與 Tomcat 版本不一緻。是以,隻需修修改 version 或者 Tomcat 的版本使兩者處于一種互相對應的地位即可,以下是兩種解決方案

1.修改配置檔案中的 version版本

.

在項目的.setting檔案夾下有個org.eclipse.wst.common.project.facet.core.xml檔案,裡面配置各種版本資訊

<?xml version="1.0" encoding="UTF-8"?>

<faceted-project>
    <fixed facet="java"/>  <fixed facet="jst.web"/>
    <fixed facet="wst.jsdt.web"/>
    <installed facet="java" version="1.7"/>
    <installed facet="jst.web" version="3.0"/>
    <installed facet="wst.jsdt.web" version="1.0"/>
  </faceted-project>
           

将< installed facet=“jst.web” version=“3.0”/>修改成< installed facet=“jst.web” version=“這裡填入要修改的版本”/>即可。

.

2.更換對應版本的 Tomcat ,安裝後更改 eclipse 中 Tomcat 的預設版本後重新開機即可

針對開始提問的回答

  • 為什麼選擇 3.0 而不選擇其他版本
主要因為相容性問題,也就是 juno 版本才支援 Dynamic Web Module 3.0 的,連最常用的galileo也隻能支援 2.5 。且不同的 tomcat 與 Web Module Version 之間往往因為版本差異引起各種部署及其他問題,因而選擇 2.5 的原因是能更多的适應于不同的用戶端之間,盡可能的避免了了一些因為版本沖突引起的錯誤
  • 當遇到因版本差異而導緻的項目無法部署時候如何解決?

方法1:按照前面所講的方式修改 version 的版本

方法2:将 Tomcat 的版本更新,使得 version 和 Tomcat 版本能夠對應

總結

各種不同技術之間的更新速度差異較大,不同技術之間的版本的支援無法同步更新疊代,會出現某一項技術更新太快而無法與某一項技術相容,但是這一項技術又無法舍棄的情況,是以,就産生了這些情況。

繼續閱讀