在Tomcat中部署seam工程
??? 眾所周知,Tomcat、Resin是servlet的容器,反應迅速,啟動時間快,配置簡單(Resin反應應該更迅速一些),但如果用到EJB工程的的話,它們就不能勝任了,比如seam工程就不能完整的在Tomcat中運行,這個時候就必須借助于一個鼎鼎大名的JBoss(當然Websphere、Weblogic也可以),但用了一段時間的JBoss,真的想說愛你不容易,啟動一下竟然要1分多鐘,給開發與調試帶來極大的不便,而且配置文件一大堆,真是個重量級的Web應用服務器,但目前用的這個seam工程又不能在Tomcat中運行,程序員還是真的傷不起。
??? 接老大的指令,專門花1天的時間來研究下如何將seam工程移入tomcat,翻閱相關在資料,完全無頭緒,老大親自上陣又花了1天時間,發現還是有法可循,國內關于seam的資料還真遠遠不及hibernate、spring。
??? 1.首先需在soouceforce上下載一個JBoss-embedded的庫,包含JBoss的核心類庫。下載地址為
?
http://sourceforge.net/projects/jboss/files/Embedded%20JBoss/Embedded%20JBoss%20Beta%203/
?
??? 2.將嵌入式JBoss的 bootstrap 和lib目錄下的所有文件和目錄,除jndi.properties 文件之外,都拷貝到Tomcat的lib目錄下。從Tomcat lib目錄刪除annotations-api.jar 文件。
??? 3.增加嵌入式JBoss偵聽器EmbeddedJBossBootstrapListener到Tomcat的conf/server.xml,它必須出現在該文件中所有其他偵聽器的后面。
?
<Listener className="org.jboss.embedded.tomcat.EmbeddedJBossBootstrapListener" />
?
??? 4.增加WebinfScanner 偵聽器到conf/context.xml
?
<Listener className="org.jboss.embedded.tomcat.WebinfScanner" />
?
??? 5.更改Tomcat的bin/catalina.bat,在文件頂部注釋行下增加一個新行
?
set JAVA_OPTS=%JAVA_OPTS% -Dsun.lang.ClassLoader.allowArraySyntax=true
?
然后即OK了。據本人測試,將此tomcat在eclipse下運行seam工程的話還是會有問題,解決辦法:在eclipse面板中打開該tomcat選項,在啟動參數加上-Dsun.lang.ClassLoader.allowArraySyntax=true。
?
還會出現servlet不可用的問題,解決辦法:seam工程的src/hot目錄的classpath默認會在WEB-INF/dev下,這樣servlet經常會提示找不到類,將src/hot目錄的classpath設置為WEB-INF/classes即OK
?
?
posted on 2013-03-26 09:24?liangge0218 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/liangge0218/archive/2013/03/26/3292405.html
總結
以上是生活随笔為你收集整理的在Tomcat中部署seam工程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hadoop大数据开发基础_Java大数
- 下一篇: 欺骗