Java EE 6:目标无法访问,标识符’helloBean’已解析为null
我想尝试一个简单的JSF 2教程示例。
我在Eclipse中使用动态Web项目并发布到Glassfish 3服务器(运行 – >在服务器上运行)。 第一个index.xhtml页面正确加载,但是当我必须访问托管bean时,会显示以下错误:
/index.xhtml @14,48 value="#{helloBean.name}": Target Unreachable, identifier 'helloBean' resolved to null
我已经看过关于这个主题的各种其他讨论,但是解决方案对我来说似乎永远不会起作用(例如,添加beans.xml,根据命名约定给托管bean命名等)。
任何帮助,将不胜感激。
这是我目前正在使用的代码:
的index.xhtml
JSF 2.0 Hello World JSF 2.0 Hello World Example - hello.xhtml
response.xhtml:
JSF 2.0 Hello World JSF 2.0 Hello World Example - welcome.xhtml
Welcome #{helloBean.name}
管理豆:
package java.hello1; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import java.io.Serializable; @ManagedBean @SessionScoped public class HelloBean implements Serializable { private static final long serialVersionUID = 1L; private String name = "Ricardo"; public String getName() { return name; } public void setName(String name) { this.name = name; } }
web.xml中:
JavaServerFaces javax.faces.PROJECT_STAGE Development faces/index.xhtml Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet /faces/* Faces Servlet *.jsf Faces Servlet *.faces Faces Servlet *.xhtml
您需要具有符合JSF 2.0的/WEB-INF/faces-config.xml
文件才能让JSF解释注释。
如果您已经有一个或如果没有解决问题,请注意服务器启动日志,如果您没有看到任何警告/错误。
顺便说一句,您的/WEB-INF/web.xml
文件被声明为符合Servlet 2.5规范。 虽然这可能不一定有害,但是如果您使用符合Servlet 3.0的容器则毫无意义。 更新根声明如下:
/WEB-INF/beans.xml
用于CDI注释,如@ @Named
,@ @Inject
等。 只需一个完全空的文件即可将其打开。 它与@ @ManagedBean
,@ @ManagedProperty
等JSF注释完全没有关系。 它也不应该相互混淆/混合。
我已经被困了这个问题半天了。 我的问题只有在我从Eclipse运行WebApp时才出现。 JSF 2在WEB-INF / classes中查找带注释的bean,但找不到它们。 为了解决这个问题,我将构建输出路径更改为WebContent / WEB-INF / classes。 下面是类似案例的详细解释: Jetty maven目标jetty:run不能与JSF 2.0 @ManagedBean一起使用
在与OP完全相同的场景中(使用eclipse,使用run – >在服务器上运行发布到Glassfish 3服务器)我得到完全相同的错误,直到从Eclipse项目名称中删除空格。 简单地删除任何空格解决了问题。
请检查您的war文件,看看您的类是否在WEB-INF / classes文件夹下。 我遇到了同样的问题,发现没有类文件WEB-INF / classes文件夹。
我有同样的问题,我尝试了一切。 之后,我只需点击“Click and Build Project”按钮,“Build Project”按钮并重新启动GlassFish服务器。 之后,它适用于我,现在:)
在Controller / Bean中包含@Named ..
- Tomcat启动但主页无法使用url http:// localhost:8080打开
- 从大的jp2图像读取像素,而不将整个图像加载到内存中
- 如何在Eclipse PAHO Java MQTT客户端和Mosquitto代理之间创建PSK连接?
- org.glassfish.jersey.server.model.ModelValidationException:应用程序初始化期间应用程序资源模型的validation失败
- Internet Explorer 8-10中的Selenium WebDriver Windows切换问题
- 根据列值更改JTable行的背景颜色
- 通过reflection调用Java中的getter:重复调用它的最快方法是什么(性能和可伸缩性方面)?
- 使用java.time生成随机LocalDate
- 如何测试1000位数的素数?