Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将Mule Tomcat WAR转换为Spring Boot的问题_Java_Spring Boot_Mule - Fatal编程技术网

Java 将Mule Tomcat WAR转换为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

我一直在经历将我的Mule项目转换为Spring Boot应用程序的过程,但遇到了一个我似乎无法理解的障碍

我对Spring Boot还很陌生,所以我不确定我的问题是在于它,还是在于我做骡子的方式

这是我一直试图转换的示例项目:

当我将其部署到tomcat实例时,效果非常好,当我尝试将其作为Spring Boot应用程序运行时,问题出现了,我遇到了以下异常:

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>