2012-02-13 13 views
6

私はubuntuパッケージマネージャを使用してtomcatをインストールしました。私はログを開いて、私が見る最初のことは面白い例外です。Apache Tomcat設定java.lang.NoClassDefFoundError:org/springframework/asm/ClassVisitor

ます。java.lang.NoClassDefFoundError:ORG/springframework/ASM/ClassVisitor

私は、インストール中に何かが足りないのですか?

私が最初に再インストールした理由は、私がTomcatを使ってWebサービスに初めて行ったことでしたが、それはうまくいきませんでした。しかし今のところ:なぜこの例外が出るのですか? 私は親切心からログ全体を貼り付け:

Feb 13, 2012 10:00:17 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 
Feb 13, 2012 10:00:17 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
java.lang.NoClassDefFoundError: org/springframework/asm/ClassVisitor 
at org.springframework.context.support.AbstractRefreshableApplicationContext.customizeBeanFactory(AbstractRefreshableApplicationContext.java:218) 
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129) 
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397) 
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) 
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905) 
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740) 
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500) 
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) 
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:593) 
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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: java.lang.ClassNotFoundException: org.springframework.asm.ClassVisitor 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1484) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1329) 
... 31 more 
Feb 13, 2012 10:00:17 PM org.apache.catalina.core.ApplicationContext log 
INFO: Closing Spring root WebApplicationContext 
Feb 13, 2012 10:02:30 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 
Feb 13, 2012 10:02:30 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class  org.springframework.web.context.ContextLoaderListener 
java.lang.NoClassDefFoundError: org/springframework/asm/ClassVisitor 
at org.springframework.context.support.AbstractRefreshableApplicationContext.customizeBeanFactory(AbstractRefreshableApplicationContext.java:218) 
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129) 
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397) 
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) 
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905) 
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740) 
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500) 
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) 
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:593) 
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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: java.lang.ClassNotFoundException: org.springframework.asm.ClassVisitor 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1484) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1329) 
... 31 more 
Feb 13, 2012 10:02:30 PM org.apache.catalina.core.ApplicationContext log 
INFO: Closing Spring root WebApplicationContext 
+1

classpathにspring-asm-X.Y.Z.RELEASE.jarファイルを含めていないようです。 –

+0

私は瓶がないと分かります。パッケージマネージャーのインストールには含まれていません。私がどこで瓶を手に入れることができるのか? –

+0

Springは標準のTomcatデプロイメントの一部ではありません。あなたがあなたのアプリで使うかもしれない依存性反転コンテナです。つまり、必要なすべての依存関係をWebアプリケーションのクラスパスに追加するのはあなたの責任です。 –

答えて

8

を提示Tomcatが春のASMに依存しているWebアプリケーションを配備しようとしているが、それはクラスパス上の春のASM用のJARファイルを見つけることができないように見えますことを、確認してください。私はあなたのWebアプリケーションのSpringのどのバージョンが使用されているのかよく分かりませんが、そのJARファイルの最新バージョンは3.1.0.RELEASEです。あなたはMavenを使用している場合

、あなたのプロジェクトののpom.xmlにこれを追加することで、プロジェクトに不足しているJARファイルを追加することができます。

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>org.springframework.asm</artifactId> 
    <version>3.1.0.RELEASE</version> 
</dependency> 

あなたの依存関係を管理するためにMavenを使用していない場合は、 org.springframework.asm-3.1.0.RELEASE.jar(または必要なバージョン)を取得するには、http://www.springsource.org/spring-community-downloadから 全体のSpring Frameworkをダウンロードします。 ASM jarファイルは、プロジェクトのWEB-INF/libフォルダに配置する必要があります。

+0

私は何も配備していません。これは、インストール直後のログファイルです。私は何も配備していません –

+0

一方、これは新しいコンピュータではないので、どこかで再インストールが始まらなかった何かがあるかもしれません。それを悪く見てください。 –

+0

このマシンは以前にTomcatを持っていました。そして、それは特別なwebserviceホルダーの設定を持っていた、そしてlo、warファイルがそこにあった。それはアンインストールされていませんでした。削除して再インストールすると、エラーメッセージが表示されなくなりました。 –

2

一般的なアプローチは、このような状況

1)欠落classsが含まれて、どのようなJARライブラリーの確立を処理します。

2)このjarファイルがクラスパスに

+0

私はそれほど多くを認識しましたが、何が欠けているか分かりません。私の人生では春を使ったことはありません。これは完全に新鮮なTomcatのインストールです。私はこれを書いています。なぜなら、どのような瓶が必要なのかわからないので、私は共通のアプローチに従うのが難しいからです。 –

+0

Gabrielが質問するコメントにちょうどjarを指しているようです。悲しいことに、私はあなたの春のバージョンと他の依存関係がわからないので、あなたが正確に欠けている瓶が何であるかを知ることはできません。 – Anton

1

このエラーは、おそらくweb.xmlにあるエントリから発生している可能性があります。例えば、これを持っているなら - org.springframework.web.servlet.DispatcherServlet。 !!だから、Tomcatが起動したとき、のload-on-startupが春のASMコンテキストを見つけるためにしようと、おそらく展開assemblyisは、Mavenの依存関係のjarファイルを欠落している(jarファイルが提供されていますが)、これは

**Basiaclly In project options you should include Maven Dependencies to your Deployment Assembly** 

1. Project properties-> Deployment Assembly -> Add.. 

2. Java Build Path Entries -> Maven Dependencies 

3. Finish 

Run mavem clean install and run on server. The error should go away. 
1

の下に設定してみてください解決するには私の場合、この問題は、Java 7とJava 8の2つのバージョンのJavaにインストールされていました。Java 7の問題を解決しました。

関連する問題