2012-05-15 3 views
0

주어진 프로젝트를 실행하는 데 도움이 필요합니다. 프로젝트는 다음과 같습니다. http://code.google.com/p/opennetinf/Guice를 사용하는 Projekt가 Eclipse에서 실행 중일 때

문서의 지침에 따라 Eclipse에서 프로젝트를 실행하십시오. 이제 터미널에서이 프로젝트를 실행하고 싶습니다. 터미널에서 프로젝트 시작시 약간의 시간이 지나면 큰 예외가 발생합니다. log4j 출력의 첫 x 째 행은 Eclipse 콘솔의 출력과 유사합니다. 예외는 다음과 같습니다

Exception in thread "main" com.google.inject.ProvisionException: Guice provision errors: 

1) Error in custom provider, java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at netinf.node.cache.peerside.PeersideCacheModule.provideNetworkCaches(PeersideCacheModule.java:64) 
    while locating java.util.List<netinf.node.cache.peerside.PeersideCache> 
    for parameter 0 at netinf.node.cache.CachingInterceptor.setPeersideCaches(CachingInterceptor.java:81) 
    while locating netinf.node.cache.CachingInterceptor 
    at netinf.node.module.StandardNodeModule.provideResolutionInterceptors(StandardNodeModule.java:125) 
    while locating netinf.node.resolution.ResolutionInterceptor[] 
    for parameter 0 at netinf.node.resolution.impl.ResolutionControllerImpl.initReslolutionInterceptors(ResolutionControllerImpl.java:442) 
    while locating netinf.node.resolution.impl.ResolutionControllerImpl 
    while locating netinf.node.resolution.ResolutionController 
    for parameter 0 at netinf.node.api.impl.NetInfNodeImpl.setResolutionController(NetInfNodeImpl.java:95) 
    while locating netinf.node.api.impl.NetInfNodeImpl 
    while locating netinf.node.api.NetInfNode 

1 error 
    at com.google.inject.InjectorImpl$4.get(InjectorImpl.java:767) 
    at com.google.inject.InjectorImpl.getInstance(InjectorImpl.java:793) 
    at netinf.node.StarterNode.start(StarterNode.java:126) 
    at netinf.node.StarterNode.main(StarterNode.java:75) 
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:106) 
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48) 
    at com.google.inject.SingleParameterInjector.inject(SingleParameterInjector.java:42) 
    at com.google.inject.SingleParameterInjector.getAll(SingleParameterInjector.java:66) 
    at com.google.inject.SingleMethodInjector.inject(SingleMethodInjector.java:84) 
    at com.google.inject.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:99) 
    at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:94) 
    at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111) 
    at com.google.inject.InjectorImpl$4$1.call(InjectorImpl.java:758) 
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811) 
    at com.google.inject.InjectorImpl$4.get(InjectorImpl.java:754) 
    at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:89) 
    at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:95) 
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48) 
    at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45) 
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811) 
    at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42) 
    at com.google.inject.Scopes$1$1.get(Scopes.java:54) 
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48) 
    at com.google.inject.SingleParameterInjector.inject(SingleParameterInjector.java:42) 
    at com.google.inject.SingleParameterInjector.getAll(SingleParameterInjector.java:66) 
    at com.google.inject.SingleMethodInjector.inject(SingleMethodInjector.java:84) 
    at com.google.inject.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:99) 
    at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:94) 
    at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111) 
    at com.google.inject.FactoryProxy.get(FactoryProxy.java:56) 
    at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45) 
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811) 
    at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42) 
    at com.google.inject.Scopes$1$1.get(Scopes.java:54) 
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48) 
    at com.google.inject.SingleParameterInjector.inject(SingleParameterInjector.java:42) 
    at com.google.inject.SingleParameterInjector.getAll(SingleParameterInjector.java:66) 
    at com.google.inject.SingleMethodInjector.inject(SingleMethodInjector.java:84) 
    at com.google.inject.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:99) 
    at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:94) 
    at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111) 
    at com.google.inject.FactoryProxy.get(FactoryProxy.java:56) 
    at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45) 
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811) 
    at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42) 
    at com.google.inject.Scopes$1$1.get(Scopes.java:54) 
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48) 
    at com.google.inject.InjectorImpl$4$1.call(InjectorImpl.java:758) 
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:804) 
    at com.google.inject.InjectorImpl$4.get(InjectorImpl.java:754) 
    ... 3 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:101) 
    ... 48 more 
Caused by: java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple; 
    at org.slf4j.impl.JDK14LoggerAdapter.warn(JDK14LoggerAdapter.java:450) 
    at org.eclipse.jetty.util.log.Slf4jLog.warn(Slf4jLog.java:40) 
    at org.eclipse.jetty.util.log.Log.warn(Log.java:237) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.setFailed(AbstractLifeCycle.java:198) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at netinf.node.cache.peerside.PeersideAccessServer.start(PeersideAccessServer.java:64) 
    at netinf.node.cache.peerside.PeersideCache.<init>(PeersideCache.java:79) 
    at netinf.node.cache.peerside.PeersideCacheModule.provideNetworkCaches(PeersideCacheModule.java:77) 
    ... 53 more 

이 그래서 내가 무슨 짓을 한 : 이클립스 내보내기 대화를 통해 프로젝트를 수출 (수출 -> Runnable를 항아리). 도서관 취급은 무의미합니다. 각 세 가지 방법으로 나는 같은 예외를 얻는다.

내 질문 :이 예외는 무엇을 말해 줍니까? 어떻게 문제를 해결할 수 있습니까?

답변

3

이것은 Slf4j와 관련된 클래스 경로 오류 인 것으로 보입니다. build file을 보면이 프로젝트는 Slf4j 1.5.6을 사용하는 것으로 보입니다.

는 다음 두 jar 파일을 클래스 패스에 있는지 확인하십시오 :

slf4j-api-1.5.6.jar 
slf4j-log4j12-1.5.6.jar 

또한 클래스 패스에 다른 SLF4J 단지가 없는지 확인하십시오.

+0

안녕하세요 Chris B가 그 핵심이었습니다. lib 디렉토리에 오래된 slf4j-jdk14-1.6.1.jar가 있습니다. 난 ~를 지웠어. 이제 작동합니다. 고맙습니다. – hikhvar

관련 문제