Apache MyFaces CODI PageBean: «Аргумент bean не должен быть нулевым» - PullRequest
0 голосов
/ 27 апреля 2011

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

Однако, когда я добавляю аннотацию @ PageBean с, например, 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() { }
}

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

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

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

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

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

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

С уважением, Роберт

1 Ответ

1 голос
/ 27 апреля 2011

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

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


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

По-видимому, это ошибка в сваркеверсия, которую вы используете.Это должно работать в сварном шве 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;)

...