无法使用JSF 2.0注释注册java类

时间:2011-06-30 23:05:58

标签: jsf annotations

在我的JSF项目中,我正在尝试使用JSF 2.0注释注册java类,而不是在faces-config.xml文件中注册类。

当我在faces-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 {
    ...
}

面-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>

我正在使用带有Mojarra 2.0.3-FCS的JSF 2.0,我正在运行与Eclipse Helios集成并使用JDK1.6.0_26的Glassfish 3.1上的所有内容。

仅供参考,这个项目的教程是由Lars Vogel撰写的http://www.vogella.de/articles/JavaServerFaces/article.html#installation

2 个答案:

答案 0 :(得分:1)

如果选择“未发布的服务器模块”选项,则@ManagedBean不起作用。

双击Tomcat,然后取消选择此选项并重新启动Tomcat。

答案 1 :(得分:0)

建议,使用带有@ManagedBean注释的name属性。

@ManagedBean(name="cardController")