4

Jawr を使用する Hybris アプリケーションを Tomcat サーバーにデプロイしています。起動時に、JawrServlet は StackOverflow エラーをスローします。

エラーを再現するのは難しいですが、CSSServlet の処理中に常に発生します。これがログに記録された直後:

[JawrRequestHandler] Initializing jawr config for request handler named CSSServlet

これは、web.xml でそのサーブレットを構成する方法です。

     <servlet>
        <servlet-name>CSSServlet</servlet-name>
        <servlet-class>net.jawr.web.servlet.JawrServlet</servlet-class>

        <!-- Location in classpath of the config file -->
        <init-param>
            <param-name>configLocation</param-name>
            <param-value>/jawrsetup.properties</param-value>
            <!--<param-value>/jawrTEST.properties</param-value>-->
        </init-param>
        <init-param>
            <param-name>type</param-name>
            <param-value>css</param-value>
        </init-param>
        <init-param>
            <param-name>mapping</param-name>
            <param-value>/jawr-css</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

そして、エラーが発生したコンソールのログの一部を次に示します。

INFO   | jvm 1    | main    | 2013/01/29 11:20:16.081 | 11:20:16,036 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bk-ruby/pause.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.082 | 11:20:16,036 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bk-ruby/pause-ie.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.082 | 11:20:16,036 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bk-ruby/left-hover.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.087 | 11:20:16,036 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bk-ruby/left-hover-ie.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.087 | 11:20:16,036 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bk-ruby/right-hover.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.087 | 11:20:16,045 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bk-ruby/right-hover-ie.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.092 | 11:20:16,045 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bk-ruby/play-hover.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.092 | 11:20:16,045 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bk-ruby/play-hover-ie.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.092 | 11:20:16,045 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bk-ruby/pause-hover.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.093 | 11:20:16,045 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bk-ruby/pause-hover-ie.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.097 | 11:20:16,045 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url('/images/bg.png')
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.098 | 11:20:16,046 [WrapperSimpleAppMain] DEBUG [Base64PostProcessorCssImageUrlRewriter] Skip encoding image resource : url("/images/content-bg.png")
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.098 | 11:20:16,057 [WrapperSimpleAppMain] INFO  [Base64ImageEncoderPostProcessor] Base64 Postprocessing done
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.098 | 11:20:16,058 [WrapperSimpleAppMain] DEBUG [AbstractChainedResourceBundlePostProcessor] postprocessing bundle:/bundles/dmlights.css
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 | Jan 29, 2013 11:20:16 AM org.apache.catalina.core.ApplicationContext log
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 | SEVERE: StandardWrapper.Throwable
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 | java.lang.StackOverflowError
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 |     at java.util.regex.Pattern$LazyLoop.match(Unknown Source)
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 |     at java.util.regex.Pattern$GroupTail.match(Unknown Source)
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 |     at java.util.regex.Pattern$CharProperty.match(Unknown Source)
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 |     at java.util.regex.Pattern$Ques.match(Unknown Source)
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 |     at java.util.regex.Pattern$GroupHead.match(Unknown Source)
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 |     at java.util.regex.Pattern$LazyLoop.match(Unknown Source)
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 |     at java.util.regex.Pattern$GroupTail.match(Unknown Source)
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 |     at java.util.regex.Pattern$CharProperty.match(Unknown Source)
INFO   | jvm 1    | main    | 2013/01/29 11:20:16.198 |     at java.util.regex.Pattern$Ques.match(Unknown Source)
4

2 に答える 2

2

私は Jawr 3.3.3 と Bootstrap 3.1.0 を使用していますが、同じ問題が発生しました。解決策は、 bootstrap.cssで小さな「修正」を行うことです。変化する:

a[href]:after {
    content: " (" attr(href) ")";
}
abbr[title]:after {
    content: " (" attr(title) ")";
}

に:

a[href]:after {
    content: " \0028" attr(href) "\0029";
}
abbr[title]:after {
    content: " \0028" attr(title) "\0029";
}

変更されたのは、開き括弧と閉じ括弧 (対応する css コードを含む) のみであることに注意してください。

このようにセマンティクスは同じままですが、jawr は失敗しません。:) (これは正規表現が原因であると確信しています..)

于 2014-02-01T18:40:34.257 に答える
1

私の CSS には、問題を引き起こしている可能性のある次のクラス定義がありました。

.our-price-indicated-pdp-acessories,
.our-price-indicated-cart-dropdown
{
    color: #6E6E6E;
    font-size: 11px;
    line-height: 15px;
    font-weight: bold;
    text-align: center;
}

だから私はそれを次のように変更しました:

.our-priceind-pdpa,
.our-priceind-cartdrop{
    color: #6E6E6E;
    font-size: 11px;
    line-height: 15px;
    font-weight: bold;
    text-align: center;
}

そして、それは再び機能しました。

しかし、完全に確信するのは難しいです。クラスの名前が非常に長い場合、常にエラーが発生するとは限りません。あなたが私に尋ねるなら、全体の問題は素晴らしい心のひねりです.

私のアドバイスは、CSS を調べて、長いクラス名がないかどうかを確認し、それらの CSS クラスを使用せずにアプリケーションを再デプロイすることです。

于 2013-01-30T12:58:32.900 に答える