2011-12-23 2 views
0
을 인스턴스화하는 데 실패

상황 :은 SLF4J LoggerFactory

나는 리눅스 머신에 M2E 이클립스 3.7 (자바 EE 버전)를 사용하고 있습니다.

나는이 오류가 실행/디버그 메뉴에서 부두 서버 실행하려고하면 :

Failed to instantiate SLF4J LoggerFactory 
Reported exception: 
java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder 
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121) 
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111) 
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254) 
    at com.ning.http.client.Realm$RealmBuilder.<clinit>(Realm.java:250) 
    at java.lang.J9VMInternals.initializeImpl(Native Method) 
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:200) 
    at org.sonatype.aether.connector.async.AsyncRepositoryConnector.getRealm(AsyncRepositoryConnector.java:167) 
    at org.sonatype.aether.connector.async.AsyncRepositoryConnector.createConfig(AsyncRepositoryConnector.java:227) 
    at org.sonatype.aether.connector.async.AsyncRepositoryConnector.<init>(AsyncRepositoryConnector.java:149) 
    at org.sonatype.aether.connector.async.AsyncRepositoryConnectorFactory.newInstance(AsyncRepositoryConnectorFactory.java:110) 
    at org.sonatype.aether.impl.internal.DefaultRemoteRepositoryManager.getRepositoryConnector(DefaultRemoteRepositoryManager.java:333) 
    at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:456) 
    at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:220) 
    at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:197) 
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:268) 
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:173) 
    at org.sonatype.aether.impl.internal.DefaultDependencyCollector.process(DefaultDependencyCollector.java:419) 
    at org.sonatype.aether.impl.internal.DefaultDependencyCollector.process(DefaultDependencyCollector.java:533) 
    at org.sonatype.aether.impl.internal.DefaultDependencyCollector.process(DefaultDependencyCollector.java:533) 
    at org.sonatype.aether.impl.internal.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:243) 
    at org.sonatype.aether.impl.internal.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:345) 
    at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:119) 
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:165) 
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:104) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:258) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:201) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions(MojoExecutor.java:365) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:199) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
    at java.lang.reflect.Method.invoke(Method.java:611) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder 
    at java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:76) 
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:38) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230) 
    ... 51 more 

나는 이것이 내가 클래스 패스에 클래스를 잃었 의미 알고 있습니다. 문제는이 수업을 찾지 않아야한다는 것입니다 (사용하지 않고 있습니다).

Linux 콘솔에서 부두 서버를 실행하면 정상적으로 작동합니다.

외부 도구 (eclipse 내에서)로 실행하고 디버깅 세션에 연결하면 문제가 좀 이상하게 들리지만 제대로 실행됩니다. 기괴한 부분은 내가이 서버를 종료 한 다음 원래 방식으로 (처음 오류를 발행 한 방식으로) 실행/디버그하면 이제는 정상적으로 실행된다는 것입니다.

아마도 관련성이있는 정보가 한 가지 더 있습니다. 이클립스 프로젝트 구성은 저장소에서 가져오고 Windows 사용자는이 문제점을 볼 수 없습니다.

여기에 무슨 일이 일어나고 있습니까? 그것을 고칠 수있는 방법이 있습니까?

+0

어쩌면 당신은 그것을 사용하고 있지 않지만, 부두는 slf4j를 사용하고있을 것입니다. Eclipse에서 실행할 때 커맨드 라인에서 실행될 때 사용되는 모든 관련 라이브러리가 클래스 경로에도 있는지 확인 하시겠습니까? –

+0

stacktrace에 일부 행이 누락되었습니다. 어떤 클래스가'org.slf4j. *'를 호출합니까? –

+0

Aaron, 전체 스택 추적을 추가했습니다. – Tiris

답변

0

나는 그것을 마침내 발견했습니다. 그래서 나는 같은 문제가있는 사람을 위해이 답변을 올리려고합니다.

IBM JDK를 사용하고 있었고 Oracle JDK로 전환하자마자이 문제가 해결되었습니다. 따라서 대답은 사용중인 JDK/JVM의 다른 버전으로 전환하는 것입니다.

관련 문제