Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Spring boot 我是否需要为spring boot项目单独安装Tomcat?_Spring Boot_Tomcat_Intellij Idea - Fatal编程技术网

Spring boot 我是否需要为spring boot项目单独安装Tomcat?

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>

我有一个spring boot项目,我有以下设置:

<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