Мы пытаемся развернуть существующее (устаревшее приложение) в причале, мы получили проблему для двойного слэша (//) в пути, а затем получили решение для установки compactPath = true, его отлично работает для URL-адреса, который попадает из панели браузера, но не работает для URL-адреса, который вызывается из JSPServlet.Jetty compactPath не работает для jspEngine (JspServlet)
Получите следующую разницу: при ударе с панели браузера вызывается правило перезаписи и переписано путь, как показано ниже. Но когда он вызывается из JSPServlet, это не вызывает правило перезаписи.
2017-01-09T16:15:41.209-0800 DEBUG : loggerName="o.e.j.r.h.RuleContainer" threadName="qtp1790421142-95" rewrote /WebApp/views//path/mypage.jsp to /WebApp/views//worklist/roleOptPrivilage.jsp
2017-01-09T16:15:41.209-0800 DEBUG : loggerName="o.e.j.r.h.RuleContainer" threadName="qtp1790421142-95" applied org.eclipse.jetty.rewrite.handler.CompactPathRule[ht]
2017-01-09T16:15:41.209-0800 DEBUG : loggerName="o.e.j.r.h.RuleContainer" threadName="qtp1790421142-95" rewrote /WebApp/views//path/mypage.jsp to /WebApp/views/path/mypage.jsp
Ниже фрагмент кода для создания compactPath:
<Call name="setHandler">
<Arg>
<New id="repair-consignment-services" class="org.eclipse.jetty.webapp.WebAppContext">
<Arg>
<Property name="jetty.base" default=".." />/webapp/webApp-1.0.war
</Arg>
<Arg>/</Arg>
<Set name="contextPath">/WebApp</Set>
<Set name="configurations">
<Set name="parentLoaderPriority">true</Set>
<Set name="tempDirectory"><Property name="jetty.base" default=".." />/work</Set>
<Set name="defaultsDescriptor"><Property name="jetty.base" default=".." />/conf/webdefault.xml</Set>
**<Set name="compactPath">true</Set>**
</New>
</Arg>
</Call>
Мы используем ниже конфигурации для JSP
<servlet id="jsp">
<servlet-name>jsp</servlet-name>
<servlet-class>org.eclipse.jetty.jsp.JettyJspServlet</servlet-class>
<init-param>
<param-name>logVerbosityLevel</param-name>
<param-value>DEBUG</param-value>
</init-param>
<init-param>
<param-name>errorOnUseBeanInvalidClassAttribute</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.8</param-value>
</init-param>
<!--
<init-param>
<param-name>classpath</param-name>
<param-value>?</param-value>
</init-param>
-->
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspf</url-pattern>
<url-pattern>*.jspx</url-pattern>
<url-pattern>*.xsp</url-pattern>
<url-pattern>*.JSP</url-pattern>
<url-pattern>*.JSPF</url-pattern>
<url-pattern>*.JSPX</url-pattern>
<url-pattern>*.XSP</url-pattern>
</servlet-mapping>