Sou totalmente novo no Spring e comecei a fazer os guias oficiais deste site: https://spring.io/guides
Gostaria de fazer este guia: https://spring.io/guides/gs/scheduling-tasks/
Eu recebo a seguinte exceção:
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
A classe inicial de aplicativos é a seguinte:
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(ScheduledTasks.class, args);
}
}
Como você pode ver, o método principal contém uma linha comentada. Eu já fiz um tutorial, ou seja, este: https://spring.io/guides/gs/consuming-rest/ Está funcionando. Mas não consigo executar o aplicativo ScheduledTasks, que é o seguinte:
@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()));
}
}
Eu uso o Eclipse e executo o principal do Application.java como um aplicativo. Alguém poderia me ajudar, por favor?
fonte
@EnableAutoConfiguration
no seuSpringApplication
(o snippet de código acima não).SpringApplication.run(new Object[]{Application.class, ScheduledTasks.class}, args);
Uma varredura do
@SpringBootApplication
programa que inclui as seguintes anotações:Então você também pode fazer isso:
fonte
use este no seu pom.xml:
ou este:
fonte
Eu tinha várias classes de aplicativos em um projeto do Spring Boot, que teve a Web iniciada incluída e queria evitar que ele configurasse um ambiente da Web para um deles, então eu o configurei manualmente como abaixo:
ATUALIZAÇÃO para Spring Boot 2 e superior:
fonte
Tente isto
fonte
O erro sugere que o aplicativo que você está tentando executar não pode instanciar uma instância do apache tomcat. Verifique se você está executando o aplicativo com tomcat.
se, depois de verificar todas as suas dependências, você enfrentar o mesmo problema, tente adicionar o seguinte na sua classe de configuração
Se você estiver usando uma instância externa do tomcat (especialmente para intellij), o problema pode ser que o IDE esteja tentando iniciar o tomcat incorporado. Nesse caso, remova o seguinte do pom.xml e configure o tomcat externo usando o assistente 'Editar configurações'.
fonte
Adicionar
fonte
se você enfrentar essa exceção ao usar o intellij e estiver tentando iniciar o aplicativo com o
run
botão Tente iniciar o aplicativo na linha de comando. Por exemplo, verifique se você está no diretório correto (diretório com seu arquivo pom) assumindo que este é umspringboot
aplicativo executadomvn spring-boot:run
isso fez o truque para mim.Além disso, também vi esse erro ocorrer quando seu aplicativo de primavera depende de outro aplicativo. Nesse caso, tive que iniciar o outro aplicativo primeiro e depois executar.
fonte
mvn spring-boot:run
Adicionando a anotação
@SpringBootApplication
Antes que a classe inicial corrigisse esse problema para mim (em essência, essa mensagem de erro pode significar "você não tem uma@SpringBootApplication
classe marcada em nenhum lugar, precisa de pelo menos uma)fonte
Eu tive problemas semelhantes quando o método principal está em uma classe diferente daquela que foi passada para SpringApplcation.run ()
Portanto, a solução seria usar a linha que você comentou:
fonte
Se você empacotá-lo como um jar único e ele não for um aplicativo da Web, tente carregar o contexto do aplicativo como abaixo.
Ou use o plugin abaixo para empacotar como um único jar
você pode especificar as configurações externas usando o comando abaixo para executar
/ http://docs.spring.io/spring-boot/docs/current/reference/htmlboot-features-external-config.html#boot-features-external-config-application-property-files
Observe que se você estiver passando as propriedades como argumentos, não as inclua
@PropertySource("classpath:test.properties")
, substituirá os parâmetrosfonte
Se você executá-lo com êxito usando a linha de comando
gradle bootRun
, enquanto o empacota com a linha de comandogradle jar
no arquivo jar para executá-lo com a linha de comandojava -jar build/libs/demo.jar
, infelizmente, falhou com a Exceção:Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean
nesse caso, você precisa usar a tarefabootRepackage
do plugin gradlespring-boot
para gerar informações especiais. frasco executável.fonte
gradle clean bootRepackage
me ajudou. Anteriormente, eu limpei manualmente todo o cache e crie a pasta.A
SpringApplication
tentará criar o tipo certoApplicationContext
em seu nome. Por padrão, umAnnotationConfigApplicationContext
ouAnnotationConfigEmbeddedWebApplicationContext
será usado, dependendo de você estar desenvolvendo um aplicativo Web ou não.O algoritmo usado para determinar um 'ambiente da web' é bastante simplista (com base na presença de algumas classes). Você pode usar
setWebEnvironment(boolean webEnvironment)
se precisar substituir o padrão.Também é possível assumir o controle completo do
ApplicationContext
tipo que será usado chamandosetApplicationContextClass(…)
.[Dica] Geralmente, é desejável chamar
setWebEnvironment(false)
ao usarSpringApplication
dentro de um teste JUnit.fonte
SpringApplication.run(Application.class, args);
?SpringApplicationBuilder
A adição da dependência do iniciador de inicialização por mola corrigiu meu erro.
Isso é necessário se você deseja iniciar o tomcat como um servidor incorporado.
fonte
verifique se o seu pom.xml existe
Eu tive um problema como este ; Por falta dessa dependência
fonte
No meu caso, adicionamos a anotação @Profile recentemente para ignorar a classe TestApplication no modo de produção e a classe Application no modo de teste.
Infelizmente, esquecemos de adicionar a seguinte linha nos arquivos application.properties:
Sem essas configurações, nenhum perfil foi carregado, o que causou o erro de primavera "não tanto".
fonte
Isso deve ser causado por um problema de dependência; em geral, você precisa verificar a dependência.
fonte
O problema está nesta classe:
A maneira correta de iniciar seu aplicativo é:
fonte
Limpar o repositório é uma solução possível.
Windows -> exclua todas as subpastas no repositório maven:
fonte
Eu fiquei com o mesmo problema. Como não defini Main.class e as seguintes anotações no Spring-Boot usando o Maven:
fonte
O problema é a exclusão do tomcat inicial, tentei excluí-lo e usar o vert.x, portanto, quando integro o wit Spring Admin, iniciamos os problemas
fonte
Eu tive essa exceção na seguinte situação.
no meu POM havia propriedades:
e o nome e o caminho da minha classe de aplicativo ("start-class") estavam incorretos.
fonte
Eu tive um problema semelhante e o problema era um arquivo de jar de repositório de maven quebrado. No meu caso, o
tomcat-embed-core
arquivo jar foi quebrado. Então, removi-o do repositório maven e atualizei-o para fazer o download novamente.fonte
No meu caso, isso acontece depois de excluir a pasta do
pom
recurso do código a seguir.Comentar esse código iniciou meu código.
fonte
Uma outra causa desse problema é a corrupção dos jars do repositório maven, para que você possa usar o seguinte comando para resolver o problema:
fonte
Provavelmente você está sentindo falta de @SpringBootApplication na sua classe de inicialização de primavera.
fonte
Estou usando gradle, conheci o problema quando tenho um commandLineRunner que consome tópicos kafka e um ponto de extremidade de verificação de integridade para receber ganchos de entrada. Passei 12 horas para descobrir, finalmente descobri que usei mybatis-spring-boot-starter com spring-boot-starter-web, e eles têm alguns conflitos. Posteriormente, introduzi diretamente mybatis-spring, mybatis e spring-jdbc, em vez do mybatis-spring-boot-starter, e o programa funcionou bem.
espero que isto ajude
fonte