一、JBoss
JBoss是一个可伸缩的服务器平台。当你的EJB程序编制完成后,如果访问量增加,只要通过增加服务器硬件就可以实现多台服务器同时运算,提高了负载容量。这个性能容量在理论上是没有限制的,理论上无最大支持在线人数的上限。对于JBoss/EJB这样的平台来说,无最大访问量限制是JBoss/EJB不同于Spring /Tomcat等平台的最大优点所在。而且EJB 3.0也将出现轻量化解决方案,其实随着发展,已经模糊了轻量/重量的区别,如果还是以轻量/重量作为架构选择的标准,无疑是不明智的。可伸缩性应该是架构选择的主要标准。所谓可伸缩性,只在小型系统、一台服务器情况下,我的系统也可以良好运转,多台服务器扩展后,我的系统只需通过增加硬件就可以实现性能扩展,无需修改太多软件。
JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器。 因为JBoss代码遵循LGPL许可,你可以在任何商业应用中免费使用它,而不用支付费用。JBoss支持EJB 1.1和EJB 2.0 EJB3.0的规范,它是一个管理EJB的容器和服务器。类似于Sun's J2SDK Enterprise Edition(J2EE),JBoss的目标是一个源代码开放的J2EE环境。但JBoss核心服务仅是提供EJB服务器。JBoss不包括serverlers/JSP page 的WEB容器,当然可以和Tomcat或Jetty绑定使用。
二、JBoss六大优点
1、JBoss是免费的,开放源代码J2EE的实现,它通过LGPL许可证进行发布。
2、JBoss需要的内存和硬盘空间比较小。
3、安装非常简单。先解压缩JBoss打包文件再配置一些环境变量就可以了。
4、JBoss能够"热部署",部署BEAN只是简单拷贝BEAN的JAR文件到部署路径下就可以了。如果没有加载就加载它;如果已经加载了就卸载掉,然后LOAD这个新的。
5、JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。
6、用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。
三、JBoss的安装和配置
1.JBoss的安装和配置:可以直接拷贝使用,但是要改动 %JBoss-HOME%\bin\run.bat里JAVA-HOME的设置,改成本机JDK的目录。运行run.bat来启动JBoss关闭JBoss:关闭JBoss的 DOS 窗口或按"CTRL + C"。
2.JBoss的目录结构:
bin:开始和停止JBoss的地方。其中有两个主要的批处理文件:run.bat和shutdown.bat。要启动JBoss只要执行run.bat文件即可;要停止JBoss必须执行shutdown.bat。
注意:shutdown.bat文件直接执行并不会自动停止JBoss,它必须要输入参数,参数意义如下:h显示帮助信息;D设置系统属性;-停止处理选项;s停止用JNDI URL指定的远程服务;n通过制定JMX名字来停止服务;a适配到指定的JNDI名称的远程服务;u指定用户名称;p指定用户密码;S停止服务器;e从虚拟机退出;H暂停。一般,我们使用S选项来停止服务器。即执行shutdown.bat -S。
docs:放置JBoss的例子、测试脚本和各种脚本配置文件的DTD。
lib:放置JBoss所需要的部分jar包文件。
client:放置EJB客户端运行时所需要的jar包。
server:放置各启动类型的服务器端EJB配置所需要的文件等。
backup:以80端口服务修改这个文件: {%JBOSS_HOME%}\server\default\deploy\jbossweb-tomcat41.sar\META-INF\jboss-service.xml在"8080"的配置后加入以下代码<!-- A HTTP/1.1 Connector on port 80 --><Connector className="org.apache.coyote.tomcat4.CoyoteConnector"port="80" minProcessors="5" maxProcessors="100"enableLookups="true" acceptCount="10" debug="0"connectionTimeout="20000" useURIValidationHack="false"/>重新启动JBoss就OK了
JBoss的启动过程设置环境变量 JBOSS_CLASSPATH (可以自己加上安全管理器和xml解析器)a) %JBOSS_CLASSPATH%;b) %JAVA_HOME%/lib/tools.jar;c) run.jard) ../lib/crimson.jar;设置启动参数JAXP(xml解析器和相应工厂)启动设置配置信息读取配置文件JBoss.properties,保存在系统属性中(System.properties)设置缺省属性jboss.home和java.security.auth.login.config创建MBeanServer.的实例:把配置文件和补丁文件所在的目录指定给特定的远程类加载器Mlet加载保存配置文件(mlet会自动在配置文件目录中查找)初始化并启动MBean配置服务ConfigurationService加载配置文件保存配置服务控制ServiceControl初始化服务程序(init方法)启动服务程序(start方法)。
在JBOSS中发布文件
1、制作JSP的war部署文件用"jar cvf hello.war index.jsp main.jsp"的方式生成把index.jsp和main.jsp文件加入到hello.war中。把生成的hello.war拷贝到jboss安装目录\server\default\deploy\下,部署成功。用"http://localhost:8080/hello/"或"http://localhost:8080/hello/index.jsp"这两个地址进行测试。
2、制作Servlet的war部署文件
A、用"javac -classpath "%CLASSPATH%;%jboss_home%\server\default\lib\javax.servlet.jar" HelloWorld.java"的形式编译HelloWorld.java(这是一个Servlet)得到HelloWorld.class
B、写一个web.xml配置文件代码如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd"><web-app><servlet><servlet-name>HelloWorld</servlet-name><servlet-class>hello.HelloWorld</servlet-class></servlet><servlet-mapping><servlet-name>HelloWorld</servlet-name><url-pattern>/HelloWorld</url-pattern></servlet-mapping></web-app>每个标记必须小写,否则会出错。
C、先在c:\servlet下建立一个web-inf目录,在目录中放入web.xml文件。
D、在web-inf目录下建立一个classes目录,放入编译好的HelloWorld.class文件
E、在c:\servlet下执行jar cvf hello.war *.*,很快就生成了一个名为hello.war的文件,接着把hello.war复制到jboss的安装目录\server\default\deploy\下完成部署。
3、也可以不打包,把文件放在deploy下的同名文件夹下也可以。比如原来是制作成hello.war文件,可以建立一个名称为hello.war的文件夹,把要发布的文件拷贝到这个目录底下也可以发布成功。
补充:1、JBoss的默认端口是8080
2、对于NT和Win2000系统如果你要安装NT或Win2000服务的话,可以把JBoss加在系统服务中,避免你每次需要到JBoss目录下运行run.bat命令,只是当系统启动时,自动启动JBoss服务器。