Soy totalmente nuevo en Spring y comencé a hacer las guías oficiales de este sitio: https://spring.io/guides
Me gustaría hacer esta guía: https://spring.io/guides/gs/scheduling-tasks/
Me sale la siguiente excepción:
2014-02-14 16:25:21.614 INFO 9032 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.scheduling.annotation.SchedulingConfiguration' of type [class org.springframework.scheduling.annotation.SchedulingConfiguration$$EnhancerByCGLIB$$5b48d763] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2014-02-14 16:25:21.638 INFO 9032 --- [ main] .c.l.ClasspathLoggingApplicationListener : Application failed to start with classpath: [file:/C:/work/Spring/SpringTutorial/target/classes/, file:/C:/work/apache-maven-3.0.3/repo/javax/servlet/javax.servlet-api/3.0.1/javax.servlet-api-3.0.1.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/boot/spring-boot-starter/1.0.0.RC1/spring-boot-starter-1.0.0.RC1.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/boot/spring-boot/1.0.0.RC1/spring-boot-1.0.0.RC1.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/spring-context/4.0.0.RELEASE/spring-context-4.0.0.RELEASE.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/boot/spring-boot-autoconfigure/1.0.0.RC1/spring-boot-autoconfigure-1.0.0.RC1.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/boot/spring-boot-starter-logging/1.0.0.RC1/spring-boot-starter-logging-1.0.0.RC1.jar, file:/C:/work/apache-maven-3.0.3/repo/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar, file:/C:/work/apache-maven-3.0.3/repo/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar, file:/C:/work/apache-maven-3.0.3/repo/org/slf4j/jul-to-slf4j/1.7.5/jul-to-slf4j-1.7.5.jar, file:/C:/work/apache-maven-3.0.3/repo/org/slf4j/log4j-over-slf4j/1.7.5/log4j-over-slf4j-1.7.5.jar, file:/C:/work/apache-maven-3.0.3/repo/ch/qos/logback/logback-classic/1.0.13/logback-classic-1.0.13.jar, file:/C:/work/apache-maven-3.0.3/repo/ch/qos/logback/logback-core/1.0.13/logback-core-1.0.13.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/boot/spring-boot-starter-web/1.0.0.RC1/spring-boot-starter-web-1.0.0.RC1.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/boot/spring-boot-starter-tomcat/1.0.0.RC1/spring-boot-starter-tomcat-1.0.0.RC1.jar, file:/C:/work/apache-maven-3.0.3/repo/org/apache/tomcat/embed/tomcat-embed-core/7.0.47/tomcat-embed-core-7.0.47.jar, file:/C:/work/apache-maven-3.0.3/repo/org/apache/tomcat/embed/tomcat-embed-logging-juli/7.0.47/tomcat-embed-logging-juli-7.0.47.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/spring-web/4.0.0.RELEASE/spring-web-4.0.0.RELEASE.jar, file:/C:/work/apache-maven-3.0.3/repo/aopalliance/aopalliance/1.0/aopalliance-1.0.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/spring-aop/4.0.0.RELEASE/spring-aop-4.0.0.RELEASE.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/spring-beans/4.0.0.RELEASE/spring-beans-4.0.0.RELEASE.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/spring-webmvc/4.0.0.RELEASE/spring-webmvc-4.0.0.RELEASE.jar, file:/C:/work/apache-maven-3.0.3/repo/org/springframework/spring-expression/4.0.0.RELEASE/spring-expression-4.0.0.RELEASE.jar, file:/C:/work/apache-maven-3.0.3/repo/com/fasterxml/jackson/core/jackson-databind/2.3.1/jackson-databind-2.3.1.jar, file:/C:/work/apache-maven-3.0.3/repo/com/fasterxml/jackson/core/jackson-annotations/2.3.0/jackson-annotations-2.3.0.jar, file:/C:/work/apache-maven-3.0.3/repo/com/fasterxml/jackson/core/jackson-core/2.3.1/jackson-core-2.3.1.jar, file:/C:/work/apache-maven-3.0.3/repo/commons-lang/commons-lang/2.2/commons-lang-2.2.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:140)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:124)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:658)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:355)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:920)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:909)
at hu.kumite.Application.main(Application.java:17)
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:190)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:163)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137)
... 7 more
La clase de inicio de la aplicación es esta:
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(ScheduledTasks.class, args);
}
}
Como puede ver, el método principal contiene una línea comentada. Ya he hecho un tutorial, a saber, este: https://spring.io/guides/gs/consuming-rest/ Está en funcionamiento. Pero no puedo ejecutar la aplicación ScheduledTasks, que es la siguiente:
@EnableScheduling
public class ScheduledTasks {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
System.out.println("The time is now " + dateFormat.format(new Date()));
}
}
Uso Eclipse y ejecuto Application.java's main como una aplicación. ¿Alguien podría ayudarme por favor?
fuente
@EnableAutoConfiguration
en suSpringApplication
(el fragmento de código anterior no lo hace).SpringApplication.run(new Object[]{Application.class, ScheduledTasks.class}, args);
Una exploración del
@SpringBootApplication
programa que incluye las siguientes anotaciones:Entonces podrías hacer esto también:
fuente
usa este en tu pom.xml:
o este :
fuente
Tenía varias clases de aplicación en un proyecto Spring Boot que tenía la web iniciada incluida y quería evitar que configurara un entorno web para una de ellas, así que la configuré manualmente de la siguiente manera:
ACTUALIZACIÓN para Spring Boot 2 y superior:
fuente
Prueba esto
fuente
El error sugiere que la aplicación que está intentando ejecutar no puede crear una instancia de apache tomcat. Asegúrese de ejecutar la aplicación con tomcat.
si después de verificar todas sus dependencias experimenta el mismo problema, intente agregar lo siguiente en su clase de configuración
Si está utilizando una instancia externa de tomcat (especialmente para intellij), el problema podría ser que el IDE está intentando iniciar el tomcat incrustado. En este caso, elimine lo siguiente de su pom.xml y luego configure el tomcat externo utilizando el asistente 'Editar configuraciones'.
fuente
Añadir
fuente
si experimenta esta excepción mientras usa intellij e intenta iniciar la aplicación con el
run
botón. Intente iniciar la aplicación desde la línea de comando. Por ejemplo, asegúrese de estar en el directorio correcto (directorio con su archivo pom) suponiendo que se trata de unaspringboot
aplicación ejecutada,mvn spring-boot:run
esto fue el truco para mí.Además, también he visto que este error ocurre cuando su aplicación de primavera depende de otra aplicación. En este caso, primero tuve que iniciar la otra aplicación y luego ejecutarla.
fuente
mvn spring-boot:run
Agregar la anotación
@SpringBootApplication
Antes de que la clase de inicio solucionara este problema (así que, en esencia, este mensaje de error puede significar "no tiene una@SpringBootApplication
clase marcada en ningún lado, necesita al menos una)fuente
He tenido problemas similares cuando el método principal está en una clase diferente a la que se pasó a SpringApplcation.run ()
Entonces, la solución sería usar la línea que ha comentado:
fuente
Si lo empaqueta como un solo contenedor y no es una aplicación web, intente cargar el contexto de la aplicación como se muestra a continuación.
O use el complemento a continuación para empaquetar como un solo frasco
puede especificar las configuraciones externas utilizando el siguiente comando para ejecutar
/ http://docs.spring.io/spring-boot/docs/current/reference/htmlboot-features-external-config.html#boot-features-external-config-application-property-files
Tenga en cuenta que si pasa las propiedades como argumentos, no incluirlos
@PropertySource("classpath:test.properties")
anulará los parámetrosfuente
Si lo ejecuta con éxito usando la línea de comandos
gradle bootRun
, mientras lo empaqueta con la líneagradle jar
de comandos en el archivo jar para ejecutarlo con la línea de comandosjava -jar build/libs/demo.jar
, desafortunadamente, falló con la excepción:Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean
en este caso, debe usar la tareabootRepackage
del complemento gradlespring-boot
para generar jarra ejecutable.fuente
gradle clean bootRepackage
me ayudó. Anteriormente, he limpiado manualmente todo el caché y la carpeta de compilación.A
SpringApplication
intentará crear el tipo correctoApplicationContext
en su nombre. Por defecto, se usará unaAnnotationConfigApplicationContext
oAnnotationConfigEmbeddedWebApplicationContext
, dependiendo de si está desarrollando una aplicación web o no.El algoritmo utilizado para determinar un 'entorno web' es bastante simplista (basado en la presencia de algunas clases). Puede usarlo
setWebEnvironment(boolean webEnvironment)
si necesita anular el valor predeterminado.También es posible tomar el control completo del
ApplicationContext
tipo que se utilizará llamandosetApplicationContextClass(…)
.[Sugerencia] A menudo es conveniente llamar
setWebEnvironment(false)
cuando se usaSpringApplication
dentro de una prueba JUnit.fuente
SpringApplication.run(Application.class, args);
?SpringApplicationBuilder
Agregar la dependencia de arranque de arranque de primavera solucionó mi error.
Esto es necesario si desea iniciar el tomcat como un servidor incorporado.
fuente
compruebe que exista su pom.xml
He tenido un problema como este ; Por falta de esta dependencia
fuente
En mi caso, agregamos la anotación @Profile recientemente para ignorar la clase TestApplication en modo producción y la clase Aplicación en modo prueba.
Desafortunadamente, olvidamos agregar la siguiente línea en los archivos application.properties:
Sin esta configuración, no se cargó ningún perfil, lo que causó el error Spring Spring.
fuente
Esto debería ser causado por un problema de dependencia, en general, debe verificar la dependencia.
fuente
El problema está en esta clase:
La forma correcta de iniciar su aplicación es:
fuente
Borrar repositorio es una posible solución.
Windows -> borra todas las subcarpetas en el repositorio maven:
fuente
Me he quedado con el mismo problema. Como no definí Main.class y las siguientes anotaciones en Spring-Boot usando Maven:
fuente
El problema es la exclusión de starter tomcat, traté de excluirlo y uso vert.x, así que cuando me integro con Spring Admin, comencé problemas
fuente
Tuve esta excepción en la siguiente situación.
en mi POM fue propiedades:
y el nombre y la ruta de mi clase de aplicación ("start-class") estaban equivocados.
fuente
Tuve un problema similar y el problema era un archivo jar maven repo roto. En mi caso, el
tomcat-embed-core
archivo jar estaba roto. Así que lo eliminé del repositorio de Maven y lo actualicé para descargar nuevamente.fuente
En mi caso, sucede después de excluir la carpeta de recursos del
pom
uso del siguiente código.Comentando este código comenzó mi código.
fuente
Otra causa de este problema es la corrupción de los tarros de repositorio de Maven para que pueda usar el siguiente comando para resolver el problema:
fuente
Probablemente te falte @SpringBootApplication en tu clase de inicio de arranque de primavera.
fuente
Estoy usando gradle, me pareció un problema cuando tengo un commandLineRunner consume temas kafka y un punto final de verificación de salud para recibir ganchos entrantes. Pasé 12 horas para averiguar, finalmente descubrí que usaba mybatis-spring-boot-starter con spring-boot-starter-web, y tienen algunos conflictos. Más tarde, presenté directamente mybatis-spring, mybatis y spring-jdbc en lugar del mybatis-spring-boot-starter, y el programa funcionó bien.
espero que esto ayude
fuente