Java 将Mule Tomcat WAR转换为Spring Boot的问题
我一直在经历将我的Mule项目转换为Spring Boot应用程序的过程,但遇到了一个我似乎无法理解的障碍 我对Spring Boot还很陌生,所以我不确定我的问题是在于它,还是在于我做骡子的方式 这是我一直试图转换的示例项目: 当我将其部署到tomcat实例时,效果非常好,当我尝试将其作为Spring Boot应用程序运行时,问题出现了,我遇到了以下异常:Java 将Mule Tomcat WAR转换为Spring Boot的问题,java,spring-boot,mule,Java,Spring Boot,Mule,我一直在经历将我的Mule项目转换为Spring Boot应用程序的过程,但遇到了一个我似乎无法理解的障碍 我对Spring Boot还很陌生,所以我不确定我的问题是在于它,还是在于我做骡子的方式 这是我一直试图转换的示例项目: 当我将其部署到tomcat实例时,效果非常好,当我尝试将其作为Spring Boot应用程序运行时,问题出现了,我遇到了以下异常: ApplicationContextException: Unable to start EmbeddedWebApplicationCo
ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
注意,我正在从mule 3.6.1迁移到3.7.0-M1,这是使用Spring Boot所必需的(据我所知)
我试着在这个问题上四处寻找支持,这似乎很常见,但我发现没有一个建议能解决这个问题
感谢您对这些问题的帮助 我认为自动删除是一项企业功能,也许您使用的是ftp而不是ftp ee。目前代码中有一些地方不太正确 如果您想用Spring Boot构建一个web应用程序,通常需要在
Spring Boot starter web
上添加一个依赖项。除其他外,它还提供了嵌入式servlet容器:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
</dependency>
您的应用程序
类正在尝试运行MuleContextInitializer
,它也将其声明为bean。它应该运行应用程序。类:
@springboot应用程序
公共类应用程序{
公共静态void main(字符串[]args){
SpringApplication.run(Application.class);
}
// ...
}
您的应用程序
类也在默认包中。您应该避免使用默认包,因为它会导致Spring引导扫描整个类路径,然后查找应用程序的类和配置。将其放入自己的包中以阻止这种情况发生
最后,应用程序无法启动,因为它正在查找名为mule config.xml
的文件。将mule webapp demo.xml
重命名为mule config.xml
可以解决这个问题。我注意到servlet:inbound endpoint
在:您将使用哪个servlet容器?Spring boot是否将web.xml
加载到Servlet容器中?我的理解是,有一个使用Spring boot的嵌入式tomcat实例,但您的问题让我反复思考,因此我正在研究嵌入式实例如何工作,以确保它实现了我期望的功能。有趣的是,我将把这部分从问题中剔除,这样我就可以做一些研究了。谢谢你的深入讲解!这似乎解决了所有的问题,并且提供了很多信息。
<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>