如果@Resource无法解析,Glassfish/Wildfly不会失败?

问题描述:

我正在试验一个servlet中的@Resource,看看我们是否可以使用它轻松注入配置参数(这是Glassfish 4.1.1中的servlet 3.0 webapp)。如果@Resource无法解析,Glassfish/Wildfly不会失败?

我被告知https://*.com/a/45715196/53897我看到的@Resource String userName的行为在使用时为空,如果web.xml中的env-entries不存在,根据规范错误地解决该问题,但是WildFly的行为是一样的。

问题是:这是一个已知的错误吗?有没有可以强制执行“如果不能解决就失败”的标志?

+2

我和其中一位WildFly的开发者谈论了这件事,他让我提出一张票。请参阅https://issues.jboss.org/browse/WFLY-9235。如果确实发现这是一个bug,那么它就是TCK无法捕捉的,这也是GlassFish错过了它的原因。 –

这是允许简单的ENV条目:

EE.5.4.1.3

....
这是很方便的声明一个字段或方法注入目标,但 指定一个默认代码中的值,如以下示例所示。

//由部署者配置的最大免税额。
@Resource int maxExemptions = 4; //默认为4

为了支持这种情况,如果 部署者指定了一个值来覆盖默认值,那么容器只能为该资源注入一个值。
.....

+0

感叹。谁认为这是一个好主意显然不需要处理错误的配置条目,而且它仍然在Java EE 7(第84页)中。对于这些东西,默认值是一个糟糕的主意。问题是如果措辞要求提供默认值,或者空例也可以?再次感叹。 –