首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Apache-Camel Spring启动器时不能扩展SpringBootServletInitializer

使用Apache-Camel Spring启动器时不能扩展SpringBootServletInitializer
EN

Stack Overflow用户
提问于 2018-06-01 16:27:24
回答 2查看 487关注 0票数 0

我正试图通过跟踪Spring应用程序的文档来创建一个可部署的*.war。我在扩展SpringBootServletInitializer时遇到了问题。它给了我一个编译时错误,说The type org.springframework.web.WebApplicationInitializer cannot be resolved. It is indirectly referenced from required .class files。但是在Maven依赖目录中,我可以清楚地看到SpringBootServletInitializer.class存在于spring-boot-1.5.10.RELEASE jar中。它是作为camel-spring-boot-starter依赖项的一部分下载的。

我的主修课

代码语言:javascript
复制
@SpringBootApplication
@EnableAutoConfiguration
public class SpringCamelApplication  extends SpringBootServletInitializer{

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

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

@Bean
public RestConfiguration restConfiguration()
{
    RestConfiguration restconfig=new RestConfiguration();
    restconfig.setPort(8081);
    restconfig.setComponent("restlet");
    //restconfig.setHost("localhost");
    restconfig.setContextPath("/api");
    restconfig.setBindingMode("auto");
    return restconfig;
}

}

我的pom.xml

代码语言:javascript
复制
<modelVersion>4.0.0</modelVersion>
    <groupId>com.camel</groupId>
    <artifactId>spring-camel</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>spring-camel</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <camel.version>2.21.0</camel.version>
        <spring.version>2.0.0.RELEASE</spring.version>
        <start-class>com.camel.springcamel.SpringCamelApplication</start-class>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-spring-boot-starter</artifactId>
            <version>${camel.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-restlet</artifactId>
            <version>${camel.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

我哪里出问题了?我注意到如果我使用spring-boot-starter-web依赖项,那么这不会给我任何错误,但是我已经有了camel-spring-boot-starter,所以我不应该需要spring-boot-starter-web。有人能解释一下这里到底出了什么问题吗?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-29 11:23:08

您需要更新camel版本以实现Spring 2的兼容性。

https://github.com/apache/camel/blob/master/components/camel-spring-boot/src/main/docs/spring-boot.adoc

春季启动2支持自骆驼2.22 (2018年夏季)。以前版本的骆驼只支持Spring 1.x。

而且,从Spring 2开始,spring-boot-starter-web不再是Starters中的一个传递依赖项,这是因为spring-boot-starter-webflux用于HTTP和WebSockets的反应性内嵌。这取决于第三方,或者你自己,来决定选择哪种实现。

票数 0
EN

Stack Overflow用户

发布于 2018-06-29 11:03:30

我找到了我的解决方案,这肯定是我使用的spring引导版本的问题,2以下的版本工作得很好,热的时候有时间研究一下为什么版本2.不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50647631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档