将外部目录映射到web.xml

Mic*_*int 2 mapping web-services web.xml external

是否有一种简单的方法来映射web.xml或其他部署描述符(jetty.xml等)文件中的目录?

例如,如果我有一个目录/ opt/files /,我可以通过访问http:// localhost/some-mapping /来访问其文件和子目录.我觉得应该有一些简单的方法来做到这一点,但我还没有找到如何(通过谷歌,stackoverflow等).我发现的只是模仿文件服务器的servlet,这不是我想要的.

作为参考,我在AIX机器上使用jetty.

Bal*_*usC 5

不知道如何使用Jetty,但在Tomcat中你可以添加一个新<Context>server.xml:

<Context docBase="/opt/files" path="/files" />
Run Code Online (Sandbox Code Playgroud)

这样它就可以通过http://example.com/files/....看看Jetty是否存在类似的东西.

更新:谷歌搜索后,"正常的Java代码"等价物将是这样的:

WebAppContext files = new WebAppContext("/opt/files", "/files");
Server server  = new Server(8080);
server.setHandler(files);
server.start(); 
Run Code Online (Sandbox Code Playgroud)

现在尚未将其转化为jetty.xml味道.我有点猜测基于网络上的文档和示例,所以不要把我钉在上面:

<Configure class="org.mortbay.jetty.webapp.WebAppContext">
    <Set name="webApp">/opt/files</Set>
    <Set name="contextPath">/files</Set>
</Configure>
Run Code Online (Sandbox Code Playgroud)

另一种可能性是:

<Configure class="org.mortbay.jetty.Server">
    <Call name="addHandler">
        <Arg>
            <New class="org.mortbay.jetty.webapp.WebAppContext">
                <Arg name="webApp">/opt/files</Arg>
                <Arg name="contextPath">/files</Arg>
            </New>
        </Arg>
    </Call>
</Configure>
Run Code Online (Sandbox Code Playgroud)