JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Application Server » BEA Weblogic  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to topicthreaded modego to previous topicgo to next topic
己加入精華區
by browser at 2005-11-25 09:50
本主題所含的標籤
無標籤
作者 [分享] 在 WebLogic 下 pre-compile JSP 的方法 [精華]
dennys





發文: 58
積分: 4
於 2005-11-19 19:40 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
為什麼要 pre compile JSP 呢? 個人遇到的幾個問題是
1. Run-time 才 compile, 第一個使用到該 page 的 user 會覺得很慢
2. 萬一剛重起 server 之後就有很多 user 連進來, 同時間 compile 很多檔案會增加 CPU 的負擔
3. javac 會使用額外的 memory, 而且當同時有多個檔案需要 compile 時, 萬一 memory 不夠,
user 會得到 not enough space 的錯誤訊息.

最簡單的方法是改 weblogic.xml 是一種方法, 可參考這裡:
http://www.javaworld.com.tw/jute/post/view?bid=9&id=20894&sty=3

但是如果你的系統有上千個 JSP, 上述方法就不太適合了. 以我最近接的一個系統為例, compile JSP 就花了 1hr.
使用 javac, 當然改用 jikes 會快很多, 只是我通常只把 jikes 用在測試環境, production 還是習慣用 javac.

另外的方法是使用 weblogic 提供的 jspc 來 compile jsp 檔.
以一個 war 或 ear 為例, 將檔案解開, 使用下面指令即可 compile JSP 檔.
1
java weblogic.jspc -verbose -compileAll -k -d ./WEB-INF/classes *.jsp

在 compile 完之後, 請檢查輸出的檔案是否如下, 沒問題的話, 就使用 jar cvf xxx.war * 的指令包裝 war 檔.
1
2
3
WEB-INF/classes/jsp_servlet/__compiledJSP1.class
WEB-INF/classes/jsp_servlet/__compiledJSP2.class
...


參數說明:
-compileAll 指的是連子目錄也 compile
-k 指的是如果 compile 某個檔案有錯誤, 仍然繼續 compile 而不停止
-d 是輸出 .class 的目錄
完整說明可參考這裡: http://e-docs.bea.com/wls/docs61/jsp/reference.html

在 compile 完成之後, 還會顯示有哪些是有問題的, 如下. 但不會顯示詳細記錄, 所以還是得把 compile 的 log 記下來.
1
2
3
4
Error: [jspc]: 3 file(s) failed:
 /homepage1.jsp
 /homepage2.jsp
 /homepage3.jsp


以上適用 WebLogic 6.x 7.x 至於 8.x 以上, 和 EJBC 一樣, 都可用 APPC 來取代.


dennys edited on 2005-11-19 22:32
reply to postreply to post
生命不是用來尋找答案,
也不是用來解決問題的,
它是用來愉快的過生活。
http://dennys.tiger2.net/
作者 Re:[分享] 在 WebLogic 下 pre-compile JSP 的方法 [Re:dennys]
garlic





發文: 20
積分: 0
於 2005-11-24 18:17 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
jsp 的編譯是從 jsp -> .java -> .class
使用 jikes的感覺是 .java檔 compile的確變快了
但是由 jsp generate java source 時的 overhead還是存在
而且還滿久的, 還是 prefer dennys這招!


reply to postreply to post
» JWorld@TW »  Application Server » BEA Weblogic

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8