1. 程式人生 > >J2EE Web專案Tomcat跑不起來的一些問題解決過程彙總

J2EE Web專案Tomcat跑不起來的一些問題解決過程彙總

一個J2EE的web專案,正式投產環境是weblogic,開發環境是tomcat

但是實際用的過程發現了一些問題,記錄下如何解決這些“奇怪問題”的。

1.  使用run as 居然沒有Run as server可以選,通過server 新增resource也提示沒有可用資源。

解決: 因為專案是從版本庫匯入的,eclipse識別不了該專案是web專案,故有上面的問題。

      選中專案 --右鍵屬性 --選擇 project facets --選中 Dynamic  Web Module ,確認後eclipse就知道這個web專案了。

2. run as 對應的專案,選中的tomcat是啟動了,但是沒有deploy的過程,即使點選server裡的publish也沒用。

解決: 其實eclipse有執行deploy(部署)的操作,但是沒有人告訴它,部署的規則。 

      選中專案--右鍵屬性  --選擇Deployment Assembly --可以看到部署的對應結構。

* 有時候專案屬性根本沒有這個項,怎麼辦?

解決:修改專案的 .project 配置檔案 在<natures>下增加 

  <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>

3 如果選中Dynamic web project 選擇不能確定,或

tomcat x.x does not support version 2.5 of J2EE specification.....異常,

排除Dynamic web Module於某些項不能同時選擇的異常.

解決方式是

開啟專案根目錄下的.settings在有個名為org.eclipse.wst.common.project.facet.core.xml的檔案,裡面配置有各種版本資訊。此時,按照通常按照如下修改.

在<faceted-project>標籤下修改為
  <fixed facet="wst.jsdt.web"/>
  <fixed facet="jst.web"/>
  <fixed facet="java"/>
  <installed facet="java" version="1.6"/>
  <installed facet="jst.web" version="2.5"/>
  <installed facet="wst.jsdt.web" version="1.0"/>

重啟eclipse,重新在專案下點選左鍵選擇專案屬性 選擇Project facets 選中Dynamic web project ,java,javascript.應該就可以了


4. 編譯沒有問題,每次執行出現一些奇怪的問題,例如一些jndi的問題:Name java: is not bound in this Context 之類的。

解決: 網上有些解釋是tomcat的包衝突,在檢查了幾個包後,把專案依賴的幾個包放到jre runtime資源裡

例如serlvet-api.jar jsp-api.jar等,這樣編譯也不會報錯,執行也沒有出現jndi問題。

5. Tomcat5.5的一些問題:

   JDBC不支援 getJDBCMajorVersion等方法。  替換/common/lib/classes12.jar  為 ojbc14.jar

  jasperexception  type mismatch  cannot convert  double to Double 之類的。

  網上解釋是,因為jdk1.5之前沒有autoboxing 特性,但是檢查好幾遍了jdk版本都是1.6了

  最後通過替換 jasper的jar包解決問題。

  中間替換後執行時又提示 not found org/apache/juli/logging/logfactory  又替換/bin/tomcat-juli-jar 包解決。