Je viens de passer à IntelliJ 15.0 à partir de 14.1 (j'étais pressé et oublié d'enregistrer l'état de la fiche précédente pour 14.1) et j'essaie de configurer les paramètres généraux de configuration d'exécution/débogage avec Spring Boot dans Intellij en utilisant Gradle. Dans l'onglet de configuration, j'ai ajouté 1) la classe principale, 2) JRE et 3) le chemin de classe du module dans IntelliJ. J'utilise Spring Boot comme configuration sélectionnée. Cependant, lorsque vous sélectionnez Exécuter, j'obtiens cette erreur:
2015-11-07 22:00:21.457 ERROR 10632 --- [main]
o.s.boot.SpringApplication : Application startup failed
Java.lang.NoClassDefFoundError: javax/servlet/ServletContext
at Java.lang.Class.getDeclaredMethods0(Native Method)
at Java.lang.Class.privateGetDeclaredMethods(Class.Java:2701)
at Java.lang.Class.getDeclaredMethods(Class.Java:1975)
at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.Java:140)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.Java:289)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.Java:229)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.Java:196)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.Java:165)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.Java:306)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.Java:239)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.Java:254)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.Java:94)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.Java:94)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.Java:606)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:462)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.Java:686)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:320)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:957)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:946)
at org.awana.mozo.club.Application.main(Application.Java:37)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:144) Caused by: Java.lang.ClassNotFoundException: javax.servlet.ServletContext
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:381)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:424)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:331)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:357)
2015-11-07 22:00:21.457 INFO 10632 --- [ main] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@3788f3 : startup date [Sat Nov 07 22:00:21 CST 2015]; root of context hierarchy
2015-11-07 22:00:21.458 WARN 10632 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception thrown from ApplicationListener handling ContextClosedEvent
Java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.context.annotation.AnnotationConfigApplicationContext@3788f3: startup date [Sat Nov 07 22:00:21 CST 2015]; root of context hierarchy
at org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.Java:344)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.Java:331)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.Java:869)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.Java:836)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:342)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:957)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:946)
at org.awana.mozo.club.Application.main(Application.Java:37)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:144)
2015-11-07 22:00:21.459 WARN 10632 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception thrown from LifecycleProcessor on context close
Java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: org.springframework.context.annotation.AnnotationConfigApplicationContext@3788f3: startup date [Sat Nov 07 22:00:21 CST 2015]; root of context hierarchy
at org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.Java:357)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.Java:877)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.Java:836)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:342)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:957)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:946)
at org.awana.mozo.club.Application.main(Application.Java:37)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:43)
at Java.lang.reflect.Method.invoke(Method.Java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:144)
Exception in thread "main" Java.lang.NoClassDefFoundError: javax/servlet /ServletContext
at Java.lang.Class.getDeclaredMethods0(Native Method)
at Java.lang.Class.privateGetDeclaredMethods(Class.Java:2701)
at Java.lang.Class.getDeclaredMethods(Class.Java:1975)
at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(Sta ndardAnnotationMetadata.Java:140)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigu rationClass(ConfigurationClassParser.Java:289)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigura tionClass(ConfigurationClassParser.Java:229)
at org.springframework.context.annotation.ConfigurationClassParser.parse(Configurat ionClassParser.Java:196)
at org.springframework.context.annotation.ConfigurationClassParser.parse(Configurat ionClassParser.Java:165)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processCo nfigBeanDefinitions(ConfigurationClassPostProcessor.Java:306)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProce ssBeanDefinitionRegistry(ConfigurationClassPostProcessor.Java:239)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBean DefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.Java:254)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBean FactoryPostProcessors(PostProcessorRegistrationDelegate.Java:94)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactory PostProcessors(AbstractApplicationContext.Java:606)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:462)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.Java:686)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:320)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:957)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:946)
at org.awana.mozo.club.Application.main(Application.Java:37)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:43)
at Java.lang.reflect.Method.invoke(Method.Java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:144) Caused by: Java.lang.ClassNotFoundException: javax.servlet.ServletContext
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:381)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:424)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:331)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:357)
Process finished with exit code 1
OK, voici ce que je devais faire pour résoudre ce problème spécifique: IntelliJ devait avoir une définition de Gradle Task appelée bootRun dans la configuration de débogage/exécution. Cela me permet maintenant d'exécuter du code principal ou de déboguer des mises à jour de code principal dans IntelliJ. 2) Ensuite, j'ai dû restructurer mes répertoires IntelliJ parce qu'IntelliJ 15 avait installé à la fois un dossier JRE parent et enfant qui est incorrect, donc IntelliJ s'est affiché et une exception indiquant qu'il n'a pas pu trouver a) Java.exec ni b) jvm. fichiers cfg sous son sous-répertoire JRE/Lib. Une fois que j'ai corrigé ces deux problèmes, les builds et le débogage semblaient fonctionner pour Java Spring back end. J'ai suivi avec IntelliJ sur l'installation JRE excentrique.
Eu le même problème. Semblait spécifique à la tentative d'exécution d'une application Web Spring Boot via IntelliJ 15.x spring boot
exécuter la configuration. Comme j'utilisais maven
, j'ai plutôt créé une configuration d'exécution maven
spécifiant le command line action
comme spring-boot:run
- cela fonctionne à la fois dans les modes d'exécution et de débogage. Capture d'écran jointe.
Je pense que vous devez ajouter une version valide de javax-servlet et servlet-api à votre pom.xml. un exemple ci-dessous qui résoudra votre problème je pense
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>