Eclipse中的JSF Hello World - 无法运行:-(

时间:2012-07-08 10:27:41

标签: eclipse jsf

你如何能够从帖子标题中读取我的问题将是相当新鲜的。我试着理解如何让JSF与Eclipse一起工作,并且我试图让一个漂亮而着名的Hello world运行。

作为模板,我使用了Oracle Java EE 6 Book中的代码。

我在包de.kuntze

中创建了这个ManagedBean - Hello.java
package de.kuntze;

import javax.faces.bean.ManagedBean;

@ManagedBean
public class Hello {
    final String world = "Hello World!";

    public String getWorld(){
        return world;
    }

}

无法轻松搞定......我将以下网站用于配对 - beanhello.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
    <title>Facelets Hello World</title>
</h:head>
<h:body>
    #{hello.world}
</h:body>
</html>

也很简单......接下来是web.xml的代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>CopyCat</display-name>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
</web-app>

我让它在我与Eclipse集成的Tomcat 7服务器上运行,到目前为止输出对我来说很好 - 如果我可以提供任何记录详细信息,请告诉我!

项目的名称是“CopyCat”,我希望它能在我的

上看到托管Bean
http://localhost:8080/CopyCat/hello

但是它给了我一个与URL

相同的404错误
http://localhost:8080/CopyCat/

http://localhost:8080/hello.

我是不是太傻了,看不到我的代码在哪里或者我错过了什么?我知道这个问题的级别非常低但是我不知道并且不想开始使用现有项目进行编码 - 这已经向我建议: - /

提前致谢并回复任何答案

安德烈

更新并以某种方式解决方案

  1. 问题的解决方案总是使用另一个网址:

    http://localhost:8080/CopyCat/faces/beanhello
    
  2. 在eclipse中使用tomcat给了我一些错误(见下文),到目前为止我可以建议两件事(顺便说一句:JSTL.jar不是必需的):

    a)使用coreservlets(http://www.coreservlets.com/JSF-Tutorial/jsf2/#Getting-Started)的Eclipse工作区作为起始环境。

    b)将网址格式更改为 *。jsf

    并使用网址

    访问代码
    http://localhost:8080/HelloWorld/beanhello.jsf
    
  3. 希望如果您处于类似情况,这会有所帮助。

1 个答案:

答案 0 :(得分:1)

尝试http://localhost:8080/CopyCat/faces/beanhello

因为您的网页名称为beanhello.xhtml

您的 servlet-mapping url-pattern /faces/*

关于你的例外

阅读BalusC Exception java.lang.NoClassDefFoundError in Dynamic Web Application, Eclipse, JSF

的回答