Guice部署例外
在Airpal中使用了Guice for DI框架,在我的项目中我们使用的是glassfish 4.1 payara服务器的RESTful Web服务,Jersey版本2.21。 问题1:如果使用的吉斯得到了一些运行时异常部署期间发生Guice部署例外
错误:异常而加载的应用程序:CDI部署失败:WELD-001409:与预选赛型验证暧昧的依赖关系@default于注射点[UnbackedAnnotatedField] // @在org.hibernate.validator.internal.cdi.interceptor.ValidationInterceptor.validator(ValidationInterceptor.java:0)中注入专用的org.hibernate.validator.internal.cdi.interceptor.ValidationInterceptor.validator可能的依赖关系: - org.apache.bval。 [email protected], - ValidatorBean [id = org.hibernate.validator.internal.cdi.ValidatorBean_default]。有关更多详细信息,请参阅server.log。
问题2:如果没有使用Guice如何绑定空运客户端2.21 RESTful。
请帮帮我。任何人都知道这个问题谁使用Airpal + presto + glassfish4.1 + jersey2.21 + maven3.0
似乎既然Guice和标准的Java EE CDI使用相同的@Inject
注释,CDI机制被触发但失败找到依赖关系,因为你的applcation配置了Guice。
GlassFish/Payara最简单的解决方案是在部署应用程序(在部署时在管理控制台中存在复选框,或者为asadmin命令的选项)时禁用隐式CDI。
您也可以在应用程序存档中禁用XML描述符中的CDI。看看Payara Server有关disabling CDI or filtering CDI scanning的文档。请注意,大多数选项仅在Payara Server中提供,而不在GlassFish 4.1中提供。
的CDI被触发或者通过 - 把beans.xml
到你的应用程序(我不希望你把它放在那里,因为你使用的吉斯,但是否它不是由你的IDE因为某些原因产生的) - 用触发CDI的注释注释一个或多个类 - 例如任何EJB注释(@Stateless
,@Stateful
,...)