目前,我在同一个网络应用(app1)中有2个网络服务(ws1和ws2)。
我们现在决定将Web服务分成不同的网络应用程序:ws1保留在app1中,ws2现在进入app2。但是,我们不想更改调用客户端代码以了解2个应用程序。所以客户不断调用/ app1 / urls
所以使用Tuckey Urlrewritefilter我在app1中设置了这个规则来重写任何对app2的ws2请求:
<rule>
<from>^/(ws2.*)$</from>
<to type="redirect">/app2/$1</to>
</rule>
例如,/ app1 / ws.2.get被重定向到/app2/ws2.get。没关系。
但是/ app1 / ws2?wsdl的请求被重定向到/ app2 /。
它似乎不是正则表达式的问题,因为我已经独立测试了它并且它有效。
任何想法为什么问号导致捕获只包含'ws2'?
答案 0 :(得分:0)
我认为问号之后的所有内容都被解释为查询字符串的一部分,而不是URL,因此它不会被捕获。如果是这样,您将要将查询字符串附加到重定向,如下所示:
<rule>
<from>^/ws2$</from>
<to type="redirect">/app2/?%{query-string}</to>
</rule>