У меня есть маленькое угловое приложение, работающее в контейнере Talend ESB, работающее на (встроенном?) Причале:
karaf@trun()> web:list
ID | State | Web-State | Level | Web-ContextPath | Name
----+-------------+-------------+-------+-----------------+--------------------------
415 | Active | Deployed | 80 | /web-app | web-app (0.1.0.SNAPSHOT)
, которое тогда отлично отображается под: localhost:8040/web-app/
Проблема начинается с глубоких связей, например, localhost:8040/web-app/partner/{id}
- деталь /partner/{id}
является динамической и обрабатывается / направляется по угловым направлениям.Итак, все после '/ web-app /' должно игнорироваться Jetty.
Я попытался настроить etc/jetty.xml
следующим образом:
<New id="Rewrite" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
<Set name="rewriteRequestURI">true</Set>
<Set name="rewritePathInfo">false</Set>
<Set name="originalPathAttribute">requestedPath</Set>
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule">
<Set name="pattern">/web-app/*</Set>
<Set name="replacement">/web-app/</Set>
</New>
</Arg>
</Call>
...
Трассировка показывает, что конфигурация действительно считается:
2018-09-26 17:39:47,158 | DEBUG | qtp42050594-114 | RuleContainer | 173 - org.eclipse.jetty.util - 9.3.14.v20161028 | applied org.eclipse.jetty.rewrite.handler.RewritePatternRule[hT][/web-app/*][/web-app/]
2018-09-26 17:39:47,159 | DEBUG | qtp42050594-114 | RuleContainer | 173 - org.eclipse.jetty.util - 9.3.14.v20161028 | rewrote /web-app/partner/123 to /web-app/partner/123
Почему он не переписан на /web-app/
?Конечно, я получу прекрасный 404:
HTTP ERROR 404
Problem accessing /web-app/partner/123. Reason:
Not Found
Любые предложения очень ценятся!