2014-02-15 9 views
9

Ich versuche, starten Sie eine einfache Feder AnwendungWebserver nicht aufgrund fehlender Bohne

ich die main.java Datei hier haben zu starten:

package main; 

import javafx.application.Application; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.context.annotation.ComponentScan; 


@ComponentScan 
@EnableAutoConfiguration 
public class Main { 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

Hier sind die Libs, die ich habe: enter image description here

Hier ist pom.xml:

<?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>blog</groupId> 
    <artifactId>blog</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>4.0.0.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-autoconfigure</artifactId> 
      <version>1.0.0.BUILD-SNAPSHOT</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot</artifactId> 
      <version>1.0.0.BUILD-SNAPSHOT</version> 
     </dependency> 
    </dependencies> 


</project> 

Ein d schließlich der Fehler ist diese:

 . ____   _   __ _ _ 
/\\/___'_ __ _ _(_)_ __ __ _ \ \ \ \ 
(()\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 
\\/ ___)| |_)| | | | | || (_| | )))) 
    ' |____| .__|_| |_|_| |_\__, |//// 
=========|_|==============|___/=/_/_/_/ 
:: Spring Boot :: (v1.0.0.BUILD-SNAPSHOT) 

[2014-02-15 11:14:25.385] - 6116 INFO [main] --- main.Main: Starting Main on Vlad-PC with PID 6116 (C:\Users\Vlad\IdeaProjects\blog\target\classes started by Vlad) 
[2014-02-15 11:14:25.473] - 6116 INFO [main] --- org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext: Refreshing org.springframework.boot[email protected]2ca76650: startup date [Sat Feb 15 11:14:25 GMT 2014]; root of context hierarchy 
[2014-02-15 11:14:25.579] - 6116 INFO [main] --- org.springframework.boot.logging.ClasspathLoggingApplicationListener: Application failed to start with classpath: [file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/charsets.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/deploy.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/javaws.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/jce.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/jfr.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/jfxrt.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/jsse.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/management-agent.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/plugin.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/resources.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/rt.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/ext/access-bridge-64.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/ext/dnsns.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/ext/jaccess.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/ext/localedata.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/ext/sunec.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/ext/sunjce_provider.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/ext/sunmscapi.jar, file:/C:/Program%20Files/Java/jdk1.7.0_51/jre/lib/ext/zipfs.jar, file:/C:/Users/Vlad/IdeaProjects/blog/target/classes/, file:/C:/Users/Vlad/IdeaProjects/blog/lib/com.springsource.org.apache.tomcat.api-7.0.12.jar, file:/C:/Users/Vlad/IdeaProjects/blog/lib/javax.servlet-3.0.0.v201103241009.jar, file:/C:/Users/Vlad/.m2/repository/org/springframework/spring-web/4.0.0.RELEASE/spring-web-4.0.0.RELEASE.jar, file:/C:/Users/Vlad/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar, file:/C:/Users/Vlad/.m2/repository/org/springframework/spring-aop/4.0.0.RELEASE/spring-aop-4.0.0.RELEASE.jar, file:/C:/Users/Vlad/.m2/repository/org/springframework/spring-beans/4.0.0.RELEASE/spring-beans-4.0.0.RELEASE.jar, file:/C:/Users/Vlad/.m2/repository/org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar, file:/C:/Users/Vlad/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar, file:/C:/Users/Vlad/.m2/repository/org/springframework/spring-context/4.0.0.RELEASE/spring-context-4.0.0.RELEASE.jar, file:/C:/Users/Vlad/.m2/repository/org/springframework/spring-expression/4.0.0.RELEASE/spring-expression-4.0.0.RELEASE.jar, file:/C:/Users/Vlad/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.0.0.BUILD-SNAPSHOT/spring-boot-autoconfigure-1.0.0.BUILD-SNAPSHOT.jar, file:/C:/Users/Vlad/.m2/repository/org/springframework/boot/spring-boot/1.0.0.BUILD-SNAPSHOT/spring-boot-1.0.0.BUILD-SNAPSHOT.jar, file:/C:/Program%20Files%20(x86)/JetBrains/IntelliJ%20IDEA%20Community%20Edition%2013.0.2/lib/idea_rt.jar] 
Exception in thread "main" org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean. 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:136) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:616) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:877) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:866) 
    at main.Main.main(Main.java:14) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
Caused by: org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean. 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:186) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:133) 
    ... 12 more 

Von dem, was ich verstehe, kann ich eine Bohne bin fehlt? Wie auch immer, es sieht so aus, als hätte ich die Glasfederbohnen.

Antwort

11

Spring Boot versuchen, einen Webserver zu starten, aber nicht im Klassenpfad gefunden. Versuchen Sie, diese Abhängigkeit

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
<version>I Dont know</version 
    </dependency> 
</dependencies> 

Btw hinzufügen Sie pom nicht wie eine typische Feder Boot-pom sieht! Vergleichen Sie es mit http://projects.spring.io/spring-boot/docs/README.html

+1

Ein weiterer BTW: Ihre 'Main' Klasse wird nicht in der App verwendet (ich denke, Sie haben wahrscheinlich' Application.class' aus Versehen in die Hauptmethode eingefügt). –

+0

@DaveSyer oh Gott. Bitte sagen Sie mir, dass der Name der Datei nicht Application.java – Bula

+0

Warum sollten Sie das denken? Sie haben 'Application.class' in Ihrer' SpringApplication' ist alles. –

0

Es gibt Unterschiede je nach Version.

org.springframework -> Bitte korrigieren Sie eine höhere Version. :)

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.2.3.RELEASE</version> 
</parent> 
<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>4.1.5.RELEASE</version> 
    </dependency> 
</dependencies> 

Zum Beispiel kann ein org.springframework.boot 1.2.3.RELEASE, Fehler immer war, wenn es org.springframework 4.1.4.RELEASE unten Version.

Im Falle von mehr als org.springframework 4.1.5.RELEASE, habe ich ohne Fehler gearbeitet.

http://projects.spring.io/spring-boot/

0

ich jetzt den gleichen Fehler hatte und ich löste es, indem nur in meiner build.gradle Datei der gleichen Versionen der Federpakete inklusive:

buildscript { 
    ext { 
     springBootVersion = '1.1.6.RELEASE' 
    } 

compile 'org.springframework.boot:spring-boot-starter-web' 
compile 'org.springframework.boot:spring-boot-starter-tomcat' 
compile 'org.springframework.boot:spring-boot-starter-security' 
compile 'org.springframework.boot:spring-boot-starter-actuator' 
compile 'org.springframework.boot:spring-boot-starter-aop' 
compile 'org.springframework.boot:spring-boot-starter-data-mongodb' 

Zum Beispiel, wenn Sie ein geändert der Pakete und Sie auf eine Versionsnummer fügen Sie den statischen Wert von 1.1.6.RELEASE außer Kraft zu setzen, dann wird der Fehler angezeigt:

buildscript { 
    ext { 
     springBootVersion = '1.1.6.RELEASE' 
    } 

compile 'org.springframework.boot:spring-boot-starter-web' 
compile 'org.springframework.boot:spring-boot-starter-tomcat' 
compile 'org.springframework.boot:spring-boot-starter-security' 
compile 'org.springframework.boot:spring-boot-starter-actuator' 
compile 'org.springframework.boot:spring-boot-starter-aop' 
compile 'org.springframework.boot:spring-boot-starter-data-mongodb:1.2.5.RELEASE' 
2

Sie t hinzufügen müssen er Anmerkung:

@SpringBootApplication 
public class Main { 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 
0

könnte ich an die Partei spät sein, aber ich könnte nur jemanden Stunden der Qual speichern Suche die solution.I das gleiche Problem hatte, während ein Feder-Boot-Projekt einrichten.

Ich hatte in meinem build.gradle

compile group: 'org.springframework.boot', name: 'spring-boot-starter- 
web', version: '1.5.9.RELEASE' 
//compile group: 'org.springframework', name: 'spring-context', 
version: '5.0.2.RELEASE'// <--- Source of my problems 
compile group: 'org.springframework.security.oauth', name: 'spring- 
security-oauth2', version: '2.2.1.RELEASE' 
compile group: 'com.fasterxml.jackson.datatype', name: 'jackson- 
datatype-jsr310', version: '2.9.3' 
testCompile group: 'com.h2database', name: 'h2', version: '1.4.196' 
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6' 
compile group: 'org.hibernate', name: 'hibernate-core', version: 
'5.2.12.Final' 
compile group: 'commons-io', name: 'commons-io', version: '2.6' 
compile group: 'com.google.guava', name: 'guava', version: '23.6-jre' 
compile group: 'org.springframework.boot', name: 'spring-boot-starter- 
data-jpa', version: '1.5.9.RELEASE' 

testCompile group: 'junit', name: 'junit', version: '4.12' 
testCompile group: 'org.springframework.boot', name: 'spring-boot- 
starter-test', version: '1.5.9.RELEASE' 

Dies ist ein feder Boot-Projekt und so wird es eine Menge Konfiguration für Sie

, dass das zu tun, müssen Sie einige nicht brauchen die vielen Abhängigkeiten, die man setzen müsste, wenn es ein Frühlingsprojekt wäre.Die Boot-Starter Abhängigkeiten sind genug.

Verwandte Themen