JBoss的AS版本 Wildfly 介绍和使用

WildFly简介:

wildFly是一款服务器,和tomcat一样,不过事jboss服务器的as版本罢了,相比于Jboss的EPA版本就比较繁重,所以有了这个Jboss服务器的轻便版本。至于什么时候独立出来的版本,之类的我就不给你扯淡了。

WildFly目录介绍:

  • appclient 里面是一些默认的配置  服务器日志的配置等
  • bin常规bin目录里面就是可以执行的脚本文件 比如./standalone.sh 就可以启动服务器了
  • docs就是服务器的基础文件
  • domain 服务器启动的方式有两种一种是standalone 另外一种就是这个domain这个是分布式的启动
  • modules这里面配置了wildfly启动时要加载的module 后面详细介绍一下
  • standalone wildfly启动的另外一种方式,里面放置了相关的配置
  • welcome-content 这里面是wildfly启动之后一些默认的显示页面的文件
  • jboss-modules.jar这个jar主要在wildfly启动的时候加载相关的jar文件 后面做详解

bin目录下有很多脚本文件,想启动wildfly直接执行./standalone.sh(linux环境下) 或者./standalone.bat(windows环境下)

对应的会加载standalone文件夹下面的配置文件,默认加载standalone.xml(可以修改启动脚本,修改默认配置文件为别的)

当然也可以在执行启动脚本的时候指定配置文件,同时也可以指定环境变量配置和系统属性配置格式如下

./standalone.sh --server-config=standalone-full.xml  -Dorg.kie.server.id=first-kie-server 

上面有不同的standalone配置文件,从文件命名基本就可以知道配置文件支持什么样的特性了。如果看不出来,那你可得学聪明点,至于详细的内容配置看下面:

Wildfly 配置文件详解:

<server xmlns="urn:jboss:domain:8.0">
    <extensions>
        <extension module="org.jboss.as.clustering.infinispan"/>
    </extensions>
    <system-properties>
        <property name="org.kie.server.id" value="sample-server"/>
    </system-properties>
    <management>
        <security-realms><security-realm name="ManagementRealm"></security-realms>
        <audit-log></audit-log>
        <management-interfaces></management-interfaces>
        <access-control provider="simple"></access-control>
    </management>
    <profile>
        <subsystem xmlns="urn:jboss:domain:datasources:5.0"></subsystem>
    </profile>
    <interfaces>
        <interface name="management">
            <any-address/>
        </interface>
    </interfaces>
    <socket-binding-group name="standard-sockets" >
        <socket-binding name="management-http"/>
    </socket-binding-group>
</server>

配置文件的结构大致如上面所示:

excetion是拓展模块:配置的module就是前面说的modules文件夹下面配置的module

System-property配置的是系统变量

Management就是管理模块 

<security-realm name="ManagementRealm"> 配置的是wildfly的管理模块,可以指定存储着用户信息的文件的路径地址

<security-realm name="ApplicationRealm"> 配置的是应用的管理模块,可以指定存储着用户信息的文件路径地址

profile配置一些子系统信息,包括数据源 热部署所需要的scanner等,配置了scanner就会自动扫描对应监控的文件的配置,从而不用重启wildfly就会自动加载新配置:

<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
    <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/>
</subsystem>
interfaces 配置的是可以访问该服务器ip

socket-binding-group配置的是对应模块监听的端口

Wildfly的modules介绍:

  我们都知道,java一直以来加载class文件和各种jar的资源都是通过classpath,这样会造成很多问题,比如下面的问题

  •  一个大的项目中,有的classpath当中的资源被加载后根本不会被用到,就会造成系统的资源浪费
  • 同一个classpath当中的资源,可能包含多个不同版本的同一个资源,这就造成了版本冲突,可能会导致整个项目无法运行并且很难进行排错,因为我们的项目可能很大,在成百上千个jar中找到冲突,比火箭队夺冠都难

针对这些问题,Jboss 都从设计上面给出了解决方案:

  • 通过使用Module.xml描述定义模块,在这个描述文件中要包含模块的名字,包括哪些资源等,一般一个模块对应一个jar文件,也可以包含多个jar或其他资源,这些资源的版本号,以及模块之间的依赖关系
  • 每一个模块都可以实时地加载和卸载,这样做的好处,首先是资源方面的节省,只有需要的模块才会被加载(这一点是通过在配置文件module.xml中定义的模块之间的依赖关系来实现的),这一方式同时还带来的好处:能提升整个系统的加载速度

WildFly Modules定义:

wildFly Modules是一个适用于java模块化类加载以及执行环境的实现,传统的java加载类 是通过类加载器一个个加载类,现在讲一个jar文件定义成一个module,该module仅链接依赖的其他module,而不再以来其他任何资源。Jboss module 实现了一个线程安全的,快速的高并发的类加载器委派模型,再加上一个可拓展的模块解析引擎,形成一个独特的,简单的,强大的应用程序执行和分布系统。

WildFly Modules被设计为能够和现有的library或者application一起工作而不需要任何的修改,因为它简单的命名策略和解析策略不想OSGi,WildFly Modules 并没有实现一个容器,而是一个瘦的启动包装器,在一个模块化环境执行一个应用。这时你的应用接管控制权,模块化则准备好在需要时装载和链接模块,此外,只有当一个模块被依赖的时候,他才会被装载,并不会为了解析而装载,也就是说,模块化应用程序的性能仅依赖于实际就是用的模块数(并在模块被使用的时候),而不是系统中的模块总数目,模块可以被用户随时装载。

WildFly Moduls的使用:

一个模块化程序使用以下命令启动:

java -jar jboss-modules.jar -mp path/to/modules my.main.module.name

在模块路径(-mp)中需要指定默认模块加载器需要搜素加载模块的根目录。my.main.module.name 指定要运行的模块名称。

下面看下module.xml的内容

<?xml version="1.0" encoding="UTF-8"?>
<module name="com.google.guava" xmlns="urn:jboss:module:1.5">
    <properties>
        <property name="jboss.api" value="private"/>
    </properties>

    <resources>
        <resource-root path="guava-25.0-jre.jar"/>
    </resources>

    <dependencies>
    </dependencies>
</module>

在jboss-moduels.jar里有一个schema文件来定义模块描述符的格式,因此集成到你喜欢的IDE中会很容易。JBoss Moduels提供了很多扩展的功能去严格控制什么java包是“exported"或者“imported',所以你可以从你的 Jar文件里选择性的不包含一些资源(这样使用预打包的jar文件时将变得更为简单)。
 

wildfly的4种部署方式:

  • 管理頁面部署

      管理页面控制台添加,和tomcat 的控制台添加类似,此处省略

  • 命令行部署

      进入主目录里面的/bin目录下,有个jboss-cli.sh 执行这个脚本,然后deploy你要部署的文件

      jboss-cli.sh

      deploy  /xxxx/xxxx/xxx.jar   部署

      undeploy  /xxxx/xxxx/xxx.jar  卸载

  • Maven Plugin(jboss-as-maven-plugin)

     在你的项目的pom.xml文件里添加下面的依赖:


<plugin>
                <groupId>org.jboss.as.plugins</groupId>
                <artifactId>jboss-as-maven-plugin</artifactId>
                <version>7.3.Final</version>
</plugin

    使用 mvn jboss-as:deploy 进行部署

    使用mvn jboss-as:undeploy 进行卸载

  • 复制

   就是将你的jar或者war文件复制到standalone/deployments/目录下

   执行wildfly主目录中bin目录下启动脚本standalone.sh(bat)

 

wildfly服务器启动,如果启动了访问不了 启动的时候,就在standalone.sh 后面添加 -b 0.0.0.0

变成下面的 ./standalone.sh -b 0.0.0.0

参考链接如下:

    https://blog.csdn.net/kylinsoong/article/details/17302241

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: JBoss和Tomcat是两个不同的服务器软件,它们之间有一些区别。首先,Tomcat是一个独立的Web服务器和servlet容器,而JBoss是一个基于Java的应用程序服务器。\[1\]\[3\]其次,JBoss在Tomcat的基础上进行了优化,并将Tomcat以内嵌的方式集成到JBoss中。这使得JBoss能够提供更多的功能和服务,如数据库连接池服务,并支持多种Web集成,如JSP、PHP和.NET等。\[2\]此外,JBoss是一个免费的软件,可以在任何支持Java的操作系统上使用,而Tomcat也是开源的,但它更专注于提供纯Java的Web服务器环境来运行Java应用程序。因此,选择使用哪个服务器取决于具体的需求和项目要求。 #### 引用[.reference_title] - *1* *3* [jboss和tomcat的区别是什么](https://blog.csdn.net/qq_39900031/article/details/118393064)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Jboss和Tomcat](https://blog.csdn.net/lovesummerforever/article/details/44218297)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值