JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器。 因为JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用它,而不用支付费用。2006年,Jboss公司被Redhat公司收购。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3.0的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
1、JBoss是免费的,开放源代码J2EE的实现,通过LGPL许可证进行发布。但同时也有闭源的,开源和闭源流入流出的不是同一途径。 2、JBoss需要的内存和硬盘空间比较小。 3、安装便捷:解压后,只需配置一些环境变量即可。 4、JBoss支持”热部署”,部署BEAN时,只拷贝BEAN的JAR文件到部署路径下即可自动加载它;如果有改动,也会自动更新。 5、JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。 6、用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。 7、Jboss支持集群。
1、首先,要安装JDK,配置JAVA_HOME环境变量。配置Path在“变量值”里最前面加入:%JAVA_HOME%/bin; 做完后,在命令窗口中运行java,javac有输出便可。 2、其次,将下载的JBoss解压,即完成安装。(解压目录最好不要有空格,否则运行容易出现异常) 下载地址: http://www.jboss.org/jbossas/downloads/ 或登录公司ftp获取。 3、然后,配置JBOSS_HOME环境变量,值为JBoss的解压路径。 4、最后,可以运行%JBOSS_HOME%\bin\目录中的run.bat运行JBoss;地址栏输入http://localhost:8080/会进入JBoss的欢迎界面。 5、网上有的文章提到安装AOP,我们这里没有安装。
跟tomcat一样,jboss也有一个部署目录,那就是jboss/server目录,其中有三个目录:all,default,minimal,代表了jboss提供的三种部署方式,all表示jboss提供的服务全部打开,default表示默认的jboss服务,minimal表示只打开最基本的。这里面可以增加自己的部署,我们只使用default。
进入default目录后,有以下几个目录:
conf:一些配置文件。 data:保存的数据,比如有状态会话bean。 deploy:部署目录,所有的应用都部署在这里面,相当于apache的htdocs。 lib:部署的应用程序需要使用到的其它库(jar)。 log:jboss的日志。 tmp:部署应用是产生的临时文件。 work:工作目录,所部署的应用(一些jar压缩文件)会被解压在这里。
要部署我们的应用,还需要做以下几步:
网上一些文章说还需要拷贝一些.xml配置文件,及JDBC驱动的.jar包。但实际实验中并不需要,只要部署的项目中jdbc配置正确即可。(理论上说应该是项目内外的都会加载,但实验中把项目外部的jdbc配置文件配好,项目内部的不配,结果是不行的)。
1、 把项目文件夹名改为ROOT.war (.war的才会被识别,使用ROOT浏览器访问时不用输项目名)。放到 \server\default\deploy 下。 2、 保证项目中jdbc链接正确。路径:\ROOT.war\WEB-INF\classes\jdbc.properties
1相对路径:server\default\deploy\jboss-web.deployer\ server.xml 中
<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" />将上面的8080端口修改为你想要的端口即可。
路径:server\default\deploy下去掉和应用无关的部署,加快jboss运行速度 bsh-deployer.xml client-deployer-service.xml ear-deployer.xml ejb-deployer.xml http-invoker.sar jboss-bean.deployer jboss-ws4ee.sar jms jsr88-service.xml schedule-manager-service.xml scheduler-service.xml sqlexception-service.xml uuid-key-generator.sar 由于这次我们还关闭了管理端口jmx-console所以要去掉jmx-console.war 和management。 a、关闭jmx-console: 删除 jboss/server/default/deploy下目录jmx-console.war、management
关于jmx-console 和web-console的安全配置这里暂不做说明,想了解的可参看本文最后列出的参考文档。
去掉server\default\deploy\jboss-web.deployer\ROOT.war 最后,重启,输入以下地址完成测试: http://127.0.0.1/jmx-console http://127.0.0.1/web-console http://127.0.0.1/jbossindex.html http://127.0.0.1/status
配置deploy/jboss-web.deployer/server.xml文件 .
<Connector port="8080" address="0.0.0.0" maxThreads="1600" minSpareThreads="100" maxSpareThreads="250" emptySessionPath="false" enableLookups="false" redirectPort="8443" acceptCount="800" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />maxThreads:表示最多同时处理的连接数。应该将线程数(最大线程数)设置比最大预期负载(同时并发的点击)多25%(经验规则)。 acceptCount:当同时连接的人数达到maxThreads时,还可以接收排队的连接。 minSpareThread:指“启动以后,总是保持该数量的线程空闲等待”;设置比预期负载多25%。 maxSpareThread:指“如果超过了minSpareThread,然后总是保持该数量的线程空闲等待”;设置比预期负载多25%。 其中主要修改两个参数maxThreads和acceptCount值。增加maxThreads,减少acceptCount值有利缩短系统的响应时间。但是maxThreads和acceptCount的总和最高值不能超过6000,而且maxThreads过大会增加CPU和内存消耗,故低配置用户可通过降低maxThreads并同时增大acceptCount值来保证系统的稳定。
路径:% JBOSS_HOME %\bin\run.bat
下面是个例子,请根据实际情况进行修改,修改run.conf文件中的如下内容: JAVA_OPTS=”-Xms256m -Xmx2048m -XX:NewSize=256m -XX:MaxNewSize=512m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -Djboss.platform.mbeanserver”
参考文档: 百度百科 http://baike.baidu.com/view/309533.htm JBOSS性能优化 http://www.blogjava.net/Noah/articles/340440.html JBoss的配置 http://developer.51cto.com/art/200906/130210.htm http://developer.51cto.com/art/200906/129945.htm jboss安全配置 http://wenku.baidu.com/view/47664a03f12d2af90242e6a3.html