这里只讲前面五篇文章内容在wildfly下的适用问题,服务器及程序的详细迁移项请见官方文档:How do I migrate my application from AS7 to WildFly。
对于webapp而言,关联较大的变动有两点:①web容器由tomcat改成了undertow,表现在配置文件当中就是xmlns
为urn:jboss:domain:web:1.1
的subsystem
被替换为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
标签不复存在,我们只需找到xmlns
为urn:jboss:domain:undertow:3.1
的subsystem
标签下对应的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.war
和ProjectB.war
的jboss-web.xml
文件配置不变。
WildFly 10是JBoss AS 7的当前最新后续版本,二者一脉相承。与jboss-as-7.1.1.Final:(四)Eclipse集成下的自动发布和JSP的热加载相同的是第一项中的自动发布设置;不同的是:在配置文件中找到xmlns
为urn:jboss:domain:undertow:3.1
的subsystem
的如下节点:
<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
中找到xmlns
为urn:jboss:domain:undertow:3.1
的subsystem
节点下对应的主机:
<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>