我已经使用springboot编写了一个spring批处理应用程序。当我尝试在本地系统上使用命令行和类路径运行该应用程序时,它运行良好。然而,当我试图在linux服务器上运行它时,它给了我以下异常
Unable to start web server; nested exception is
org.springframework.context.ApplicationContextException:
Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
下面是我的操作方式:
java -cp jarFileName.jar; lib\* -Dlogging.level.org.springframework=DEBUG -Dspring.profiles.active=dev -Dspring.batch.job.names=abcBatchJob com.aa.bb.StartSpringBatch > somelogs.log
21条答案
按热度按时间0yycz8jy1#
案例1:
@SpringBootApplication
SpringBootStarter类中缺少注解。案例2:
对于非web应用程序,请在属性文件中禁用web应用程序类型:
在
application.properties
:如果你使用
application.yml
然后添加:对于web应用程序,在main类中扩展springbootservletinitializer。
案例3:
如果你使用
spring-boot-starter-webflux
然后再加上spring-boot-starter-web
作为依赖关系。rlcwz9us2#
可能你失踪了
@SpringBootApplication
在你的 Spring 启动课上。bz4sfanl3#
解决方案是:
我将下面的属性显式设置为
none
在application.yml
文件。jmp7cifd4#
我的解决方案与严重的依赖性有关。我有:
在我的pom中,我不得不对排除项进行注解以使其生效。出于某种原因,它必须寻找这个tomcat包。
dfty9e195#
您可能会在项目中使用此选项:
在这种情况下,您还必须添加:
神奇的事情发生了:)
ps:这是因为spring在默认情况下使用WebMVC,而不是WebFlux
efzxgjgh6#
在我的例子中,这个问题是在评论springbootstarteweb中排除tomcat依赖项时解决的
vjrehmav7#
注解类
public static void main
例如:@SpringBootApplication
mo49yndu8#
添加以下bean对我有效。
我使用
SpringApplication.run(MyApplication.class, args);
没有@SpringBootApplication
注解。piztneat9#
我在迁移到spring boot时遇到了这个问题。我找到了一个删除依赖项的建议,它很有帮助。所以,我删除了jspapi项目的依赖关系。此外,还必须删除servlet api依赖关系。
b4lqfgs410#
类似于确保
org.springframework.boot:spring-boot-starter-tomcat
安装了,我失踪了org.eclipse.jetty:jetty-server
从我的build.gradle
org.springframework.boot:spring-boot-starter-web
需要一个服务器,不管是tomcat、jetty还是其他什么——它可以编译,但没有它就不能运行。ycl3bljg11#
我在intellij idea中右键单击了我的项目,然后maven->重新加载项目,问题解决了。
new9mtju12#
在我的例子中,问题是我的eclipse中没有单独安装tomcat服务器。我假设我的springboot会自动启动服务器。
因为我的主课
SpringBootServletInitializer
和覆盖configure
方法,我肯定需要在ide中安装tomcat服务器。要安装,首先下载apachcetomcat(在我的例子中是版本9)并使用servers选项卡创建服务器。
安装后,在服务器上运行主类。
emeijp4313#
除了其他答案中可能的解决方案之外,您的机器上也可能发生了maven依赖性损坏。我在尝试运行我的(web)spring启动应用程序时遇到了相同的错误,通过运行以下命令解决了这个问题-
然后
我开始研究这个解决方案的另一个问题,eclipse不允许我从ide运行主应用程序类,原因是另一个错误,类似于这个线程上的错误->类型org.springframework.context.configurableapplicationcontext无法解析。它是从必需的.class文件间接引用的
unhi4e5o14#
如果您使用的是intellij,并且这种情况发生在您身上(就像我的noob一样),请确保run设置有spring引导应用程序,而不是普通应用程序。
pieyvz9o15#
升级
spring-boot-starter-parent
在pom.xml
最新的版本为我修复了它。