前提是已经安装了jdk(jre)并配置环境变量
下载jboss5.x.x
解压后放在d盘下,注意路径中不能有空格或者汉字(所以不要放到programfiles下面)
启动jboss:D:\jboss-5.1.0.GA\bin\run.bat (windows用这个启动)
打开ie,http:\\127.0.0.1:8080
可以进入jboss的管理页面,证明jboss是正常的。
下面开始部署我的应用
1、 配置oracle数据源
在D:\jboss-5.1.0.GA\docs\examples\jca下面,复制oracle-ds.xml,
粘贴到D:\jboss-5.1.0.GA\server\default\deploy目录下,用ultraEdit打开,修改为如下内容
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
将oracle驱动jar包ojdbc14.jar(或者ojdbc14_g.jar)拷贝到
D:\jboss-5.1.0.GA\server\default\lib目录下,数据源配置完毕
2、 部署项目
把开发好的fids.war文件夹(或者是打包好的war)复制到
D:\jboss-5.1.0.GA\server\default\deploy目录下
现在启动jboss,可能会报一大堆错,基本上是jar冲突引起的,jboss5在类的加载上非常严格,如果jboss本身自带了某些jar包,你的项目里在打包时就不能再有相同的jar,我遇到的问题是Web mapping 已存在、xml解析错误以及数据库驱动路径错误,错误信息部分如下:
org.jboss.deployers.spi.DeploymentException:Web mapping already exists for deployment URL file:/D:/jboss-5.1.0.GA/server/default/deploy/aocs.war/
org.jboss.xb.binding.JBossXBRuntimeException:Failed to create a new SAX parser
----------------------------------------------------------------------------------------------------------------------
org.jboss.resource.JBossResourceException:Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException:Apparently wrong driver class specified for URL: class:oracle.jdbc.driver.OracleDriver, url:jdbc:oracle:thin:@192.168.2.163:1521:orcl)
解决办法:
把D:\jboss-5.1.0.GA\server\default\deploy下的ROOT.war删除;
把项目里lib目录下(D:\jboss-5.1.0.GA\server\default\deploy\fids.war\WEB-INF\lib)
的ojdbc14.jar,ojdbc14_g.jar,xmlParseApi.jar,xercesImpl.jar删除,重新启动jboss,ok了。
3、 新的问题出现了,本机可以通过127.0.0.1:8080来访问,其他机器却不能通过ip地址来访问,修改D:\jboss-5.1.0.GA\server\default\deploy\jbossweb.sar\server.xml
这里把8080端口改为80,访问时就不需要在ip后面加端口号8080
把address改为0.0.0.0,或者改成真实的服务器ip,本机以外的用户就可以通过ip来访问了。
最后修改一下jboss启动内存,默认只有512m,如果你的项目够大,这点内存是不够的,用记事本打开run.conf.bat,找到JAVA_OPTS="-Xms128m –Xmx512m -XX:MaxPermSize=256m 改成
JAVA_OPTS="-Xms512m -Xmx1400m -XX:MaxPermSize=256m
注:32位jdk最大支持1500m,再大会报错,无法启动jboss,64位jdk据说没有此限制。
改动完后执行一下,重新启动jboss,看启动内存是不是已经变了。
有的人喜欢加上Xss128k,这个一定不要太大,否则每个线程都会占用这样的数值,线程多了,内存很快耗尽,jboss崩溃。