我用JNDI.lookup()方法替换了所有JNDI查找,因为它看起来很方便,处理动态返回类型等。一切都很棒。。。但现在我注意到,以前必须捕获的已检查异常已不存在。
我认为这是因为如果JNDI变量不存在,但它不存在,它就会返回null。它现在只是抛出一个未检查的异常。
知道为什么吗?有没有一种方法可以只为不存在的变量返回null?
我在omnifaces网站上为此创建了一个bug:https://github.com/omnifaces/omnifaces/issues/141
不确定这是否是预期行为。
有没有一种方法可以只为不存在的变量返回null
它为NameNotFoundException
执行此操作。问题不在OmniFaces中,而是在环境中,在您的特定案例中是GlassFish 4.1。它意外地将NameNotFoundException
包裹在另一个NamingException
中,从而导致底层NameNotFoundException
滑过并绕过return null
条件。
根据本注释,这已在Exceptions#is()
实用程序方法的帮助下得到修复。它将在OmniFaces 2.2中提供。