0

クラス com.xxx.cq.wcm.foundation.profile.impl.TnailImages のバンドルを、基盤ファイル com.day.cq.wcm.foundation.profile.impl.ProfileImages から作成しました。

これが私がこのクラスに加えた変更です

  1. TnailImages で独自のデフォルトの幅と高さを持つように、デフォルトの基本クラス ProfileImages の幅と高さ。

  2. セレクターを独自のものに変更

    • @scr.property name="sling.servlet.selectors" values.0="adjust"

    • values.1="adjust.small"

  3. 変数が private static final String THUMBNAIL = "small"; に変更されました。

  4. メタタイプ アノテーションが CQ5.5 用にコンパイルされない これを変更しました * @scr.component metatype="false"

    • @Component(immediate = true)

このバンドルは正常にコンパイルされ、OSGi felix コンソールに表示されます。開始モードになっています。それでも、このバンドルと CQ5 全体を再起動しました。

次のタグを使用して画像を呼び出すと

どこにも隙間がない

サーブレット ThumbNailImages が呼び出されていません。error.log に次のエラーが表示されます。

servletengine 最後のチャンクを送り返すことができません: ソフトウェアが原因で接続が中止されました: ソケット書き込みエラー

この画像はページに表示されていません。firebug は URL の読み込みに失敗しました

デフォルトの img は正常に動作します

クラス com.day.cq.wcm.foundation.profile.impl.ProfileImages は、

/libs/foundation/src/impl/src/main/java/com/day/cq/wcm/foundation/profile/impl/ProfileImages.java

ここに私の注釈があります

 * @Component(immediate = true)
 * @scr.service
 * @scr.property name="sling.servlet.resourceTypes" value="nt:file"
 * @scr.property name="sling.servlet.extensions" values.0="res"
 *                          values.1="jpg"
 *                          values.2="png"
 *                          values.3="gif"
 * @scr.property name="sling.servlet.selectors" values.0="adjust"
 *                                              values.1="adjust.small"
 */

http://xyz.com:4502/content/dam/geometrixx/portraits/scott_reynolds.jpg.adjust.small.jpgを呼び出すと、このサーブレットが呼び出されていないよう です 404 Cannot serve request to /content を取得しています/dam/geometrixx/portraits/scott_reynolds.jpg.adjust.small.jpg in org.apache.sling.servlets.get.DefaultGetServlet

3 (2013-05-20 11:02:40) TIMER_END{2,resolveServlet(JcrNodeResource, type=dam:Asset, superType=null, path=/content/dam/geometrixx/portraits/scott_reynolds.jpg)} サーブレット com の使用.day.cq.dam.core.impl.servlet.BinaryProviderServlet 3 (2013-05-20 11:02:40) TIMER_END{2,ServletResolution} URI=/content/dam/geometrixx/portraits/scott_reynolds.jpg.adjust. small.jpg Servlet=com.day.cq.dam.core.impl.servlet.BinaryProviderServlet で処理

私のサーブレット TnailImages が呼び出されていないようです。常にデフォルトのサーブレットになります。

4

1 に答える 1

0

/system/console/componentsサーブレットが呼び出されていない場合は、まずおよび/system/console/serviceswebconsole ページを使用して、それが OSGi サーブレット サービスとして正しく登録されていることを確認する必要があります。サービス プロパティが想定どおりであることも確認します。

の最近のリクエスト コンソール ページを使用して、/system/console/requestsSling がテスト リクエストをどのように解決し、それを処理するためにどのサーブレットまたはスクリプトを選択したかを確認できます。

最後の手段は、DEBUG ログ レベルを設定し、SlingServletResolverクラスからのメッセージのログを監視することです。

あなたの場合、問題はおそらく、デモ イメージにリソース タイプがあるバニラ CQ5.5 システムでは、scott_reynolds.jpgアクセスしているリソースのリソース タイプが ではないことです。とにかく、ページにはそれが表示されます。nt:filedam:Asset/system/console/requests

于 2013-05-21T08:49:53.667 に答える