2011-10-17 18 views
4

最近、EclipseからTomcat 7にWebアプリケーションをデプロイした後、Catalinaのログファイルに次のような30以上の警告が表示されています。Tomcat 7 - クラスXの警告を読み込めません

2011年10月17日午前3時33分47秒PM org.apache.catalina.startup.ContextConfig checkHandlesTypes警告:クラス をロードできません[com.sun.codemodel.JArrayClass $ 1]の@HandlesTypes 注釈に対してチェックします1つ以上のServletContentInitializers。 にjava.lang.ClassNotFoundException: org.apache.catalina.loader.WebappClassLoader.loadClassで org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) でcom.sun.codemodel.JArrayClass $ -1( org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1932で org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:1969) でWebappClassLoader.java:1521) ) で org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1826) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1785)012 org.apache.catalinaでorg.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1771) org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1254)で で org.apache.catalina.util.LifecycleSupport.fireLifecycleEventで.startup.ContextConfig.configureStart org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:316)で(ContextConfig.java:881) (LifecycleSupport .java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) at org.apache.catalina.core.Standard Context.startInternal(StandardContext.java:5103) でorg.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) でorg.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java。 812) でorg.apache.catalina.core.StandardHost.addChild(StandardHost.java:607) org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787) でorg.apacheで.catalina.startup.HostConfig.deployWAR(HostConfig.java:932) org.apache.catalina.startup.HostConfig.deplでorg.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:723) で org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)でorg.apache.catalina.startup.HostConfig.start(HostConfig.java:1322) でoyApps(HostConfig.java:470) org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) で でorg.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) org.apache.catalinaました。 util.LifecycleBase.setStateInternal(LifecycleBase.java:379) でorg.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:324) org.apache.catalina.core.ContainerBase.startInternal(ContainerBasでe.java:1041) at org.apache.catalina.core.StandardHost.startInternal(StandardHost。Javaの:774) org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) そのorg.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) その組織という.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291) org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) そのorg.apache.catalina.core.StandardServiceその.startInternal(StandardService.java:443) org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) そのorg.apache.catalina.core.StandardServer.startInternal(デフォルトサーバーという。 Javaの:727) そのorg.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) org.apache.catalina.startup.Catalina.start(Catalina.java:620) sun.reflectこと.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)は sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) そのsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Methodオブジェクト.invoke(Method.java:597) org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303)は org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431)

その

アプリケーションがまだ正常に動作し、それだけで痛み2は、2つの2デバッグ行を取得し、すべてのこれらの警告を過ぎてスクロールする必要があります。これらの警告を修正する方法上の任意のアイデア?

答えて

3

はJAXB-xjc.jarは、すべての警告を取り除くことになった木製のクラスパスから私はちょうど終わったremovingnoise展開のためにそれを必要としていなかったことが判明しますメッセージ。

1

あなたの依存関係を確認してください。そのうちの一つ(またはそれ以上)がMETA-INF/services/javax.servlet.ServletContainerInitializerファイルが含まれています。このファイルには、タイプServletContainerInitializerのクラス名が含まれています。 ServletContainerInitializer sが通常木製@HandlesTypes注釈がクラスを指しています。ないあなたのWebアプリケーションのクラスパス上の表記クラスの輸入の一つ/使用木製com.sun.codemodel.JArrayClass

この質問も有用かもしれない:Class implementing ServletContainerInitializer in web.xml

+0

感謝を脅かす - 私がリンクされ、質問を見てみましょう。これまでのところ、全体のServletContainerInitializerファイルであっても、チュートリアルを経て、かなり複雑なようです。 – Brian

+0

クラスパスを確認しましたが、com.sun.codemodel.JArrayClassを含むJARファイルjaxb-xjcが含まれています。私はEclipse(Indigo)を使ってTomcatにコピーするためにすべてをコンパイルしてパッケージ化しています。 Webアプリケーションのweb.xmlバージョンを2.5に変更すると、警告が表示されなくなるので、エラーはServlet 3.0と関係があります。 – Brian

+0

Servlet/webapp 3.0に 'ServletContainerInitializer'が導入されました。 2.5では、これらは使用されず、 'META-INF/services/javax.servlet.ServletContainerInitializer'ファイルはTomcatによって無視され、例外をスローしません。 – palacsint

3

次絶えずフォーラムの投稿は、またメトロを使用すると、サーブレットと3.0 Webアプリケーションを2.1.1際occure問題を概説 - 4月はまた価値が尋ねる: http://www.java.net/forum/topic/glassfish/metro-and-jaxb/metro-211-and-servlet-version-30-tomcat-many-startup-errors

+1

解決策(web.xmlの ''タグに 'metadata-complete =" true "を追加してください)が私に役立ちました! – Pakman

+0

web.xmlのタグにmetadata-complete = "true"を追加しても私のために働きました。 – JTew

0

では、Tomcatバージョン7.0.23と同じ問題に直面していました。私は2つのTomcat 7.0.33を切り替えた後、私は、この問題に気付きませんでした。私は、最新のTomcatからのjarファイルと$ {tomcat.dir}/libに/ * jarファイルを置き換えevenwhen

、問題が解決しました。 ITが役立つ場合

また、 2他のソリューションが動作し

  1. 修正Webアプリケーション内のすべての戦争のためのweb.xmlおよび3.0 または
  2. は、メタデータの完全な追加からウェブアプリのバージョン木5/2を変更= 2つのWebアプリタグ
関連する問題