2017-01-10 6 views
0

既存の(従来のアプリケーション)をjettyにデプロイしようとしていますが、パス内に二重スラッシュ(//)の問題があり、compactPath = trueブラウザバーからヒットしているURLに対してはうまく動作しますが、JSPServletから呼び出されるURLではうまく動作しません。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> 

答えて

0

のために設定の下に使用している桟橋・リライトはJSPエンジンに適用されなかったので、私たちはしていますこの問題を解決するためにtuckeyリライトフィルタを追加しました。 tuckeyの使い方は以下のリンクにあります。 http://tuckey.org/urlrewrite/

関連する問題