Невозможно зарегистрировать класс Java с аннотациями JSF 2.0 - PullRequest
1 голос
/ 01 июля 2011

В моем проекте JSF я пытаюсь зарегистрировать классы java с аннотациями JSF 2.0 вместо регистрации классов в файле Face-config.xml.

Когда я регистрирую классы в файле face-config.xml, все работает.Однако, когда я регистрирую классы с помощью аннотаций, я получаю следующую ошибку в журнале сервера:

WARNING: ApplicationDispatcher[/de.vogella.jsf.card2] PWC1231: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Target Unreachable, identifier 'cardController' resolved to null
at com.sun.el.parser.AstValue.getTarget(AstValue.java:131)
...

WARNING: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
javax.el.PropertyNotFoundException: Target Unreachable, identifier 'cardController' resolved to null
at com.sun.el.parser.AstValue.getTarget(AstValue.java:131)
...

Я новичок в этих технологиях, поэтому любая помощь очень ценится!

Ниже приведены мои настройки, когда что-то не работает.

CardController.java

@ManagedBean
@SessionScoped
public class CardController {
    @ManagedProperty(value="#{card}")
    private Card card;

    ...


    public Card getCard() {
        return card;
    }

    public void setCard(Card card) {
        this.card = card;
    }
}

Card.java

@ManagedBean
public class Card {
    ...
}

face-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">
</faces-config>

Я использую JSF 2.0 с Mojarra 2.0.3-FCS и запускаю все на Glassfish 3.1, интегрированном с Eclipse Heliosи используя JDK1.6.0_26.

К вашему сведению, урок, из которого этот проект получен, - http://www.vogella.de/articles/JavaServerFaces/article.html#installation Ларса Фогеля.

Ответы [ 2 ]

1 голос
/ 11 апреля 2012

Если выбран параметр «серверные модули без публикации», то @ManagedBean не работает.

Дважды щелкните Tomcat, а затем отмените выбор этого параметра и перезапустите Tomcat.

0 голосов
/ 16 сентября 2011

Рекомендация, используйте атрибут name с аннотацией @ManagedBean.

@ManagedBean(name="cardController")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...