我们有一个基于 Guice 的 Web 应用程序,我们部署到 JBoss EAP 6.4.0。此应用程序使用 Netflix Governator 库,该库为 PostConstruct 注释提供支持。
这个应用程序在 JBoss 上启动没有任何问题,直到我们添加了一些客户端提供的 JAAS 配置文件。使用这些文件,应用程序不会启动并引发此异常:
JBWEB000287: Exception sending context initialized event to listener instance of class c.n.b.s.ServletContextListener: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
我通过添加此依赖项解决了这个问题:
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.1</version>
</dependency>
但我想知道这是否是正确的解决方案。我不熟悉 JBoss 或 JAAS,我想知道是否不应该以更好的方式修复它,例如在模块配置中。我不明白为什么我一直没有这个错误,但只有 JAAS XML 文件。