jboss

本文围绕JBoss应用服务器展开,介绍了其安装、目录结构、配置文件。阐述了部署过程,可将多种文件拷贝到部署目录。还讲解了内部结构,如微内核架构、热部署、网络引导和分开的调用者等特性,使其适用于不同环境。
关于JBoss


  JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器。在不
  到12个月的时间里有一百万以上的拷贝被下载。JBoss是第一位的J2EE应用服务器。
  
  JBoss完全实现了J2EE的服务栈:
    * EJB (Enterprise JavaBeans)
    * JMS (Java Message Service)
    * JTS/JTA (Java Transaction Service / Java Transaction API)
    * Servlet and JSP (JavaServer Pages)
    * JNDI (Java Naming and Directory Interface)
  
  它还提供一些高级特性,比如集群、JMX、Web Service。
  它还整合了IIOP(Internet Inter-ORB Protocol)。
  
  因为JBoss代码遵循LGPL许可,你可以在任何商业应用中免费使用它,而不用支付费用。
  LGPL - GNU Lesser General Public License, 
  参考 http://www.gnu.org/copyleft/lesser.txt
  
安装JBoss应用服务器


  首先,确定你已经安装了J2SE JDK 1.3或者更高的版本,并且进行了正确的配置。
  这很基础,你需要正确配置以下环境变量:
    * JAVA_HOME
    * CLASSPATH
    * PATH 
  
  然后到JBoss的web站点( http://www.jboss.org)下载JBoss的二进制版本。
  你会发现所有当前的二进制版本分为zip和tar.gz格式的文件。
  zip适合Windows系统,而tar.gz适合Unix类的系统,选择你最适合你的版本。
  
  解压缩你下载的文件到一个目录(你自己选择),在windows下,你可以是使用winzip等
  工具,在Unix下,你可以用下面的命令:
  $ gunzip jboss-3.2.0.tar.gz
  $ tar xf jboos-3.2.0.tar
  
  设置JBOSS_HOME环境变量,为你的JBoss的安装目录。
  
  然后到$JBOSS_HOME/bin目录中,运行“启动脚本”:
  Unix:
    $ ./run.sh
  Windows:
    c:/jboss-3.2.0/bin>run.bat
    
  实例,JBoss二进制版本为3.2.2,J2SDK版本为1.4.1:
    
    windows 2k系统下:
      J2SDK安装在c:/j2sdk,JBoss安装在c:/jboss,环境变量的设置如下:
      JAVA_HOME=C:/j2sdk
      CLASSPATH=%CLASSPATH%;%JAVA_HOME%/lib/*.jar;%JAVA_HOME%/jre/lib/*.jar
      JBOSS_HOME=C:/jboss
      PATH=%PATH%;%JAVA_HOME%/bin;%JBOSS_HOME%/bin
    
    unix类系统下:
      J2SDK安装在/opt/j2sdk,JBoss安装在/opt/jboss,环境变量的设置如下:
      JAVA_HOME=/opt/j2sdk
      CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*.jar:$JAVA_HOME/jre/lib/*.jar
      JBOSS_HOME=/opt/jboss
      PATH=$PATH:$JAVA_HOME/bin:$JBOSS_HOME/bin

 探索JBoss的目录结构


  安装JBoss会创建下列目录结构:
  
  表1.1 JBoss的目录
[pre]  ------------------------------------------------------------------------------
  目录                  描述
  ------------------------------------------------------------------------------
  bin                   启动和关闭JBoss的脚本
  client                客户端与JBoss通信所需的的Java库(JARs)
  docs                  配置的样本文件(数据库配置等)
  doc/dtd               在JBoss中使用的各种XML文件的DTD。
  lib                   一些JAR,JBoss启动时加载,且被所有JBoss配置共享。
                        (不要把你的库放在这里)
  server                各种JBoss配置。每个配置必须放在不同的子目录。子目录的
                        名字表示配置的名字。
                        JBoss包含3个默认的配置:minimial,default和all。
  server/all            JBoss的完全配置,启动所有服务,包括集群和IIOP。
  server/default        JBoss的默认配置。
                        在没有在JBoss命令航中指定配置名称时使用。
  server/default/conf   JBoss的配置文件。下一节你会学习到更多关于其内容的知识。
  server/default/data   JBoss的数据库文件。比如,嵌入的数据库,或者JBossMQ。
  server/default/deploy JBoss的热部署目录。放到这里的任何文件或目录会被JBoss自动
                        部署。EJB、WAR、EAR,甚至服务。
  server/default/lib    一些JAR,JBoss在启动特定配置时加载他们。
                        (all和minimial配置也包含这个和下面两个目录。)
  server/default/log    JBoss的日志文件。
  server/default/tmp    JBoss的临时文件。
  ------------------------------------------------------------------------------[/pre]  
  如果你想要定义自己的配置,要先在server目录下创建一个新的包含适当文件的子目录。
  启动时可用-c参数指定要启动的配置:
  Windows:
    C:/jboss-3.2.0/bin>run.bat -c config-name
  Unix
    $ ./run.sh -c config-name
    
 JBoss配置文件


  就像上一节说的,JBoss的server目录可以包含任意数目的目录,每个表示一个不同的
  JBoss配置。
  
  server/config-name/conf目录包含JBoss的配置文件。
  表1.2给出了这些不同的文件的用途:
  
  表1.2、JBoss的配置文件
[pre]  ------------------------------------------------------------------------------
  文件                      描述
  ------------------------------------------------------------------------------
  jacorb.properties         JBoss IIOP 配置
  jbossmq-state.xml         JBossMQ(JMS的实现)用户配置
  jboss-service.xml         启动时运行的JBoss的服务的定义(class loader,JNDI,
                            deployer等)
  log4j.xml                 Log4J的配置
  login-config.xml          JBoss安全配置(JBossSX)
  standardjaws.xml          JBoss的遗留CMP 1.1引擎的默认配置。包含对各种数据库的
                            JDBC-to-SQL的映射信息,默认CMP设置,日志配置等。
  standardjbosscmp-jdbc.xml 除了被用于JBoss的CMP 2.0引擎之外,
                            与standardjaws.xml相同,
  ------------------------------------------------------------------------------[/pre]  
 JBoss中的部署


  JBoss中的部署过程非常的简单、直接。在每一个配置中,JBoss不断的扫描一个特殊的目
  录的变化:$JBOSS_HOME/server/config-name/deploy
  
  此目录一般被称为“部署目录”。
  
  你可以把下列文件拷贝到此目录下:
    * 任何jar库(其中的类将被自动添加到JBoss的classpath中)
    * EJB JAR
    * WAR (Web Appliction aRrchive)
    * EAR (Enterprise Application aRchive)
    * 包含JBoss MBean定义的XML文件
    * 一个包含EJB JAR、WAR或者EAR的解压缩内容,并以.jar、.war或者.ear结尾的目录。
  
  要重新部署任何上述文件(JAR、WAR、EAR、XML等),用新版本的文件覆盖以前的就可以
  了。JBoss会根据比较文件的时间发现改变,写在以前的文件,然后部署新的文件。
  要重新部署一个目录,更新他的修改时间即可,比如touch。
  
 迅速浏览JBoss的内部结构


  从3.0版本开始,JBoss已经被围绕一些非常强大的概念来构建,允许用户自定义和调整他
  们的服务器,而不局限于J2EE。
  灵活性允许JBoss可以用于不同的环境,范围从嵌入式系统到非常大的服务器集群。
  
  下面几节将简要的介绍这些概念中的一部分。

微内核架构


  JBoss基于一个微内核设计,即组件可以在运行时插入以扩展它的行为。
  这个设计非常适合J2EE平台,一个本质上基于服务的平台。这个平台包含持久化,事务,
  安全,名称,消息,日志等服务。
  
  其他应用服务器一般象单片集成电路一样,它们总是包含所有J2EE平台的服务。JBoss采
  用完全不同的方法:每个服务像组件一样被热部署于一个非常简洁的内核之上,称为
  JBoss Server Spine。此外,用户被鼓励去实现他们自己的运行于JBoss上的服务。
  
  因此,JBoss应用服务器不限于J2EE应用,他被频繁的用于构建任何需要强大且可靠基础
  的应用。因此,JBoss的核心也被认为是WebOS。
  
  图1.1 JBoss Server spine和一些热部署的服务
  
[pre]     JMS         User Service A    EJB Container
  (JBossMQ)         |                  |
      |               |                  |
  +-------------------------------------------------+
  |                                                 |
  |              JBoss Server Spine                 |
  |                                                 |
  +-------------------------------------------------+
     |                |                  |
    JNDI             JNDI                |
  (JBossNS)        (JBossNS)         Servlet/JSP
  [/pre]
  JBoss Server Spine 基于Sun的JMX(Java Managerment eXtensions)规范,
  以标准的方式使任何已部署的组件可以被管理。
  按照JMX习惯中,JBoss中一个已部署的服务被称为一个MBean(a managed bean)。
  
    更多关于JMX规范的信息可以在Sun的web站点找到:
     http://java.sun.com/products/JavaManagement
    
 热部署


  自从2.0发布版本,JBoss已经因是第一个支持热部署和重部署的基于J2EE的应用服务器而
  著称,而那时很多应用服务器还需要重新启动以更新一个应用程序。
  感谢微内核架构和革命性的Java类加载器,JBoss 3.0和以后的发布版本进一步推动这种
  逻辑。不但可以热部署和重新部署应用程序,而且他们可以热部署任何服务,并且跟踪服
  务间的依赖。
  这些特性使JBoss可被用于非常苛刻的环境,比如电信系统。

 网络引导


  JBoss可以在网络的任何位置引导自己和你的应用程序,只要为JBoss Server Spine指定
  一个简单的URL。这允许你从一个中央web服务器管理一个JBoss节点集群的全部配置。这
  给人深刻印象的机动性使新服务器的部署非常的简单。
  JBoss的bootstrap代码只有大约50k,它适合很多嵌入式系统。
  
 分开的调用者


  JBoss完全的分离了协议的处理器,从目标服务接收的调用最终为请求提供服务。因此,
  当一个给定协议的新的处理器(称为一个JBoss的调用者)被部署到JBoss,可以自动的通
  过这个新的调用传送器到达所有已存在的服务和应用程序。
  JBoss 3.2目前支持下列类型的调用者:
  * RMI
  * RMI over HTTP
  * IIOP
  * JMS
  * SOAP
  * HA-RMI(Clustering over RMI)
<think>好的,用户让我介绍一下JBOSS,现在我需要整理一下相关的信息。首先,用户之前问过OpenJDK,可能对Java相关的技术比较感兴趣,所以这次JBOSS也是Java领域的,应该要联系起来。 首先,JBOSS的正确写法应该是JBoss,全称可能用户不太清楚,需要先解释名称和背景。JBoss最初是一个开源的应用服务器,现在被Red Hat收购,成为他们的产品线之一,这点要提到。 接下来,用户可能需要了解JBoss的核心功能和应用场景。作为应用服务器,它支持Java EE/Jakarta EE,所以需要说明这一点,并且可能和其他的应用服务器比如WebLogic、WebSphere做对比,突出其开源和轻量级的优势。 然后,架构部分可能需要分模块介绍,比如核心引擎、Web容器、事务管理、集群等,这些都是JBoss的关键组件。同时,用户可能想知道JBoss的版本演变,比如从AS到WildFly的改名,以及各个版本的特点,比如WildFly的快速启动和模块化设计。 另外,用户可能关心JBoss与其他同类产品的比较,比如Tomcat,虽然Tomcat只是一个Web容器,而JBoss是完整的应用服务器,这点需要明确区分。还有与商业产品的对比,比如和IBM的WebSphere在扩展性上的差异。 关于应用场景,用户可能需要知道JBoss适合的企业级应用,比如金融、电信,或者云原生环境,这里可以提到JBoss EAP和OpenShift的集成,以及微服务支持。开源版本和商业版本的区别也很重要,比如社区版的WildFly和Red Hat的JBoss EAP在支持和服务上的差异。 最后,部署建议部分,用户可能想知道如何选择版本,比如生产环境推荐使用LTS版本,或者如何通过CLI进行配置管理。技术趋势方面,可以提到Jakarta EE的演进、云原生适配等,让用户了解JBoss的未来发展方向。 需要确保回答结构清晰,分点列出,使用中文,并且正确应用之前提到的LaTeX格式,比如技术术语用$...$包裹,独立公式用$$...$$。不过JBoss的介绍中可能公式较少,重点在架构和组件上,所以可能更多使用项目符号和表格来对比。同时,检查是否有需要纠正的地方,比如JBoss的正确拼写,版本历史的时间节点是否准确,避免错误信息。 总结来说,回答应该覆盖定义、核心架构、版本演变、产品对比、应用场景、部署建议和技术趋势,每个部分分点说明,帮助用户全面理解JBoss的相关信息。</think>以下是关于**JBoss**的详细介绍,按照核心维度逐步展开: --- ### **1. 定义与背景** - **全称**:$JBoss Application Server$(现更名为**WildFly**) - **定位**:开源Java应用服务器,支持$Java EE$(现为$Jakarta EE$)规范 - **历史沿革** - 1999年由Marc Fleury创立,2006年被Red Hat收购 - 2014年更名为WildFly,但商业版仍保留**JBoss EAP**(Enterprise Application Platform)名称 --- ### **2. 核心架构** $$ \text{JBoss} = \text{微内核架构} + \text{模块化设计} + \text{热部署能力} $$ - **关键组件** - **核心引擎**:基于$JBoss Modules$的依赖管理系统 - **Web容器**:Undertow(高性能异步服务器) - **事务管理**:Narayana(支持分布式事务) - **集群管理**:Infinispan(分布式缓存)、JGroups(节点通信) --- ### **3. 版本演变与特性** | 版本阶段 | 关键特性 | 技术标志 | |--------------|---------------------------------------------|----------------------------| | **JBoss AS** | 经典Java EE全栈支持 | JMX管理、Hibernate集成 | | **WildFly** | 启动时间优化(<3秒)、模块化依赖隔离 | Undertow替换Tomcat | | **JBoss EAP**| 企业级扩展(监控、安全加固、商业支持) | Red Hat订阅服务 | --- ### **4. 与同类产品对比** | 对比项 | JBoss/WildFly | Tomcat | WebLogic/WebSphere | |---------------|-----------------------------|--------------------------|--------------------------| | **功能范围** | 全栈Java EE应用服务器 | Servlet/JSP容器 | 商业级全栈服务器 | | **性能** | 轻量级(内存占用低) | 轻量但功能有限 | 高扩展但资源消耗大 | | **开源性** | 完全开源(WildFly) | 开源 | 闭源商业产品 | | **适用场景** | 企业级应用、微服务 | 简单Web应用 | 大型传统企业系统 | --- ### **5. 典型应用场景** - **企业级Java应用**:金融交易系统、电信计费平台 - **云原生部署**:与$OpenShift$集成支持Kubernetes - **微服务架构**:通过$Quarkus$框架实现原生编译(GraalVM兼容) --- ### **6. 开源与商业版本** - **WildFly**(社区版) - 免费使用,遵循$LGPL$协议 - 提供最新功能,但无官方技术支持 - **JBoss EAP**(商业版) - 需Red Hat订阅,含安全补丁、SLA保障 - 长期支持($LTS$)周期达10年(如EAP 7.x支持至2026年) --- ### **7. 部署建议** - **生产环境**:优先选择**JBoss EAP** + Red Hat订阅 - **开发测试**:使用WildFly最新版(如$WildFly 30$) - **配置管理**:通过$JBoss CLI$实现自动化部署 --- ### **8. 技术趋势** - **Jakarta EE 10**适配:支持CDI 4.0、RESTful API增强 - **云原生优化**:精简内核、容器原生镜像构建 - **性能监控**:集成$Micrometer$实现Prometheus指标暴露 --- **验证命令**: 通过服务器启动日志查看版本信息: ```bash $JBOSS_HOME/bin/standalone.sh --version ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值