使用从web.xml配置的defaultservlet,使用jetty 7提供静态内容
这是jetty 7和xml配置的,不是嵌入的 我试图将一个静态文件crossdomain.xml提供给一个连接到我从jetty运行的数据源的应用程序。为此,我配置了一个servlet及其映射:使用从web.xml配置的defaultservlet,使用jetty 7提供静态内容,jetty,Jetty,这是jetty 7和xml配置的,不是嵌入的 我试图将一个静态文件crossdomain.xml提供给一个连接到我从jetty运行的数据源的应用程序。为此,我配置了一个servlet及其映射: <servlet> <servlet-name>default </servlet-name> <servlet-class>org.eclipse.jetty.servlet.DefaultServlet </servle
<servlet>
<servlet-name>default </servlet-name>
<servlet-class>org.eclipse.jetty.servlet.DefaultServlet </servlet-class>
<init-param>
<param-name>resourceBase </param-name>
<param-value>/foo/foo </param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>default </servlet-name>
<url-pattern>/* </url-pattern>
</servlet-mapping>
违约
org.eclipse.jetty.servlet.DefaultServlet
资源库
/foo/foo
违约
/*
不幸的是,我得到的只是404的。任何帮助都将不胜感激,顺便说一句,我的web.xm lfile的其余部分如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5">
<servlet>
<servlet-name>cometd </servlet-name>
<servlet-class>org.cometd.server.continuation.ContinuationCometdServlet </servlet-class>
<load-on-startup>1 </load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>cometd </servlet-name>
<url-pattern>/cometd/* </url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>default </servlet-name>
<servlet-class>org.eclipse.jetty.servlet.DefaultServlet </servlet-class>
<init-param>
<param-name>resourceBase </param-name>
<param-value>/foo/foo </param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>default </servlet-name>
<url-pattern>/* </url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>initializer </servlet-name>
<servlet-class>com.foo.research.Initializer </servlet-class>
<load-on-startup>2 </load-on-startup>
</servlet>
<filter>
<filter-name>cross-origin </filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter </filter-class>
</filter>
<filter-mapping>
<filter-name>cross-origin </filter-name>
<url-pattern>/cometd/* </url-pattern>
</filter-mapping>
</web-app>
降临
org.cometd.server.continuation.continuationCometServlet
1.
降临
/Comet/*
违约
org.eclipse.jetty.servlet.DefaultServlet
资源库
/foo/foo
违约
/*
初始值设定项
com.foo.research.Initializer
2.
交叉起源
org.eclipse.jetty.servlets.CrossOriginFilter
交叉起源
/Comet/*
我也有同样的问题;下面是一个有效的代码片段(Jetty 6.1.22)。
我基本上用org.mortbay替换了org.eclipse,并删除了
resourceBase参数(但请参见下文)。这实际上会在WAR文件中的web.xml文件中结束:
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>foo.bar.MyServlet</servlet-class>
<display-name></display-name>
<description>The smallest Servlet ever!</description>
</servlet>
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
如果您想将静态文件放在其他位置(但仍将它们映射到
/static/URI),您可以使用resourceBase参数指定
目录,就像你做的一样
Jetty的文档帮助我更好地理解了这一点:
对于Jetty 7和8,使用org.eclipse.Jetty.servlet.DefaultServlet代替org.mortbay.Jetty.servlet.DefaultServlet
ROOT.war
|_ WEB-INF/
|_ static/