我正在尝试从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 /面/ greeting.xhtml
我得到了ClassNotFoundException。我在哪里可以获得面部教程所需的罐子列表?我该如何连接它们?
答案 0 :(得分:4)
您不能将该Java EE jar放在Tomcat中,并期望它神奇地变身为Java EE服务器。
该特定jar仅包含要链接的API(例如,C / C ++术语中的“标题”)。它不包含任何实现。
最简单的方法是选择Tomcat并下载TomEE。 (可选)下载GlassFish。
这些都将包含您需要的所有功能,并且不必将任何内容放入WEB-INF / lib中。 (如果使用Maven将Java EE 6 GAV作为依赖项,并在您的pom中提供提供的)。
答案 1 :(得分:3)
如果您使用的是Maven项目,则可以通过添加以下依赖项来修复此错误:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.7</version>
</dependency>
答案 2 :(得分:1)
除了Mike Braun的答案之外,网络资料的 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等,确实如此。
答案 3 :(得分:0)
在你的类路径(.classpath)中,确保你有像
这样的条目<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>