在 Eclipse 環境下使用 Lomboz 開發 EJB 時,原有的 jboss400.server 配置僅適用於 JBoss 4.0.0。升級至 JBoss 4.0.1 或 4.0.1 SP1 後,必須使用對應的 jboss401.server 定義文件,否則無法正確啟動應用服務器、部署模塊或建立 JNDI 連接。本文提供完整的配置文件內容,並說明關鍵路徑的修改要點。
將以下內容保存為 jboss401.server,放置於 Lomboz 的 server 定義目錄(通常為 eclipse/plugins/org.objectweb.lomboz.server.core_*/servers/):
<SERVERDEFINITION name="JBOSS 4.0.1" earmodules="true" webmodules="true" ejbmodules="true">
<property id="serverRootDirectory" type="directory" label="Application Server Directory:" default="I:/Software/jboss-4.0.1"/>
<property id="serverAddress" type="string" label="Address:" default="127.0.0.1"/>
<property id="serverPort" type="string" label="Port:" default="8080"/>
<property id="serverConfig" type="string" label="Server Configuration (minimal/default/all):" default="default"/>
<property id="classPathVariableName" type="string" label="Classpath Variable Name:" default="JBOSS4.0.1"/>
<property id="classPath" type="directory" label="Classpath Variable:" default="I:/Software/jboss-4.0.1"/>
<SERVERHOME>${serverRootDirectory}</SERVERHOME>
<WEBMODULESDEPLOYDIRECTORY>${serverRootDirectory}/server/${serverConfig}/deploy</WEBMODULESDEPLOYDIRECTORY>
<EJBMODULESDEPLOYDIRECTORY>${serverRootDirectory}/server/${serverConfig}/deploy</EJBMODULESDEPLOYDIRECTORY>
<EARMODULESDEPLOYDIRECTORY>${serverRootDirectory}/server/${serverConfig}/deploy</EARMODULESDEPLOYDIRECTORY>
<JNDIINITIALCONTEXTFACTORY>org.jnp.interfaces.NamingContextFactory</JNDIINITIALCONTEXTFACTORY>
<JNDIPROVIDERURL>jnp://${serverAddress}:1099</JNDIPROVIDERURL>
<STARTCLASS>org.jboss.Main</STARTCLASS>
<STARTWORKINGDIRECTORY>${serverRootDirectory}/bin</STARTWORKINGDIRECTORY>
<STARTVMPARAMETERS>-Dprogram.name=run.bat -Djava.endorsed.dirs=${serverRootDirectory}/bin/../lib/endorsed -Xms128m -Xmx512m</STARTVMPARAMETERS>
<STARTPROGRAMARGUMENTS>-c ${serverConfig}</STARTPROGRAMARGUMENTS>
<STOPCLASS>org.jboss.Shutdown</STOPCLASS>
<STOPWORKINGDIRECTORY>${serverRootDirectory}/bin</STOPWORKINGDIRECTORY>
<STOPVMPARAMETERS>-cp ${classPathVariableName}/bin/shutdown.jar -Djboss.boot.loader.name=shutdown.bat</STOPVMPARAMETERS>
<STOPPROGRAMARGUMENTS>-S</STOPPROGRAMARGUMENTS>
<SERVERCLASSPATH>
<JAR type="variable">JDK_TOOLS</JAR>
<JAR type="variable">${classPathVariableName}/bin/run.jar</JAR>
</SERVERCLASSPATH>
<CLIENTCLASSPATH>
<JAR type="variable">${classPathVariableName}/client/jboss-j2ee.jar</JAR>
<JAR type="variable">${classPathVariableName}/client/jnp-client.jar</JAR>
<JAR type="variable">${classPathVariableName}/client/jbossall-client.jar</JAR>
<JAR type="variable">${classPathVariableName}/client/jboss-common-client.jar</JAR>
<JAR type="variable">${classPathVariableName}/client/jbosssx-client.jar</JAR>
<JAR type="variable">${classPathVariableName}/client/log4j.jar</JAR>
<JAR type="variable">${classPathVariableName}/server/default/lib/jnpserver.jar</JAR>
</CLIENTCLASSPATH>
<PROJECTCLASSPATH>
<JAR type="variable">JDK_TOOLS</JAR>
<JAR type="variable">${classPathVariableName}/bin/run.jar</JAR>
<JAR type="variable">${classPathVariableName}/bin/shutdown.jar</JAR>
<JAR type="variable">${classPathVariableName}/client/jboss-j2ee.jar</JAR>
<JAR type="variable">${classPathVariableName}/server/${serverConfig}/lib/javax.servlet.jar</JAR>
<JAR type="variable">${classPathVariableName}/lib/jboss-system.jar</JAR>
<JAR type="variable">${classPathVariableName}/lib/concurrent.jar</JAR>
<JAR type="variable">${classPathVariableName}/server/${serverConfig}/lib/jboss.jar</JAR>
<JAR type="variable">${classPathVariableName}/server/${serverConfig}/lib/jnpserver.jar</JAR>
<JAR type="variable">${classPathVariableName}/server/${serverConfig}/lib/jpl-pattern.jar</JAR>
<JAR type="variable">${classPathVariableName}/server/${serverConfig}/lib/jpl-util.jar</JAR>
<JAR type="variable">${classPathVariableName}/server/${serverConfig}/lib/jboss-transaction.jar</JAR>
<JAR type="variable">${classPathVariableName}/server/${serverConfig}/lib/bcel.jar</JAR>
</PROJECTCLASSPATH>
<WEB><DEPLOY><UNDEPLOY></UNDEPLOY></DEPLOY></WEB>
<EJB><DEPLOY><UNDEPLOY></UNDEPLOY></DEPLOY></EJB>
<EAR><DEPLOY><UNDEPLOY>
<WEBMODULE><DEPLOY><UNDEPLOY></UNDEPLOY></DEPLOY></WEBMODULE>
<EJBMODULE><DEPLOY><UNDEPLOY></UNDEPLOY></DEPLOY></EJBMODULE>
</UNDEPLOY></DEPLOY></EAR>
</SERVERDEFINITION>
| 屬性 ID | 含義 | 修改建議 |
|---|---|---|
| serverRootDirectory | JBoss 安裝根目錄 | 改為實際安裝路徑,如 D:/java/jboss-4.0.1 |
| serverAddress | 綁定 IP 地址 | 本機測試用 127.0.0.1,集群/遠程需改為具體 IP |
| serverPort | HTTP 端口 | 默認 8080,衝突時修改 |
| serverConfig | Server 配置集 | 可選 minimal/default/all,生產常用 default |
| classPathVariableName | 類路徑變量名 | 建議與 JBoss 版本對應,如 JBOSS_401 |
| classPath | 類路徑變量值 | 同 serverRootDirectory |
也可在 Eclipse 中通過 Window → Preferences → Lomboz → Server → Server Definitions 圖形化修改上述路徑,無需手動編輯 XML。
Started in xxx ms 即成功。https://localhost:8080/your-app 驗證。JNDIPROVIDERURL 使用 1099 端口(非 HTTP 8080),防火牆需放行。-Xms128m -Xmx512m 視項目規模調整,大型項目建議 -Xms512m -Xmx1024m 以上。server/default/deploy/jboss-web.deployer/server.xml 與 conf/jboss-service.xml 中對應端口,並同步更新此處配置。此配置經 JBoss 4.0.1 GA 及 4.0.1 SP1 測試通過。若升級至 JBoss 4.0.2+ 或 4.2.x,部署目錄結構、JAR 包名稱、啟動類均有變化,需參考對應版本文檔重新製作 server 定義文件。