讓jsp頁面支持jdk5

這次項目生產環境用的是WAS6.1,jdk是ibmjdk5,因爲看到jdk已經從1.4升級到了1.5,於是我們開始基於jdk5來開發頁面還有後臺代碼。

在部署到WAS上的時候碰到了一個奇怪問題,後臺java代碼基於jdk1.5特性寫的地方都沒問題,但是jsp頁面就出現了不能支持jdk5特性的情況,比如一個Integer不能直接賦值給一個int變量等等。。。如果要全部改寫頁面基於jdk1.4的語法來寫,那返工會很多。既然WAS的jdk版本已經上升到了5.0,那麼有沒有什麼辦法能讓jsp也能支持jdk5呢?

 

通過下面的辦法實戰了一把, 還是成功了:

 

----------------------------------------------------------------------------------------------------------------------------------

環境:(產品,平臺,機型,軟件版本,等) 

產品: WebSphere Application Server 
平臺: 跨平臺 
版本: 6.1.x 

問題描述: 
缺省情況下,JSP 編譯器用 1.3 的規範來編譯 JSP 文件,如果您在 WAS V6.1 裏用了帶 JDK 1.5 的特性的 JSP,編譯會失敗 

解答: 
爲了確保您的 JSP 被正確編譯,請在打包時的 JSP 屬性裏添加一個屬性:jdkSourceLevel,值爲:15,這是推薦的方法,如果您不能重新打包後重新發布應用,請按照下面的步驟修改相關文件: 
找到下面的兩個文件: 
<WAS-HOME>/profiles/AppSrv01/config/cells/<cellname>/applications/<appname>/deployments/<appname.war>/WEB-INF/ibm-web-ext.xmi 
<WAS-HOME>/profiles/AppSrv01/installedApps/<nodename>/<appname>/<appname.war>/WEB-INF/ibm-web-ext.xmi 

在最後面的 </webappext:WebAppExtension> 前添加下面一行: 

<jspAttributes xmi:id="JSPAttribute_113" name="jdkSourceLevel" value="15"/> 

到這裏,只要重啓一下app就能看到效果了。



如果要看jsp編譯過的 class 文件,可以在這裏找到: 

<WAS-HOME>/profiles/AppSrv01/temp/<nodename>/<appname>/<appname.war>/*.class 

如果用 JspBatchCompiler 命令可以帶下面的參數: 

JspBatchCompiler -enterpriseapp.name <App_Name> -jdkSourceLevel 15 -keepgenerated true

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章