RewritePatternRule для молы в карафе (заставить работать угловые глубокие звенья) - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть маленькое угловое приложение, работающее в контейнере 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

Любые предложения очень ценятся!

...