2

您如何能够从帖子标题中阅读我的问题将是相当新奇的。我试图了解如何让 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”,我希望它能够在我的

http://localhost:8080/CopyCat/hello

但它给了我一个与 URL 相同的 404 错误

http://localhost:8080/CopyCat/

http://localhost:8080/hello.

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

问候并提前感谢您的任何答案

安德烈

更新并以某种方式解决

  1. 总而言之,该问题的解决方案是使用另一个 URL:

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

    a) 通过 coreservlets (http://www.coreservlets.com/JSF-Tutorial/jsf2/#Getting-Started) 使用 Eclipse 工作区作为启动环境。

    b) 将 URL 模式更改为*.jsf

    并通过 URL 访问代码

    http://localhost:8080/HelloWorld/beanhello.jsf
    

如果您处于类似情况,希望这会有所帮助。

4

1 回答 1

1

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

因为你的页面名称是beanhello.xhtml

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

关于你的例外

在动态 Web 应用程序、Eclipse、JSF 中阅读 BalusC Exception java.lang.NoClassDefFoundError 的答案

于 2012-07-08T10:35:22.727 回答