gpt4 book ai didi

jsf - Tomcat 服务器上 Java EE 应用程序的 Maven 依赖项。 javaee-api有什么问题?

转载 作者:行者123 更新时间:2023-11-28 22:21:29 26 4
gpt4 key购买 nike

我有一个非常简单的 hello world Java EE 应用程序。 index.xhtml如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">

<h:head>
<title>JSF 2.0 Hello World</title>
</h:head>
<h:body>
<h3>#{problemBean.helloWorld}</h3>
</h:body>
</html>

当我使用 pom.xml 文件中的这些依赖项运行此应用程序时,它运行良好:

  <dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.19</version>
</dependency>

<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.19</version>
</dependency>

但是,当我尝试时:

<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
</dependency>

<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
</dependency>

我得到:

java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener

据我所知,javaee-api 也有 jsf-api 提供的所有类?

那么我在这里缺少什么?


编辑:

如果有帮助的话,这是我的 web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">

<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>

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

</web-app>

和 ProblemBean.java:

package com.tugay;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class ProblemBean {

private String helloWorld = "Hello world";

public String getHelloWorld() {
return helloWorld;
}

public void setHelloWorld(String helloWorld) {
this.helloWorld = helloWorld;
}
}

最佳答案

嗯,我猜是缺少 Mojarra 的实现库。尝试将此依赖项添加到您的 pom:

<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.19</version>
</dependency>

此外,我认为您只需要 javaee-api(完整的 EE 6)或 javaee-web-api(EE 6 网络配置文件)。

关于jsf - Tomcat 服务器上 Java EE 应用程序的 Maven 依赖项。 javaee-api有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15986103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com