Tomcat 7 - невозможно загрузить предупреждения класса X

В последнее время я заметил, что после развертывания веб-приложения на Tomcat 7 из Eclipse я получаю более 30 предупреждений в файле журнала Catalina, которые выглядят следующим образом:

Приложение по-прежнему работает нормально, просто мучительно прокручивать все эти предупреждения, чтобы перейти к строкам отладки. Есть идеи, как исправить эти предупреждения?

Оказалось, что jaxb-xjc.jar не нужен для развертывания, поэтому я просто удалил его из пути к классам, что привело к избавлению от всех предупреждающих сообщений.


person Brian    schedule 17.10.2011    source источник


Ответы (4)


В следующем сообщении на форуме также описывается проблема, которая возникает при использовании Metro 2.1.1 с веб-приложениями Servlet 3.0 - также может иметь значение: http://www.java.net/forum/topic/glassfish/metro-and-jaxb/metro-211-and-servlet-version-30-tomcat-many-startup-errors

person Brian    schedule 19.10.2011

Проверьте свои зависимости. Один (или несколько) из них содержат _1_ файл. Этот файл содержит имена классов типа _2_. _3_s обычно имеют аннотацию _4_, которая ссылается на классы. Один из упомянутых классов импортирует / использует _5_, которого нет в пути к классам вашего веб-приложения.

person Philip Helger    schedule 28.03.2012
comment
добавить metadata-complete = true в тег ‹web-app /› в web.xml тоже сработало. - person Pakman; 27.09.2012
comment
Спасибо - я посмотрю на связанный вопрос. Пока что весь файл ServletContainerInitializer кажется довольно сложным даже после изучения руководства. - person JTew; 16.10.2012

Этот вопрос также может быть полезен: Класс, реализующий ServletContainerInitializer в web.xml

Я столкнулся с той же проблемой с tomcat версии 7.0.23. Я не заметил этой проблемы после того, как перешел на Tomcat 7.0.33.

person palacsint    schedule 17.10.2011
comment
Я проверил свой путь к классам и включил JAR-файл jaxb-xjc, который содержит com.sun.codemodel.JArrayClass. Я использую Eclipse (Indigo) для компиляции и упаковки всего, что нужно скопировать в Tomcat. Похоже, ошибка связана только с Servlet 3.0, потому что, если я изменю версию web.xml webapp на 2.5, я больше не получу предупреждений. - person Brian; 19.10.2011
comment
_1_ был представлен в Servlet / webapp 3.0. В 2.5 они не используются, а ваш _2_ файл игнорируется Tomcat, поэтому исключение не возникает. - person Brian; 19.10.2011
comment
17 октября 2011 г. 15:33:47 org.apache.catalina.startup.ContextConfig checkHandlesTypes ПРЕДУПРЕЖДЕНИЕ. Невозможно загрузить класс [com.sun.codemodel.JArrayClass $ 1] для проверки аннотации @HandlesTypes одного или нескольких ServletContentInitializer. java.lang.ClassNotFoundException: com.sun.codemodel.JArrayClass $ 1 в org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1676) в org.apache.catalina.loader.WebappassClassLoader.jpg 1521) в org.apache.catalina.startup.ContextConfig.checkHandlesTypes (ContextConfig.java:1969) в org.apache.catalina.startup.ContextConfig.processAnnotationsStream (ContextConfig.java:1932) в org.apache.catalina. .processAnnotationsJar (ContextConfig.java:1826) в org.apache.catalina.startup.ContextConfig.processAnnotationsUrl (ContextConfig.java:1785) в org.apache.catalina.startup.ContextConfig.processAnnotations (ContextConfig. apache.catalina.startup.ContextConfig.webConfig (ContextConfig.java:1254) по адресу org.apache.catalina.startup.ContextConfig.configureStart (ContextConfig.java:881) по адресу org.apache.catalina.startup.ContextConfig.fcycle. java: 3 16) на org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:119) на org.apache.catalina.util.LifecycleBase.fireLifecycleEvent (LifecycleBase.java:89) на org.apache.catalina.core.text .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.ContainerBase.addChild (ContainerBase.java:787) по адресу org.apache.catalina.core.StandardHost.addChild (StandardHost.java:607) по адресу org.apache.catalina.startup.HostConfig.deployWAR (HostConfig.deployWAR. java: 932) в org.apache.catalina.startup.HostConfig.deployWARs (HostConfig.java:723) в org.apache.catalina.startup.HostConfig.deployApps (HostConfig.java:470) в org.apache.catalina.start .HostConfig.start (HostConfig.java:1322) в org.apache.catalina.startup.HostConfig.lifecycleEvent (HostConfig.java : 311) на org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:119) на org.apache.catalina.util.LifecycleBase.fireLifecycleEvent (LifecycleBase.java:89) на org.apache.catalina. LifecycleBase.setStateInternal (LifecycleBase.java:379) в org.apache.catalina.util.LifecycleBase.setState (LifecycleBase.java:324) в org.apache.catalina.core.ContainerBase.startInternal (ContainerBase.java:1041) в 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) на org.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 (StandardServer.java:727) на org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:145) на org.apache.catalina.s tartup.Catalina.start (Catalina.java:620) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39.DemployingMethodAccessorImpl.java. 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) - person palacsint; 20.10.2011

Даже когда я просто заменил jar-файлы $ {tomcat.dir} / lib / * на jar-файлы из последней версии tomcat, проблема была решена.

В качестве альтернативы, если это помогает, работают два других решения

Измените web.xml для каждой войны в веб-приложениях и измените версию веб-приложения на 2.5 с 3.0 или

  1. Добавить metadata-complete = true в тег веб-приложения
  2. Решение (добавить _1_ к тегу _2_ в web.xml) сработало для меня!
person Manish Mulani    schedule 17.01.2013