2016-12-13 2 views
1

В настоящее время я работаю над примером планирования задач с использованием Spring 4, Java 1.8 и Gradle (https://spring.io/guides/gs/scheduling-tasks/).не может получить доступ к org.springframework.web.WebApplicationInitializer

Однако при выполнении этого примера, я получаю следующее сообщение об ошибке:

Error:(11, 8) java: cannot access org.springframework.web.WebApplicationInitializer class file for org.springframework.web.WebApplicationInitializer not found

Исходный код моего Application.java выглядит следующим образом:

package hello; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.boot.builder.SpringApplicationBuilder; 
import org.springframework.boot.web.support.SpringBootServletInitializer; 
import org.springframework.scheduling.annotation.EnableScheduling; 

@SpringBootApplication 
@EnableScheduling 
public class Application extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(Application.class); 
    } 

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

Мой Gradle файл:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.2.RELEASE") 
    } 
} 

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'idea' 
apply plugin: 'org.springframework.boot' 
apply plugin: 'war' 

jar { 
    baseName = 'gs-scheduling-tasks' 
    version = '0.1.0' 
} 

repositories { 
    mavenCentral() 
} 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 

dependencies { 
    compile("org.springframework.boot:spring-boot-starter") 
    testCompile("org.springframework.boot:spring-boot-starter-test") 
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' 
} 

Почему org.springframework.web.WebApplicationInitializer вызывает эту ошибку, когда это даже не мужчины в руководстве?

Спасибо.

+0

Можете ли вы опубликовать свой файл градиента –

+0

@KlausGroenbaek, я добавил это к своему оригинальному сообщению. Благодарю. – 000000000000000000000

ответ

1

Вы расширяете SpringBootServletInitializer, который реализует WebApplicationInitializer

проверка http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.boot/spring-boot/1.0.2.RELEASE/org/springframework/boot/context/web/SpringBootServletInitializer.java

Используйте этот класс приложений, а не как руководство показывает

@SpringBootApplication 
@EnableScheduling 
public class Application { 

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

Хорошая ссылка. Теперь это имеет смысл. Благодарю. – 000000000000000000000

0

Руководство не распространяется SpringBootServletInitializer, удалить или добавить spring-boot-starter-web как зависимость, если вы хотите, чтобы веб-сервер Tomcat внутри вас применялся ион.

+0

Спасибо. Я добавил эту зависимость, и теперь она работает именно так, как я хотел. – 000000000000000000000