2017-03-07 6 views
0

해결할 수없는 문제가있는 Xtext 프로젝트가 있습니다. 다음 코드를 고려하십시오IResourceSetProvider에서 NullPointerException이 발생합니까?

@Inject 
IResourceSetProvider resourceSetProvider; 

private void function(){ 
    IProject project = file.getProject(); 

    URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true); 
    ResourceSet resourceSet = resourceSetProvider.get(project); 
    Resource resource = resourceSet.getResource(uri, true); 
} 
목적 "파일"는 IFILE이 함수의 인수로 전달 내가 예를 들어, 그 내용을 액세스하고 심지어 문자열로 출력 할 수 있어요로서, 널이

. 또한 IProject 필드에 액세스하여 이에 대한 작업을 수행 할 수 있습니다. 그러나 ResourceSet 줄, 즉 ".get (project)"함수에서 NullPointerException이 발생합니다. 프로젝트가 확실히 null이 아니므로이 단계에서 NullPointerException이 발생할 수 있습니다.

도움 주셔서 감사합니다.

+0

나는 당신이 축소 된 클래스, 수입품 등을 제공해야한다고 생각한다. – efekctive

+0

사과 ... 도와 주려고 고맙게 생각하지만,이 문제를 해결할 수 없다. 당신은 null 인 ResourceSetProvider에 대해 옳았습니다. 그래서 어떤 것이 주입에 실패했습니다 ... 내가 보여주는이 코드 블록은 관련이 있다면 클래스 내에 있습니다. –

+0

글쎄, 나는 주사를 완전히 제거하고 IResourceSetProvider를 수동으로 인스톨함으로써 해결할 수 있었다. 'IResourceSetProvider rs1 = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider (uri) .get (IResourceSetProvider.class); ' –

답변

0

프로젝트가 null이거나 주입이 실패하고 공급자가 null입니다. 변수 프로젝트가 null이 아닙니다. 그런 다음 주사가 실패했습니다.

+0

죄송합니다. 나는 잘 모르겠다. 어떻게 주사가 실패 할 수 있습니까? –

+0

제공 한 코드가 있으면이 행의 유일한 옵션입니다. osgi 컨테이너가 주사/주사 단계에서 주사위 점 – efekctive

+1

@ sentient_6으로 클래스를 인식하지 못하면 주사가 실패합니다. 주입을 통해 유형을 둘러싸는 경우를 작성하는 것이 중요합니다. – Alex