簡體   English   中英

將Mule Tomcat WAR轉換為Spring Boot的問題

[英]Issues Converting Mule Tomcat WAR to Spring Boot

我一直在經歷將我的Mule項目轉換為Spring Boot應用程序的過程,遇到了我似乎無法弄清的障礙。

我是Spring Boot的新手,所以我不確定我的問題是否出在其中,還是我在做m子。

這是我一直在嘗試轉換的示例項目: https : //github.com/JustinBell/mule-webapp-example

當我將其部署到tomcat實例時,它工作得很好,當我嘗試將其作為Spring Boot應用程序運行時,出現了這個問題:

ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

就像我注意到的那樣,我正在從m子3.6.1遷移到3.7.0-M1,這是使用Spring Boot所必需的(據我的理解)。

我已經嘗試在這個問題上尋求支持,這似乎很普遍,但是我發現的任何建議都沒有解決該問題。

感謝您對這些問題的幫助!

我相信autodelete是企業功能,也許您使用的是ftp,而不是ftp-ee。

就目前而言,有些事情在您的代碼中並不完全正確。

如果要使用Spring Boot構建Web應用程序,通常需要在spring-boot-starter-web上添加依賴spring-boot-starter-web 除其他外,這提供了嵌入式servlet容器:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>${spring-boot.version}</version>
</dependency>

您的應用程序對org.mule.transports:mule-transport-servlet的依賴會org.mule.transports:mule-transport-servlet一個非常老版本的Tomcat的Coyote模塊。 您需要排除它,以避免它與spring-boot-starter-web提供的最新依賴項沖突:

<dependency>
    <groupId>org.mule.transports</groupId>
    <artifactId>mule-transport-servlet</artifactId>
    <version>${mule.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>coyote</artifactId>
        </exclusion>
    </exclusions>
</dependency>

您的Application類正在嘗試運行MuleContextInitializer ,該類也聲明為Bean。 它應該正在運行Application.class

@SpringBootApplication
public class Application {

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

    // ...
}

您的Application類也位於默認程序包中。 您應該避免使用默認軟件包,因為它將導致Spring Boot先掃描整個類路徑,然后查找您應用程序的類和配置。 將其移動到自己的程序包中可以阻止這種情況的發生。

最后,該應用程序在尋找名為mule-config.xml的文件時無法啟動。 mule-webapp-demo.xml重命名為mule-config.xml解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM