Netbeans找不到CDI包javax.enterprise.context。*

时间:2014-09-25 12:08:08

标签: jsf netbeans cdi

我正在和我的一位大学同事一起创建一个简单的JSF应用程序,当我从我们的存储库下载应用程序时遇到了一些麻烦。当我将项目导入NetBeans IDE 8.0.1时,程序无法在以下基于CDI的注释上正确编译:

@Named
@RequestScoped
public class LoginController implements Serializable {...

告诉我它无法找到以下包裹:

import javax.enterprise.context.*;

最初我以为我没有安装EJB和EAR插件,但是我安装了从netbeans网站下载的Java EE包。是否有任何其他JAR可能会丢失,导致此特定错误。

在我的同事本地机器上,一切都按预期工作,没有任何问题,所以我不清楚为什么在我的电脑上没有发生这种情况。

4 个答案:

答案 0 :(得分:1)

是的,似乎这个netbeans版本缺少javax.enterprise包。这是解决方案

1)如果您正在使用maven项目,请将javax.enterprise(cdi-api.jar)添加为依赖项

2)对于其他项目,请下载cdi-api.jar,将其作为外部jar添加到项目属性中,它将启用CDI。

答案 1 :(得分:0)

我也有这个问题。 glassfish库结构有所改变,而不是使用来自Glassfish的#EE; Java EE"库我们使用了来自API的#EE; Java EE"图书馆并修复了它。

答案 2 :(得分:0)

两个提议的解决方案都是有效的,但最简单的解决方案是第二个,因为您已经拥有 NetBeans 8.0 中所需的一切。

您的问题显然是 GlassFish 4.1 中存在的默认Java EE软件包(版本7)的结果。当然,这是一个NetBeans错误。当您选择使用Java EE 6时, Netbeans 应该已经为您的项目添加了所需的库。

答案 3 :(得分:0)

是的,您需要包含另一个库。您正在使用属于Java EE的部分。默认情况下,java包含Java SE。所以你需要在你的项目中添加这个库。

转到

项目属性 - >图书馆 - >添加库 - > Java EE Web 7 Api库