Ошибка приложения книжного магазина CQ5(CRX)

  1. Я проверил исходный код с http://dev.day.com/docs/en/crx/current/getting_started/first_steps_with_crx.html#Step%20Two:%20Check%20out%20CRX%20Bookstore%20Example
  2. Когда я попытался вызвать http://:4502/products.html

  3. Фактический результат должен отображать страницу продуктов из приложения книжного магазина.

  4. Я получил сообщение «Не удается обслужить запрос к /products.html в /apps/bookstore/components/ranking/ranking.jsp: Какую версию продукта вы используете? В какой операционной системе? Я использую CQ5.5 (CRX 2.3) на Windows 7 http://code.google.com/p/crxzon/issues/detail?id=4&thanks=4&ts=1362987616

person user1130906    schedule 11.03.2013    source источник
comment
Есть ли другие записи в error.log? Кроме того, попробуйте очистить кэшированные файлы Java в CRX в папке /var/classes.   -  person anotherdave    schedule 11.03.2013


Ответы (2)


Из того, что я вижу, вы получаете NullPointerException в RankingServiceImpl:277, потому что поле repository равно null. И единственный способ, которым я могу это объяснить, заключается в том, что аннотации SCR не срабатывали во время сборки.

Сказав это, я действительно удивлен, что ваш пакет начался с CQ 5.5, поскольку зависимости, похоже, относятся к более ранним версиям (5.4, я думаю) - я предлагаю дважды проверить это в разделе /system/console/bundles (ищите CRX - Sample Bookstore Demo< /сильный>). Если у вас отсутствует импорт, попробуйте поиграть с /src/impl/com.day.crx.sample.bookshop.bnd, чтобы обновить версии, как в CQ 5.5, или запустить его на CQ 5.4.

person Jan Kuźniak    schedule 11.03.2013
comment
На сайте CQ5 есть опечатка при вызове этого книжного магазина, он указан как http://‹host›:7402/products.html. Это должен быть http://‹host›:7402/products/english.html. Это работает нормально после того, как я вызываю правильный URL-адрес, однако он не отображает весь продукт где-то, где он прерывается посередине, со следующим исключением: p>Не удается обработать запрос к /products/english.html в /apps/bookstore/components/ rating/ranking.jsp‹/p› ‹h3›Exception:‹/h3› ‹pre›org.apache.sling.api.SlingException: at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.handleJspExceptionInternal - person user1130906; 11.03.2013

Аннотации в RankingServiceImpl относятся к более ранней версии CQ и CRX. Вот изменения, которые я сделал, чтобы заставить это работать:

import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;


/**
 * Default implementation of the ranking service.
 * The ranking is updated through observation (based on OSGi events).
 * The service can be used by clients to get the highest ranked products.
 */
@Component(immediate = true)
@Service(value = RankingService.class)
@Property(name = org.osgi.service.event.EventConstants.EVENT_TOPIC, value = SlingConstants.TOPIC_RESOURCE_ADDED)
public class RankingServiceImpl
    implements RankingService, EventHandler, Runnable {

    private Logger logger = LoggerFactory.getLogger(this.getClass());
    // private Logger logger = LoggerFactory.getLogger("RankingServiceImpl");


    private static final String PROPERTY_PREV_RANKING = "lowerRankingRef";
    private static final String PROPERTY_NEXT_RANKING = "higherRankingRef";

    private static final int SHOW_HIGHEST_RANKING = 3;

    /** Flag for stopping the background service. */
    private volatile boolean running = false;

    /** A local queue for handling new orders. */
    protected final BlockingQueue<String> orders = new LinkedBlockingQueue<String>();

    @Reference
    private SlingRepository repository;

    @Reference
    private ResourceResolverFactory resourceResolverFactory;
person oenpelli    schedule 20.12.2013