当前位置: 首页 > 面试题库 >

升级到Netbeans 8.0.1和Glassfish 4,1后,该软件包不存在

须峰
2023-03-14
问题内容

我正在学习JavaEE CDI,并使用NetBeans 8.0 + Glassfish 4创建了一个小应用程序。升级到NetBeans
8.0.1和Glassfish
4.1之后,我收到很多错误消息,报告某些软件包不存在。例如,我无法使用以下代码,因为我收到了消息包javax.enterprise.event不存在。

package jlacerda;

import javax.inject.Inject;
import javax.enterprise.event.Event;

public class CMensagem 
{
    @Inject
    private Event<Evento> gerarEvento;

    public String getMensagem()
    {
        return "Hello world!";
    }

    public void gerarEvento()
    {
        Evento evento = new Evento();
        evento.setMensagem("Objeto criado a partir da classe CMensagem");

        gerarEvento.fire(evento);
    }
}

软件包也会出现这种情况:

import javax.enterprise.inject.Alternative;
import javax.decorator.Decorator;
import javax.decorator.Delegate;
import javax.enterprise.inject.Disposes;
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;

如果我将服务器更改为Glassfish 4.0,则将按预期运行相同的代码,并且所有软件包均已正确导入。

我在NetBeans和Glassfish论坛中进行了搜索,但没有发现任何这种情况。

在此先感谢您提供任何可能有助于我解决这种情况的建议。


问题答案:

Glassfish 4.1将其CDI版本更新为1.2(Glassfish 4.0使用了CDI
1.1)。由于您没有提供有关应用程序打包方式的信息,因此,我将为您提供所有检查要点:

  1. 检查cdi-api.jar您的战争中没有文件

  2. 检查您weld在战争中也没有任何相关的jar

  3. 使用CDI Api 1.2版来编译代码。检查站点规范以下载文件或像这样更改您的Maven配置

<dependency>
    <groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <version>1.2</version>
    <scope>provided</scope>
</dependency>

API在1.1和1.2之间没有变化,但是所有OSGi配置都已更改,因此您可能会遇到这些更改问题。



 类似资料:
  • 问题内容: 我的android项目使用lombok 1.16.0可以很好地构建,但是一旦我将依赖关系更改为目标1.16.2,在使用lombok批注的任何地方都会出现以下错误: Android SDK并不包括所有javax软件包。我想知道的是,这是1.16.2中的错误还是现在必须添加依赖项? 注意:这是在带有Lombok插件0.8.8的Android Studio中 问题答案: 您可以通过将以下行放

  • 在我将我的系统从Ubuntu 13.04升级到13.10之后,apache、mysql和php配置出现了几个问题。 我解决了大部分问题,但我似乎无法让mCrypt库正常工作。软件包已安装,因此我不需要获取它。服务器工作正常,一切正常,但当我尝试使用Laravel4运行时,我得到一条消息,需要mCrypt。 我做了,输出是我尝试把到但是它没有工作。 有什么想法吗?

  • 从9.4.11版更新Infinispan后。最终至10.0.1。最终尝试启动第四个缓存时,启动多个缓存会产生此错误。与以前的版本相比,它运行平稳。 我们正在使用此配置: 看起来软索引文件存储的某些配置不再正确,我只是不知道它可能是什么。我试图减小maxNodeSize,但没有成功。是否有人可以告诉我升级后需要调整配置的部分,或者我还缺少什么?

  • 我的android项目使用lombok 1.16构建得很好。0,但一旦我将依赖项更改为目标1.16。2、我在使用lombok注释的任何地方都会出现以下错误: Android SDK不包括所有javax包。我想知道的是这是否是1.16中的一个bug。2或者我现在必须向? 注意:这是在Android Studio中,带有Lombok插件0.8。8.

  • 问题内容: 当我编译具有以下2个import语句的简单代码时: 我收到以下消息: 为什么会出现此错误? 这是我的代码: 问题答案: 您需要下载JavaMail API ,并将相关的jar文件放入您的类路径中。

  • apt-show-versions可显示已安装软件包的版本,它提供了一种安全的方法从混合版本环境中升级指定版本的软件包。如以下命令只升级unstable的软件包: # apt-get install `apt-show-versions -u -b | grep unstable`