5

我正在尝试从 Java EE 教程运行示例guessnumber-jsf。它在这里:https ://svn.java.net/svn/javaeetutorial~svn

pom.xml 中没有依赖项。所以输出文件没有 .jar 文件。当我尝试将 javaee-api-7.0-b83.jar 放入 tomcat/lib 或 WEB-INF/lib/javaee-api-7.0-b83.jar 时,没有任何变化。

当我尝试打开

本地主机:8080/guessnumber-jsf/faces/greeting.xhtml

我得到 ClassNotFoundException。我在哪里可以获得面部教程所需的罐子列表?我怎样才能连接它们?

4

4 回答 4

4

您不能将那个 Java EE jar 放在 Tomcat 中并期望它神奇地变成一个 Java EE 服务器。

该特定 jar 仅包含要链接的 API(例如 C/C++ 术语中的“标题”)。它不包含任何实现。

最简单的方法是安装 Tomcat 并下载 TomEE。可选择下载 GlassFish。

这些都已经包含了您需要的所有功能,无需将任何内容放入 WEB-INF/lib。(如果使用 Maven 将 Java EE 6 GAV 作为pom 中提供的范围的依赖项)。

于 2013-04-15T09:17:57.340 回答
3

如果您使用的是 Maven 项目,则可以通过添加以下依赖项来修复此错误:

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.faces</artifactId>
    <version>2.2.7</version>
</dependency>
于 2014-09-19T05:46:10.083 回答
1

添加到 Mike Braun 的答案中,Web 配置文件的Java EE 6 GAV 是:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>6</version>
    <scope>provided</scope>
</dependency>

特别注意范围:“提供”。这意味着您的 Maven 项目将与此链接,但它希望您的运行时具有实现。对于 TomEE、GlassFish、JBoss AS 7.x 等,情况确实如此。

于 2013-04-16T07:02:42.683 回答
0

在您的类路径(.classpath)中确保您有类似的条目

<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
于 2013-07-21T10:28:44.837 回答