O pacote não existe após a atualização para o NetBeans 8.0.1 e o Glassfish 4,1

Estou aprendendo o JavaEE CDI e criei um pequeno aplicativo com o NetBeans 8.0 + Glassfish 4. Depois de atualizar para o NetBeans 8.0.1 e o Glassfish 4.1, estou recebendo muitos erros relatando que alguns pacotes não existem. Por exemplo, não consigo usar o código a seguir porque estou recebendo a mensagem de que o pacote javax.enterprise.event não existe.

package jlacerda; import javax.inject.Inject; import javax.enterprise.event.Event; public class CMensagem { @Inject private Event gerarEvento; public String getMensagem() { return "Hello world!"; } public void gerarEvento() { Evento evento = new Evento(); evento.setMensagem("Objeto criado a partir da class CMensagem"); gerarEvento.fire(evento); } } 

Essa situação também ocorre com pacotes:

 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; 

Se eu mudar o servidor para o Glassfish 4.0, o mesmo código é executado conforme o esperado e todos os pacotes são importados corretamente.

Procurei nos fóruns do NetBeans e Glassfish, mas não encontrei nenhuma situação como essa.

Agradecemos antecipadamente por qualquer sugestão que possa me ajudar a resolver esta situação.

O Glassfish 4.1 atualizou sua versão CDI para o 1.2 (o Glassfish 4.0 usou o CDI 1.1). Como você não dá informações sobre como seu aplicativo é empacotado, eu darei todos os pontos para verificar:

  1. Verifique se você não tem um arquivo cdi-api.jar em sua guerra

  2. Verifique se você também não tem nenhum jarro relacionado à weld em sua guerra

  3. Use a versão 1.2 do CDI Api para compilar seu código. Verifique na especificação do site para baixar o arquivo ou alterar sua configuração do Maven como esta


  javax.enterprise cdi-api 1.2 provided  

Não há alteração na API entre 1.1 e 1.2, mas toda a configuração do OSGi foi alterada, portanto, você pode encontrar um problema com essas mudanças.

Com o NetBeans 8.0.x, você só precisa abrir as Propriedades do projeto, ir para a seção Bibliotecas e adicionar “Biblioteca da API do Java EE Web 6”. Eu tenho o mesmo problema quando migrei do NetBeans 7.4 para 8.0, mas a solução é bastante simples e óbvia.