我们正在将struts从2.0.11升级到2.3.16。
在尝试获取DefaultActionValidatorManager.getValidators(getClass()
时,我们的代码中为null),它会在尝试加载NullPointerException
时从DefaultActionValidatorManager.loadFile()
引发java/lang/Object-validation.xml
。
在互联网上搜索我发现类似的问题被报告为WW-3850。它说问题已在xwork 2.3.7中修复。我看了一下xwork 2.3.7源码并且它已经改变了(附加的空检查fileUrl != null
)。此检查一直存在到xwork 2.3.14.3,并从2.3.15开始删除。
知道这是否是回归并且需要在2.3.15之后修复?或者还有另一种使用DefaultActionValidatorManager.getValidators()
从2.3.15开始的方式?如何在2.3.16中解决这个问题?
答案 0 :(得分:1)
修补程序仍存在于Struts 2.3.16中,但已移至DefaultFileManager::fileNeedsReloading(URL fileUrl)
。
关于ClassLoader::getResource(String name)
可以返回null
值。请参阅javadoc的说明
用于读取资源的URL对象,如果是,则为null 无法找到资源或调用者没有足够的资源 获得资源的特权。