Saya benar-benar baru ke Spring dan mulai melakukan panduan resmi dari situs ini: https://spring.io/guides
Saya ingin melakukan panduan ini: https://spring.io/guides/gs/scheduling-tasks/
Saya mendapatkan Pengecualian berikut:
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
Kelas aplikasi pemula adalah ini:
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(ScheduledTasks.class, args);
}
}
Seperti yang Anda lihat, metode utama berisi baris komentar. Saya sudah melakukan tutorial, yaitu yang ini: https://spring.io/guides/gs/consuming-rest/ Sudah aktif dan berjalan. Tapi saya tidak bisa menjalankan aplikasi ScheduledTasks, yang adalah sebagai berikut:
@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()));
}
}
Saya menggunakan Eclipse dan menjalankan utama Application.java sebagai Aplikasi. Bisakah seseorang tolong saya?
sumber
@EnableAutoConfiguration
dalamSpringApplication
(cuplikan kode di atas tidak).SpringApplication.run(new Object[]{Application.class, ScheduledTasks.class}, args);
Pemindaian
@SpringBootApplication
acara yang menyertakan anotasi berikut:Jadi Anda bisa melakukan ini juga:
sumber
gunakan yang ini di pom.xml Anda:
atau yang ini:
sumber
Saya memiliki beberapa kelas aplikasi dalam satu proyek Boot Spring yang webnya sudah mulai disertakan dan ingin menghindarinya mengkonfigurasi lingkungan web untuk salah satu dari mereka jadi saya mengkonfigurasi secara manual seperti di bawah ini:
UPDATE untuk Spring Boot 2 dan lebih tinggi:
sumber
Coba ini
sumber
Kesalahan menunjukkan bahwa aplikasi yang Anda coba jalankan tidak dapat membuat instance dari apache tomcat. Pastikan Anda menjalankan aplikasi dengan kucing jantan.
jika setelah memeriksa semua dependensi Anda, Anda mengalami masalah yang sama, cobalah untuk menambahkan berikut ini di kelas konfigurasi Anda
Jika Anda menggunakan turunan eksternal tomcat (terutama untuk intellij), masalahnya mungkin karena IDE sedang mencoba memulai tomcat yang disematkan. Dalam hal ini, hapus yang berikut dari pom.xml Anda lalu konfigurasikan kucing jantan eksternal menggunakan wizard 'Edit Konfigurasi'.
sumber
Menambahkan
sumber
jika Anda mengalami pengecualian ini saat menggunakan intellij dan Anda mencoba memulai aplikasi dengan
run
tombol. Coba mulai aplikasi dari baris perintah saja. Misalnya memastikan bahwa Anda berada di direktori yang benar (direktori dengan file pom Anda) dengan asumsi ini adalahspringboot
aplikasi yang dijalankanmvn spring-boot:run
ini melakukan trik untuk saya.Selain itu saya juga melihat kesalahan ini terjadi ketika aplikasi pegas Anda bergantung pada aplikasi lain. Dalam hal ini saya harus memulai aplikasi lain terlebih dahulu kemudian jalankan.
sumber
mvn spring-boot:run
Menambahkan anotasi
@SpringBootApplication
Sebelum kelas pemula memperbaiki masalah ini untuk saya (jadi pada dasarnya, pesan kesalahan ini dapat berarti "Anda tidak memiliki@SpringBootApplication
kelas yang ditandai di mana pun, Anda memerlukan setidaknya satu)sumber
Saya punya masalah serupa ketika metode utama pada kelas yang berbeda dari yang diteruskan ke SpringApplcation.run ()
Jadi solusinya adalah menggunakan baris yang Anda komentari:
sumber
Jika Anda mengemasnya sebagai satu toples dan itu bukan aplikasi web, cobalah memuat konteks aplikasi seperti di bawah ini.
Atau gunakan plugin di bawah ini untuk mengemas sebagai satu toples
Anda dapat menentukan konfigurasi eksternal dengan menggunakan perintah di bawah ini untuk menjalankan
/ http://docs.spring.io/spring-boot/docs/current/reference/htmlboot-features-external-config.html#boot-features-external-config-application-property-files
Perhatikan bahwa jika Anda meneruskan properti sebagai argumen maka jangan menyertakannya
@PropertySource("classpath:test.properties")
akan menimpa parametersumber
Jika Anda menjalankannya dengan sukses menggunakan baris perintah
gradle bootRun
, sementara mengemasnya dengan baris perintahgradle jar
ke file jar untuk menjalankannya dengan baris perintahjava -jar build/libs/demo.jar
, sayangnya, gagal dengan Pengecualian :,Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean
dalam hal ini, Anda perlu menggunakan tugasbootRepackage
plugin gradlespring-boot
untuk menghasilkan khusus jar runnable.sumber
gradle clean bootRepackage
membantu saya. Sebelumnya, saya telah secara manual membersihkan semua cache dan membangun folder.A
SpringApplication
akan berusaha membuat jenis yang tepatApplicationContext
atas nama Anda. Secara default, suatuAnnotationConfigApplicationContext
atauAnnotationConfigEmbeddedWebApplicationContext
akan digunakan, tergantung pada apakah Anda sedang mengembangkan aplikasi web atau tidak.Algoritma yang digunakan untuk menentukan 'lingkungan web' cukup sederhana (berdasarkan pada kehadiran beberapa kelas). Kamu bisa memakai
setWebEnvironment(boolean webEnvironment)
jika Anda perlu mengganti default.Dimungkinkan juga untuk mengambil kendali penuh dari
ApplicationContext
tipe yang akan digunakan dengan memanggilsetApplicationContextClass(…)
.[Tip] Sering diinginkan untuk menelepon
setWebEnvironment(false)
saat menggunakanSpringApplication
dalam tes JUnit.sumber
SpringApplication.run(Application.class, args);
?SpringApplicationBuilder
Menambahkan dependensi mulai booting semi memperbaiki kesalahan saya.
Ini diperlukan jika Anda ingin memulai kucing jantan sebagai server yang diembed.
sumber
periksa pom.xml Anda ada
Saya punya masalah seperti ini ; Karena kekurangan ketergantungan ini
sumber
Dalam kasus saya, kami menambahkan anotasi @Profile baru untuk mengabaikan kelas TestApplication dalam mode produksi dan kelas Aplikasi dalam mode uji.
Sayangnya, kami lupa menambahkan baris berikut ke file application.properties:
Tanpa konfigurasi ini, tidak ada profil yang dimuat yang menyebabkan Spring Error mengatakan tidak begitu banyak.
sumber
Ini harus disebabkan oleh masalah ketergantungan, secara umum, Anda perlu memeriksa ketergantungan.
sumber
Masalahnya ada di kelas ini:
Cara yang benar untuk meluncurkan aplikasi Anda adalah:
sumber
Bersihkan gudang adalah salah satu solusi yang memungkinkan.
Windows -> hapus semua subfolder di repositori maven:
sumber
Saya terjebak dengan masalah yang sama. Karena saya tidak mendefinisikan Main.class dan anotasi berikut di Spring-Boot menggunakan Maven:
sumber
Masalahnya adalah pengecualian dari starter tomcat, saya mencoba mengecualikannya dan menggunakan vert.x, jadi ketika saya mengintegrasikan dengan Spring Admin, masalah mulai
sumber
Saya memiliki Pengecualian ini dalam situasi berikut.
di POM saya adalah properti:
dan nama dan jalur kelas aplikasi saya ("kelas awal") salah.
sumber
Saya memiliki masalah serupa dan masalahnya adalah file jar repo pakar rusak. Dalam kasus saya,
tomcat-embed-core
file jar rusak. Jadi saya menghapusnya dari repo pakar dan menyegarkannya untuk mengunduh lagi.sumber
Dalam kasus saya itu terjadi setelah mengecualikan folder sumber daya dari
pom
menggunakan kode berikut.Mengomentari kode ini memulai kode saya.
sumber
Penyebab lain dari masalah ini adalah korupsi pada toples penyimpanan maven sehingga Anda bisa menggunakan perintah berikut untuk memecahkan masalah:
sumber
Mungkin Anda melewatkan @SpringBootApplication di kelas starter boot spring Anda.
sumber
Saya menggunakan gradle, bertemu tampaknya masalah ketika saya memiliki commandLineRunner mengkonsumsi topik kafka dan titik akhir pemeriksaan kesehatan untuk menerima kait yang masuk. Saya menghabiskan 12 jam untuk mencari tahu, akhirnya menemukan bahwa saya menggunakan mybatis-spring-boot-starter dengan spring-boot-starter-web, dan mereka memiliki beberapa konflik. Belakangan saya langsung memperkenalkan mybatis-spring, mybatis dan spring-jdbc daripada mybatis-spring-boot-starter, dan program ini bekerja dengan baik.
semoga ini membantu
sumber