Apache MyFaces CODI PageBean: "Аргумент bean не должен быть нулевым"

В настоящее время я немного экспериментирую с Apache MyFaces CODI. Мне удалось создать простую рабочую Typesafe-Navigation, используя @Page и метод действия, который возвращает класс.

Однако, когда я добавляю @PageBean-Annotation, например, с MyPageBean.class, при попытке перейти на страницу возникает следующее исключение:

exception
javax.servlet.ServletException: WELD-001324 Argument bean must not be null
root cause
org.jboss.weld.exceptions.IllegalArgumentException: WELD-001324 Argument bean must not be null

Код моей страницы:

@Page
@PageBean(MyPageBean.class)
public final class MyPage implements ViewConfig, Serializable {

}

и мой Page-Bean:

public class MyPageBean implements Serializable {
    @InitView
    protected void initView() { }

    @PrePageAction
    protected void prePageAction() { }

    @PreRenderView
    protected void preRenderView() { }
}

И Action-метод, вызываемый страницей Facelets:

public Class<? extends ViewConfig> nextPage() {
    return MyPage.class;
}

Должен ли класс pageBean (MyPageBean) иметь конкретную аннотацию или интерфейс? Я уже пытался использовать @Model, но это ничего не изменило.

Моя конфигурация:

  • Jave EE6 со сваркой (созданный с использованием архетипа сварки)
  • Glassfish 3.1 Community Edition (поставляется с Netbeans 7)
  • JSF2.0 (Мохарра 2.1)
  • EJB 3.1
  • MyFaces CODI 0.9.4
  • RichFaces 4.0.0.Final

Спасибо за любые советы!

С наилучшими пожеланиями, Роберт

1 ответ

Если вы не используете какую-либо конкретную область видимости, она в конечном итоге будет @Dependent.

Я предлагаю по крайней мере использовать @RequestScoped (будьте осторожны, не используйте javax.faces.bean.RequestScoped, но аннотацию из CDI!)


Оки, поговорил с Герхардом сейчас, так как у него больше опыта работы с CODI на Weld.

Видимо, это ошибка в используемой вами версии Weld. Это должно работать в сварном шве 1.1.1. Финал https://github.com/weld/core/tree/1.1.1.Final Финал

Пожалуйста, попробуйте заменить сварочный узел в вашей стеклянной рыбке на сварной шов 1.1.1. Окончательный вариант

cp target/weld-osgi-bundle-1.1.1.jar /opt/sun/glassfish/glassfish/modules/weld-osgi-bundle.jar

если работает: кредиты идут на os890;)

Другие вопросы по тегам