Jetty9 配置虚拟目录
项目中需要对Jetty9配置虚拟目录,来放置一些图片,网上搜索,文章挺多,但可能是因为Jetty版本不同,难以成功。几番试验后,验证了两种方式,记录下来供需要的朋友参考。
方式一
新建一个.xml文件,比如resource.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.server.handler.ContextHandler">
<Set name="contextPath">/test/resources</Set>
<Set name="handler">
<New class="org.eclipse.jetty.server.handler.ResourceHandler">
<Set name="resourceBase">/app1/data/resources</Set>
<Set name="directoriesListed">true</Set>
</New>
</Set>
</Configure>
将此文件放置在webapps 目录下即可,启动Jetty后可以正常工作了。
方式二
直接找到Jetty安装目录 > etc目录 >jetty.xml 文件,其中有这样一段:
<Set name="handler">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Item>
<Item>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>
对其进行修改,修改后如下:
<Set name="handler">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Item>
<Item>
<New id="ContextHandler" class="org.eclipse.jetty.server.handler.ContextHandler">
<Set name="contextPath">/test/resources</Set>
<Set name="handler">
<New class="org.eclipse.jetty.server.handler.ResourceHandler">
<Set name="resourceBase">/app1/data/resources</Set>
<Set name="directoriesListed">true</Set>
</New>
</Set>
</New>
</Item>
<Item>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>
修改完毕,保存后启动Jetty即可。
任意使用如上一种方式配置好后,在/app1/data/resources 目录下放置一个图片文件pic.jpg,启动Jetty后就可以通过 http://IP地址(域名):端口号/test/resources/pic.jpg来访问到图片了