java.lang.ClassFormatError: Отсутствует атрибут кода в методе, который не является родным или абстрактным в файле classа javax / faces / webapp / FacesServlet

Я хочу использовать Mojarra 2.1 с Tomcat 7, поэтому я добавил следующие зависимости в мой файл pom:

 com.sun.faces jsf-api 2.1.2   com.sun.faces jsf-impl 2.1.2  

Однако, когда я попытался запустить Tomcat, я получил следующее исключение:

 org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8007]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) at org.apache.catalina.startup.Catalina.start(Catalina.java:621) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) ... 7 more Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) ... 9 more Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) ... 11 more Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myapp]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) ... 14 more Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/webapp/FacesServlet at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) at com.sun.faces.config.FacesInitializer.(FacesInitializer.java:107) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at org.apache.catalina.startup.ContextConfig.getServletContainerInitializer(ContextConfig.java:1543) at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1466) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1285) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:896) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:322) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) ... 17 more 

Как это вызвано и как я могу его решить?

Вот мой web.xml который может содержать причину проблемы:

   appName   org.springframework.web.context.ContextLoaderListener     org.springframework.web.context.request.RequestContextListener    contextConfigLocation  classpath:META-INF/spring/context.xml classpath:META-INF/spring/security.xml    javax.faces.PROJECT_STAGE Development   customers   State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2 javax.faces.STATE_SAVING_METHOD server   javax.servlet.jsp.jstl.fmt.localizationContext resources.application   com.sun.faces.config.ConfigureListener   javax.faces.FACELETS_SKIP_COMMENTS true    springSecurityFilterChain  org.springframework.web.filter.DelegatingFilterProxy    springSecurityFilterChain /*   Pretty Filter com.ocpsoft.pretty.PrettyFilter   Pretty Filter /* FORWARD REQUEST ERROR   Resource Servlet com.icesoft.faces.webapp.CompatResourceServlet 1   Resource Servlet /xmlhttp/*   Faces Servlet javax.faces.webapp.FacesServlet 1   Faces Servlet /faces/*   к   appName   org.springframework.web.context.ContextLoaderListener     org.springframework.web.context.request.RequestContextListener    contextConfigLocation  classpath:META-INF/spring/context.xml classpath:META-INF/spring/security.xml    javax.faces.PROJECT_STAGE Development   customers   State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2 javax.faces.STATE_SAVING_METHOD server   javax.servlet.jsp.jstl.fmt.localizationContext resources.application   com.sun.faces.config.ConfigureListener   javax.faces.FACELETS_SKIP_COMMENTS true    springSecurityFilterChain  org.springframework.web.filter.DelegatingFilterProxy    springSecurityFilterChain /*   Pretty Filter com.ocpsoft.pretty.PrettyFilter   Pretty Filter /* FORWARD REQUEST ERROR   Resource Servlet com.icesoft.faces.webapp.CompatResourceServlet 1   Resource Servlet /xmlhttp/*   Faces Servlet javax.faces.webapp.FacesServlet 1   Faces Servlet /faces/*   к   appName   org.springframework.web.context.ContextLoaderListener     org.springframework.web.context.request.RequestContextListener    contextConfigLocation  classpath:META-INF/spring/context.xml classpath:META-INF/spring/security.xml    javax.faces.PROJECT_STAGE Development   customers   State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2 javax.faces.STATE_SAVING_METHOD server   javax.servlet.jsp.jstl.fmt.localizationContext resources.application   com.sun.faces.config.ConfigureListener   javax.faces.FACELETS_SKIP_COMMENTS true    springSecurityFilterChain  org.springframework.web.filter.DelegatingFilterProxy    springSecurityFilterChain /*   Pretty Filter com.ocpsoft.pretty.PrettyFilter   Pretty Filter /* FORWARD REQUEST ERROR   Resource Servlet com.icesoft.faces.webapp.CompatResourceServlet 1   Resource Servlet /xmlhttp/*   Faces Servlet javax.faces.webapp.FacesServlet 1   Faces Servlet /faces/*   

У меня такая же проблема, как и вы, и выяснили, что изменение с servlet-api на javax.servlet.api устранит проблему. Надеюсь, эта помощь. Обратите внимание, что я использую Juno Eclipse, Tomcat 7, Dynamic Web Module 3.0 и JDK 1.7.

  com.sun.faces jsf-api 2.1.13   com.sun.faces jsf-impl 2.1.13   javax.servlet javax.servlet-api 3.0.1  

У меня та же проблема, и она как-то

 javax javaee-web-api 

или

 javax javaee-api 

после установки их в область охвата (или удалять их вообще при запуске сервера в тесте maven) он начинает работать для меня.

@ Посмотрите на этот блог: j ava.lang.ClassFormatError: Отсутствует атрибут кода в методе, который не является родным или абстрактным в файле classа … – Он обсуждает проблему для javax.persistence.GenerationType но я думаю, что вы и я сталкиваемся с той же проблемой.

Изменить:

  com.sun.faces jsf-impl 2.1.2  

Для того, чтобы:

   org.glassfish javax.faces 2.1.6  

Это обходное решение устранило это для меня: http://www.ninthavenue.com.au/java-lang-classformaterror-exception-with-eclipselink-static-weaving-solved

Я обменялся на стеклянную вставку и решил это.

   org.glassfish.main.extras glassfish-embedded-all 3.1.2.2 provided  при   org.glassfish.main.extras glassfish-embedded-all 3.1.2.2 provided  ,   org.glassfish.main.extras glassfish-embedded-all 3.1.2.2 provided  
  • Как развернуть веб-приложение Java (.war) на tomcat?
  • Установка свойства 'source' в 'org.eclipse.jst.jee.server: JSFTut' не нашел подходящего свойства
  • Singleton через экземпляр JVM или приложения или экземпляр Tomcat
  • ClassNotFoundException DispatcherServlet при запуске Tomcat (зависимости Maven не копируются в wtpwebapps)
  • Не удается найти дескриптор библиотеки тегов для «http://java.sun.com/jsp/jstl/core»
  • Помимо EAR и EJB, что я получаю с сервера приложений Java EE, который я не получаю в контейнере сервлетов, таком как Tomcat?
  • Максимальный допустимый размер HttpRequest в tomcat?
  • java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
  • h: inputText, привязанный к свойству String, представляет пустую строку вместо null
  • Tomcat 8 позволяет вести отладочную запись для enums ненужных банок
  • Подключение удаленного экземпляра tomcat JMX с помощью jConsole
  • Давайте будем гением компьютера.