今天刚刚接触JBoss,便遇到了一个头疼的问题:创建虚拟目录!这个在Tomcat很容易实现的竟花了我几个小时查找资料,不是说JBoss使用的Tomcat内核吗?。。。
WildFly版本:11.0.0.Alpha1
虚拟目录,就是说JBoss映射到一个本地的文件夹,例如:http://localhost:8080/imgs 这个链接其实是访问自己的磁盘下某个文件。好处:一些图片和音频等可以不用放在工程目录下,使的app不会那么臃肿(上传图片等的时候,如果路径是WebRoot下的话,是不会直接放置在工程目录下,eclipse会创建一个工程目录外的文件夹,来映射这个WebRoot下路径,实际上操作的是工程目录外的文件,这也算是一个人性化的设置,不过好像在Linux部署的话是直接上传到工程目录的,这应该是IDE特有的吧)。
解决方案:
在standalone.xml中找到
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<location name="/music" handler="music"/>
< location name=”/music” handler=”music”/>
添加location节点,上面的就是我自己添加的,/music 表示使用http://localhost:8080/music映射磁盘下问某个文件夹,映射到哪个文件夹呢?最后一步
ctrl+F查找handler节点:
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
<file name="music" path="D:\\music"/>
</handlers>
看到了吗,path就是我的磁盘下的一个文件夹,name=music跟上面的handle=music对应,名字可以自己取。
没错,就这样轻松的完成了。然后我就可以轻松的使用http://localhost:8080/music 直接访问我的D盘下的文件了。