[英]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.