Url rewriting 能否在jetty中为每个web应用分配jetty-rewrite.xml文件?

Url rewriting 能否在jetty中为每个web应用分配jetty-rewrite.xml文件?,url-rewriting,jetty,rewrite,Url Rewriting,Jetty,Rewrite,是否有一种方法可以针对每个web应用/上下文指定仅针对该特定web应用的重写文件?我看到它当前工作的唯一方式是在启动它时通过命令行。我在考虑在override.xml文件中甚至在context-xml文件中进行设置。如果使用context.xml可部署文件,则可以将RewriteHandler规则集成到特定于应用程序的context-xml中 示例:这是jetty发行版中的${jetty.home}/contexts/test.xml的替换context.xml。它添加了一个规则,只需在所有请求

是否有一种方法可以针对每个web应用/上下文指定仅针对该特定web应用的重写文件?我看到它当前工作的唯一方式是在启动它时通过命令行。我在考虑在override.xml文件中甚至在context-xml文件中进行设置。

如果使用context.xml可部署文件,则可以将RewriteHandler规则集成到特定于应用程序的context-xml中

示例:这是jetty发行版中的
${jetty.home}/contexts/test.xml
的替换context.xml。它添加了一个规则,只需在所有请求的响应上添加一个cookie(visted=yes)


/
/
/webapps/test.war
真的
假的
/etc/webdefault.xml
/contexts/test.d/override-web.xml
真的
假的
请求路径
/*
拜访
对

要验证此规则是否有效,请启动jetty,转到
http://localhost:8080/
然后使用“Sessions”测试组件,您将看到
visited=true
将在顶部显示为cookie。

可能与在上执行此操作有关,但尚不清楚。“如果您使用context.xml deployables”-我不知道这意味着什么,但我在
{jetty}/contexts/{name}.xml
中定义了每个单独的上下文-我没有test.xml或任何测试组件。我尝试将此示例应用于现有的上下文配置(通过将Set命令从WebAppContext配置转移到示例中相应的新标记),但是当试图访问
/
时,这导致了
org.eclipse.jetty.server.Dispatcher$ForwardAttributes.setAttribute(Dispatcher.java:410)
()上的StackOverflower错误-在访问特定文件时,它看起来很有效(包括带有响应的set-cookie头)。我不知道这是否是jetty bug,或者是由于一些错误配置或其他原因?解释一下这个处理程序包装的工作原理可能会有用。(试图调试这个问题,我取出了顶级contextPath-它似乎没有改变任何东西,所以我想知道是否需要它?)这个示例可以工作,但是它实际上不允许重定向或重写,它似乎是在正常的上下文处理之后完成的重写/重定向,导致重写后出现
未找到
404错误。设置cookie或标头可以正常工作。