2

스트럿을 2.0.11에서 2.3.16으로 업그레이드하고 있습니다. 이 java/lang/Object-validation.xml를로드하려고하는 동안 우리의 코드에서Struts 2.3.16 - DefaultActionValidatorManager.loadFile()은 Object-validation.xml을로드하는 동안 NullPointerException을 발생시킵니다.

DefaultActionValidatorManager.getValidators(getClass()을 얻을하는 동안은)는 DefaultActionValidatorManager.loadFile()에서 NullPointerException가 발생합니다.

인터넷에서 검색 할 때 비슷한 문제가 WW-3850으로보고되었습니다. 문제가 xwork 2.3.7에서 수정되었다고합니다. 나는 xwork 2.3.7 소스를 살펴 봤고 언급 된 바가 변경되었다. (추가 null 체크 fileUrl != null). 이 검사는 xwork 2.3.14.3까지 제공되며 이후 2.3.15에서 제거됩니다.

이것이 회귀인지 알고 싶다면 2.3.15 이후로 수정해야합니까? 아니면 DefaultActionValidatorManager.getValidators() 2.3.15를 사용하는 또 다른 방법이 있습니까? 2.3.16에서이 문제를 해결하는 방법은 무엇입니까?

+0

가 비슷한 문제가 [여기] 2.3.4 (http://stackoverflow.com/questions/20262241/annotationactionvalidatormanager-caught-exception-while-loading-file-java-lang) –

+0

보고 된 무효 인 문제입니다 자세한 내용은 여기를 참조하십시오 https://issues.apache.org/jira/browse/WW-3850 –

답변

1

수정 프로그램은 여전히 ​​Struts 2.3.16에 있지만, DefaultFileManager::fileNeedsReloading(URL fileUrl)으로 이동되었습니다.

ClassLoader::getResource(String name)에 대해서는 null 값을 반환 할 수 있습니다. 자원이 발견되지 않았던 경우 나, 호출이 자원을 취득하는 적절한 권한이없는 경우 자원, 또는 null를 읽는 javadoc의

URL 객체의 설명을 참조하십시오.

+0

감사. 그건 설명해. 그러나 내 경우에는 fileUrl null로 Java/lang/Object-validation.xml 여전히 NullPointerException 점점. 내가 뭘 놓칠 지 모르는 어떤 생각? 일부 구성이 누락 된 것처럼 보입니다. –

+0

작업 클래스는 단순한 이름이거나 작업 이름과 결합해야합니다. 나는 이것이 눈부신 실수이기 때문에 그것을 재현 할 수 없다고 생각한다. 예외는 그것에 대해 당신에게 알리는 정당한 방법이다. –