2017-12-15 5 views
0

Hier ist eine ungerade. Ich habe eine Spring Boot App, die Groovy und Web Starter verwendet. Wenn ich mvn spring-boot:run laufen lasse, fängt es an, und wenn ich mvn package und dann java -jar demo-0.0.1-SNAPSHOT.jar laufen lasse, läuft es auch gut. Aber wenn ich Run As -> Spring Boot Application wählen bekomme ich diesen Fehler:Groovy Spring Boot-Projekt in Eclipse kann nicht gestartet werden

12:16:22.200 ERROR [Tomcat-startStop-1 ] [ContainerBase] [] A child 
container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]] 
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:192) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
    at java.lang.Thread.run(Thread.java:748) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) 
    ... 6 common frames omitted 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [Pipeline[StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5117) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 6 common frames omitted 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.authenticator.NonLoginAuthenticator[]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) 
    at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:182) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 8 common frames omitted 
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; 
    at org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1141) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 10 common frames omitted 
12:16:22.201 ERROR [main     ] [ContainerBase] [] A child container failed during start 

In Eclipe POM Editor ich nicht sehen, die javax.servlet-api.jar Datei in gebracht werden, so fügte ich es, aber keine Wirkung.

Eclipse-: Oxygen 4.7.1a

STS: 3.9.1.201710100539-RELEASE

Java: 1.8.0_151

POM ist gerade aus start.spring.io:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>demo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>demo</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.9.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.codehaus.groovy</groupId> 
      <artifactId>groovy</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.gmavenplus</groupId> 
       <artifactId>gmavenplus-plugin</artifactId> 
       <version>1.5</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>addSources</goal> 
          <goal>addTestSources</goal> 
          <goal>generateStubs</goal> 
          <goal>compile</goal> 
          <goal>testGenerateStubs</goal> 
          <goal>testCompile</goal> 
          <goal>removeStubs</goal> 
          <goal>removeTestStubs</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Irgendwelche Ideen, wie Sie das beheben können?

Antwort

0

Ah ha! Ich musste die "Groovy Libraries" und "Groovy DSL Support" aus dem Java Build Path in Eclipse entfernen - sie brachten eine servlet-api-2.4.jar Datei mit.

+0

Sie können auch das Minimalattribut in Groovy Libraries aktivieren und es wird kein Servlet-api.jar mehr enthalten, aber Sie werden immer noch groovy-all.jar im Klassenpfad Ihres Projekts erhalten. – emilles

Verwandte Themen