http://www.cnblogs.com/lovingprince/archive/2009/09/03/2166307.html Step one: download JBoss Application Server , e.g. jboss-4.2.2.GA
Step two: extract jboss-4.2.2.GA.zip to a local dir say ${JBOSS_HOME}
Step three: config -
注:以下配置对应的jboss版本为4.2.2.GA,部署的应用类型为ear。如果你的jboss版本不同或部署的应用类型不是ear,那配置上可能略有差别,其差异性不在本文讨论范围内。
1.拷贝数据源(datasource)配置文件(e.g. oracle-xxx-ds.xml)到${JBOSS_HOME}/server/default/deploy目录
2.修改class loader,打开
for jboss-4.2.x: ${JBOSS_HOME}/server/default/deploy/jboss-web.deployer/META-INF/jboss-service.xml
for jboss-4.0.x: ${JBOSS_HOME}/server/default/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml
文件,将UseJBossWebLoader属性设置为true,以使用JBoss Loader来代替Tomcat Loader。
不过笔者 建议 还是使用jboss的默认配置,即 UseJBossWebLoader=false ,原因参见 http://jira.jboss.com/jira/browse/JBAS-1691 。
P.S. 需将${war.dir}/WEB-INF/lib目录中的spring等类包都删除?因为默认配置会重复加载这些类包,但请注意denali应用不能将${war.dir}/WEB-INF/lib目录中的jar包删除的哦!因为denali中使用的tld必须inline加载?!。。。此处省略n字。。。未完待续。。。
3.修改访问端口
方法一:修改${JBOSS_HOME}/server/default/deploy/jboss-web.deployer/server.xml文件,将port属性为8080的Connector修改为7001。e.g.
<!-- A HTTP/1.1 Connector on port 8080 -->
<Connector port="7001" address="${jboss.bind.address}"
maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"/>
方法二 :修改${JBOSS_HOME}/server/default/conf/jboss-service.xml文件,还原被注释掉的部分:
<mbean code="org.jboss.services.binding.ServiceBindingManager"
name="jboss.system:service=ServiceBindingManager">
<attribute name="ServerName">ports-02</attribute>
<attribute name="StoreURL">${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml</attribute>
<attribute name="StoreFactoryClassName">
org.jboss.services.binding.XMLServicesStoreFactory
</attribute>
</mbean>
这样会将访问端口由8080改为8280,而且这个配置还有一个好处是可以在同一台机器上跑多个jboss as,只要将各个jboss as的这个配置项设置为不同的ports-xx就可以了,所以方法二也是推荐 配置。
4.支持中文(如果不配置本项目则在GET方式的url中的中文将变为乱码¹)
修改${JBOSS_HOME}/server/default/deploy/jboss-web.deployer/server.xml文件,在每一个Connector中添加属性useBodyEncodingForURI="true"。e.g.
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" useBodyEncodingForURI="true" />
...
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
emptySessionPath="true" enableLookups="false" redirectPort="8443" useBodyEncodingForURI="true" />
...
5.支持热部署(hot deployment)和远程目录部署
修改${JBOSS_HOME}/server/default/conf/jboss-service.xml文件,添加远程目录到deployment/undeployment mbean的urls属性中。e.g.
<mbean code="org.jboss.deployment.scanner.URLDeploymentScanner"
name="jboss.deployment:type=DeploymentScanner,flavor=URL">
...
<attribute name="URLs">
</attribute>
...
6.支持remote debugging
修改${JBOSS_HOME}/bin/run.bat,还原被注释掉的部分:
rem set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS%
修改为
set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n %JAVA_OPTS%
注意设置 suspend=n,使debug时不会挂起