jboss-as-7.1.1.Final:(六)向wildfly-10.1.0.Final迁移

这里只讲前面五篇文章内容在wildfly下的适用问题,服务器及程序的详细迁移项请见官方文档:How do I migrate my application from AS7 to WildFly。
对于webapp而言,关联较大的变动有两点:①web容器由tomcat改成了undertow,表现在配置文件当中就是xmlnsurn:jboss:domain:web:1.1subsystem被替换为urn:jboss:domain:undertow:3.1,配置内容也有一些变动;②在Web Services方面废弃了CXF Spring Webservices及JAX-RPC,转而支持Java EE的标准网络服务框架JAX-WS。

一、首页设置

与jboss-as-7.1.1.Final:(一)首页设置稍有不同的是,virtual-server标签不复存在,我们只需找到xmlnsurn:jboss:domain:undertow:3.1subsystem标签下对应的server节点,删除其host子节点的如下孙子节点即可:

<location name="/" handler="welcome-content"/>

welcome-content同样定义在该subsystem下:

<handlers>
    <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
handlers>

二、远程调试设置

与jboss-as-7.1.1.Final:(二)远程调试设置不同之处在于我们需要解除注释的该行有了些许变动:JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"

三、域名绑定资源目录

与jboss-as-7.1.1.Final:(三)域名绑定资源目录相比,同一项目下的处理方法相同,而当不同项目时,根据本文第一项所述配置首页:

<subsystem xmlns="urn:jboss:domain:undertow:3.1">
    <buffer-cache name="default"/>
    <server name="default-server">
        <http-listener enable-http2="true" name="default" redirect-socket="https" socket-binding="http"/>
        <https-listener enable-http2="true" name="https" security-realm="ApplicationRealm" socket-binding="https"/>
        <host alias="localhost" name="default-host">
            <filter-ref name="server-header"/>
            <filter-ref name="x-powered-by-header"/>
        host>
    server>
    <servlet-container name="default">
        <jsp-config development="true"/>
        <websockets/>
    servlet-container>
    <handlers>
        <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
    handlers>
    <filters>
        <response-header header-name="Server" header-value="WildFly/10" name="server-header"/>
        <response-header header-name="X-Powered-By" header-value="Undertow/1" name="x-powered-by-header"/>
    filters>
subsystem>

然后在该subsystem下添加如下节点:

<server name="YouthServerA">
    <http-listener enable-http2="true" name="default" redirect-socket="https" socket-binding="http"/>
    <https-listener enable-http2="true" name="https" security-realm="ApplicationRealm" socket-binding="https"/>
    <host alias="domainA.com" name="domainA">
        <filter-ref name="server-header"/>
        <filter-ref name="x-powered-by-header"/>
    host>
server>
<server name="YouthServerB">
    <http-listener enable-http2="true" name="default" redirect-socket="https" socket-binding="http"/>
    <https-listener enable-http2="true" name="https" security-realm="ApplicationRealm" socket-binding="https"/>
    <host alias="domainB.com" name="domainB">
        <filter-ref name="server-header"/>
        <filter-ref name="x-powered-by-header"/>
    host>
server>

项目ProjectA.warProjectB.warjboss-web.xml文件配置不变。

四、Eclipse集成下的自动发布和JSP的热加载

WildFly 10是JBoss AS 7的当前最新后续版本,二者一脉相承。与jboss-as-7.1.1.Final:(四)Eclipse集成下的自动发布和JSP的热加载相同的是第一项中的自动发布设置;不同的是:在配置文件中找到xmlnsurn:jboss:domain:undertow:3.1subsystem的如下节点:

<servlet-container name="default">
    <jsp-config/>
    <websockets/>
servlet-container>

其中的jsp-config标签修改为:

<jsp-config development="true"/>

即可,不需要再修改源码了。

五、日志输出配置

原文见jboss-as-7.1.1.Final:(五)日志输出配置。
WildFly开启访问日志的方法和JBoss AS 7类似,只不过二者使用的容器不相同,而且WildFly中必须指定log的存放目录,我们从standalone.xml中找到xmlnsurn:jboss:domain:undertow:3.1subsystem节点下对应的主机:

<server name="default-server">
    <http-listener enable-http2="true" name="default" redirect-socket="https" socket-binding="http"/>
    <https-listener enable-http2="true" name="https" security-realm="ApplicationRealm" socket-binding="https"/>
    <host alias="localhost" name="default-host">
        <filter-ref name="server-header"/>
        <filter-ref name="x-powered-by-header"/>
    host>
server>

在该主机下追加access-log标签:

<access-log pattern="common" directory="${jboss.home.dir}/standalone/log" prefix="access" />

WildFly的日志子系统变化不大,新增了可以把日志的格式化器提取出来复用的标签:

<formatter name="PATTERN">
    <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] [%c] %s%e%n"/>
formatter>

从而容器定义控制台处理器①变为:

<console-handler name="SERVER_CONSOLE">
    <level name="TRACE"/>
    <encoding value="UTF-8"/>
    <formatter>
        <named-formatter name="COLOR-PATTERN"/>
    formatter>
    <target name="System.out"/>
console-handler>

你可能感兴趣的:(jboss)