為研究 Seam 框架(特別是 jBPM 整合),官方推薦 JBoss AS,但體積超 100MB。發現 Seam 文檔支持 Tomcat + 嵌入式 JBoss 方案,嵌入式 JBoss 僅 20MB,輕量許多。
軟件版本:
版本匹配至關重要,請盡量對齊環境以避免兼容性坑。
解壓嵌入式 JBoss,將 bootstrap 和 lib 目錄下除 jndi.properties 外的所有文件複製到 Tomcat 的 lib 目錄。
從 Tomcat lib 刪除 annotations-api.jar(嵌入式 JBoss 自帶更新版本)。
conf/server.xml 添加監聽器在所有現有 Listener 之後添加嵌入式 JBoss 引導監聽器:
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener" />
<!-- 嵌入式 JBoss 監聽器 -->
<Listener className="org.jboss.embedded.tomcat.EmbeddedJBossBootstrapListener" />
</Server>
conf/context.xml 啟用 WAR 掃描<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- 嵌入式 JBoss Web 監聽器 -->
<Listener className="org.jboss.embedded.tomcat.WebinfScanner" />
</Context>

在系統環境變量 JAVA_OPTS 添加:
-Dsun.lang.ClassLoader.allowArraySyntax=true
編輯 build/default.build.properties,設置 tomcat.home:
tomcat.home=G:\dev\jboss\apache-tomcat-6.0.24
cd examples\dvdstore
ant tomcat.deploy
訪問 https://localhost:8080/jboss-seam-dvdstore,應看到示例首頁:
