2011-12-23 1 views
0
をインスタンス化できませんでした

コンテキスト:は、SLF4J LoggerFactory

私はLinuxマシン上のM2Eで日食3.7(Java EEのバージョン)を使用しています。

Iは、実行/デバッグ]メニューから桟橋サーバを実行しようとすると、私はこのエラーを取得:

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コンソールからjettyサーバーを実行すると正常に動作します。

私は外部ツール(eclipse内)として実行し、デバッグセッションに接続するともっとうまく行かせるためにはうまく動作します。奇妙な点は、このサーバーをシャットダウンしてから、元の方法(最初にエラーを出した方法)で/ debugを実行すると、正常に動作するということです。

関連性のある情報がもう1つあります。これは、Eclipseプロジェクトの構成がリポジトリから取得され、Windowsユーザーがこの問題を認識しないということです。

ここでは何が起こっていますか?それを修正する方法はありますか?

+0

多分あなたはそれを使用していませんが、桟橋はslf4jを使用しています。 Eclipseから実行すると、commandlineから実行されるときに使用される関連ライブラリもすべてクラスパス上にあることを確認していますか? –

+0

あなたのstacktraceにはいくつかの行がありません:どのクラスが 'org.slf4j。*'を呼びますか? –

+0

Aaron、私は完全なスタックトレースを追加しました。 – Tiris

答えて

0

私はついにそれを理解しました。だから私は同じ問題を抱えている人のためにこの答えを投稿しています。

私はIBM JDKを使用していましたが、Oracle JDKに切り替えるとすぐにこの問題は解決されました。その答えは、使用しているJDK/JVMの別のバージョンに切り替えることです。

関連する問題