Spring boot 我是否需要为spring boot项目单独安装Tomcat?
我有一个spring boot项目,我有以下设置:Spring boot 我是否需要为spring boot项目单独安装Tomcat?,spring-boot,tomcat,intellij-idea,Spring Boot,Tomcat,Intellij Idea,我有一个spring boot项目,我有以下设置: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--<scope>provided</scope>-->
</dependency>
如果我在我的机器上安装Tomcat,以便能够通过“mvn spring boot:run”运行它,会有帮助吗?另外,目前我没有安装Tomcat或Apache服务器,我应该在IntelliJ中成功地安装web应用程序吗 您已经注释掉了为tomcat提供的范围。 在这种状态下,它默认为编译范围,这意味着当您启动应用程序时,它将在类路径上可用(无论您使用哪种方法) 当您取消对它的注释并将其放入提供的范围时,这意味着它将仅在编译时可用,并且您希望JDK或容器提供对类路径的依赖。如果将其部署到tomcat的独立实例,这是有意义的 正如JB Nizet所说,Spring boot使用并启动了一个嵌入式tomcat容器。但为了做到这一点,它需要依赖 正如其他人所建议的,您应该阅读SpringBoot的文档来了解它是如何工作的。让您开始:下面是一个很好的操作说明,它解释了使用maven运行SpringBoot应用程序的基础知识 希望你能从那里重新制作
请注意,spring boot starter web依赖于spring boot starter tomcat 不,不会的。它启动一个嵌入式容器。不要随意尝试解决问题。相反,请读取异常的完整堆栈跟踪以找出问题所在。另外,请阅读SpringBoot文档:它解释了SpringBoot是如何工作的。问题是我不知道问题出在哪里。我在谷歌上搜索了很多,但找不到解决问题的线索。stacktrace中应该有更多关于为什么嵌入式tomcat没有启动的信息。可以将pom从war更改为jar,然后从cod行重新开始。您可能还需要删除tomcat依赖项,因为web有一个依赖项,或者需要从web中排除
[WARNING]
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run (AbstractRunMojo.java:506)
at java.lang.Thread.run (Thread.java:748)
Caused by: org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh (EmbeddedWebApplicationContext.java:137)
at org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:536)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh (EmbeddedWebApplicationContext.java:122)
at org.springframework.boot.SpringApplication.refresh (SpringApplication.java:761)
at org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:371)
at org.springframework.boot.SpringApplication.run (SpringApplication.java:315)
at org.springframework.boot.SpringApplication.run (SpringApplication.java:1186)
at org.springframework.boot.SpringApplication.run (SpringApplication.java:1175)
at com.jd.jnlu.qe.boot.JnluQEWebStart.main (JnluQEWebStart.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run (AbstractRunMojo.java:506)
at java.lang.Thread.run (Thread.java:748)
Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat