最近在做arcgis server,一個問題就是有些東西只能在較早版本的jdk和tomcat上跑,如果版本太新了,就有可能出問題。比如:我裝一個arcgis 9.3 server javascript api服務,別人的機器上好好的沒問題,我自己按步驟裝了,怎麼都有問題,就算把別人的整個tomcat拷過來,還是不行。鼓搗幾天,都搞不清楚問題在哪裡。今天猛然想到:可不可能不是我的問題,而是環境的問題?比如jdk和tomcat版本不對?----因為我用的都是最新本版的jdk 1.6.0_07和tomcat 6.0。於是二話不說,立即裝上老版本,過程如下:
1.jdk 1.5.0_01安裝。
這個不廢話了,關鍵是我想同時使用jdk 5和jdk6,又不想把我的環境弄得亂糟糟----原來的環境變數是1.6的不想改,僅在需要的時候使用jdk1.5,因此環境變數不動。
2.tomcat 5.5.26
原來的tomcat 6也不想動,於是修改conf/server.xml,把用到的三個連接埠改一下就可以了---只要不和tomcat6衝突,不和其他軟體連接埠衝突就可以。
3.由於tomcat 5預設使用的是系統設定的環境變數,裡面指定的jdk為jdk1.6,而在這裡我想用的是jdk1.5,
於是需要做如下改動:
在tomcat 5的bin目錄下的setclasspath.bat檔案開始加上如下指定:
set JRE_HOME=C:\jdk1.5.0_09
set JAVA_HOME=C:\jdk1.5.0_09
set JSSE_HOME=C:\jdk1.5.0_09
這樣啟動tomcat時,就會使用指定的jdk1.5而不是預設的環境變數裡設定的jdk1.6。
至此,jdk1.5+tomcat 與 jdk1.6+tomcat 6就完美的共存了。
另外,我的arcgis 9.3 server javascript api服務使用jdk1.5+tomcat,一下就成功了,原來在jdk1.6+tomcat 6下死活都成不了的,害我浪費了好幾天時間,真叫人無語。看來使用這些玩意,還真得注意----但,可恨的是為什麼arcgis 9.3 server javascript api在jdk1.6下不能用都不給一個說明?甚至連簡單的一句提示都沒有,還得靠使用者來慢慢琢磨,真受不了。
4. 還有一個問題,就是原來在jdk6中編譯好的工程,如果直接拷到使用jdk5的tomcat5中發布的話,就會出錯:
Bad version number in .class file
……
解決辦法就是在myEclipse中改變編譯器,具體方法:
Project->Properties->Java Compiler->Configure Workspace Setting,在彈出的頁面中可以進行設定。
當然,以後用jdk1.6的話別忘了再改過來。