如何使用Tomcat 8 + Spring Boot + Maven

2023-11-27

根据参考 API使用 Tomcat 8和这个部署 Spring Boot 应用程序教程应该可以使用 Tomcat 8春季启动,默认使用 Tomcat 7。

由于某种原因,它对我不起作用。我究竟做错了什么?

pom.xml

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<properties>
    <tomcat.version>8.0.3</tomcat.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.0.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.0.5.RELEASE</version>
    </dependency>
</dependencies>

示例控制器.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@EnableAutoConfiguration
public class SampleController {

    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleController.class, args);
    }
}

输出是启动 Servlet 引擎:Apache Tomcat/7.0.52

 :: Spring Boot ::        (v1.0.2.RELEASE)

2014-06-09 13:55:27.688  INFO 5744 --- [           main] SampleController                         : Starting SampleController on CI01081252 with PID 5744 (started by TECBMEPI in D:\projetos\teclogica\testes automatizados\exemplo int db\workspace\spring-boot-tomcat8-maven)
2014-06-09 13:55:27.730  INFO 5744 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@33b45e9a: startup date [Mon Jun 09 13:55:27 BRT 2014]; root of context hierarchy
2014-06-09 13:55:28.869  INFO 5744 --- [           main] .t.TomcatEmbeddedServletContainerFactory : Server initialized with port: 8081
2014-06-09 13:55:29.117  INFO 5744 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2014-06-09 13:55:29.118  INFO 5744 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.52
2014-06-09 13:55:29.226  INFO 5744 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2014-06-09 13:55:29.226  INFO 5744 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1498 ms
2014-06-09 13:55:29.656  INFO 5744 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/]
2014-06-09 13:55:29.658  INFO 5744 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2014-06-09 13:55:29.946  INFO 5744 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2014-06-09 13:55:30.035  INFO 5744 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto java.lang.String SampleController.home()
2014-06-09 13:55:30.059  INFO 5744 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2014-06-09 13:55:30.059  INFO 5744 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2014-06-09 13:55:30.236  INFO 5744 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2014-06-09 13:55:30.257  INFO 5744 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8081/http
2014-06-09 13:55:30.259  INFO 5744 --- [           main] SampleController                         : Started SampleController in 2.933 seconds (JVM running for 3.318)

我已经尝试过这个Spring boot 的较新 RC 版本,但仍然加载 Tomcat 7 而不是 8。

还添加<java.version>1.7</java.version>财产不起作用。

也尝试过“application.properties”。端口按启动时指定的设置,但 Tomcat 的版本仍保留默认值 7。

应用程序属性

server.port=8081
tomcat.version=8.0.3

当使用 Spring Boot 覆盖 tomcat 时tomcat.version作为一个属性,只有当你使用时才会起作用spring-boot-starter-parent作为您项目的家长。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.0.M2</version>
</parent>

(将版本更改为您喜欢的版本)。

<properties>
    <tomcat.version>8.0.8</tomcat.version>
</properties>

如果您不想作为父母使用它,则必须使用<dependencyManagement>pom.xml 中的部分覆盖所有 spring 版本并保留上述属性。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-el</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-logging-juli</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-websocket</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jsp-api</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
    </dependencies>

</dependencyManagement>

无论哪种方式都会起作用,但我想说的是扩展父级是最简单的,但这并不总是可能的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Tomcat 8 + Spring Boot + Maven 的相关文章

  • 如何解析比 Java 中 NumberFormat 更严格的数字?

    我正在验证表单中的用户输入 我解析输入NumberFormat http docs oracle com javase 7 docs api java text NumberFormat html 但它是邪恶的 几乎允许任何事情 有没有办法
  • 将对象列表传递给 Freemarker 然后循环

    我已经熟悉了 FreeMarker 一个 Java 模板引擎 我已经能够通过哈希映射将对象传递给模板引擎了 这样就可以了 但是 一旦我尝试将任何类型的多个对象集传递给 FreeMarker 它就会给我一个 freemarker templa
  • 为 Apache Spark 示例运行 Cypher (CAPS)

    我知道这是一个广泛的问题 但这会对neo4j不属于某个领域的用户scala编程 我需要使用Apache Spark 项目的 Cypher https github com opencypher cypher for apache spark
  • 使用Optional作为类中的属性是一个好习惯吗? [复制]

    这个问题在这里已经有答案了 我读过一些关于目的的内容Optional 不幸的是我不记得在哪里 在Java 8中 我很惊讶作者没有提到使用Optional作为类中的属性 由于我在课堂上经常使用选项 我想知道这是否是一个好的做法 或者我可以更好
  • 使用java在mysql中插入带有\\的文件路径

    我正在使用java制作一个独立的应用程序 并且我需要插入用户从文件选择器中选择的图像的路径 我正在获取文件的路径 但是当我将其存储在数据库 mysql 中时 它不会存储 所以当我检索该路径时 该文件不会显示 如何存储文件的路径 这样就可以使
  • Spring @Transactional 并发

    class MyService 公共无效a 同步 某个键 b Transactional 传播 传播 REQUIRES NEW 公共无效b 数据库工作吗 除非您使用代码编织 否则这是行不通的 Spring处理事务的默认方式是通过AOP代理
  • 内容安全策略:页面设置阻止自行加载资源?

    我有基于 Java 的 Web 应用程序运行在Tomcat http en wikipedia org wiki Apache Tomcat6 我的应用程序在本地主机和端口 9001 上运行 为了使我的应用程序更加安全并降低风险XSS ht
  • 如何更改tomcat jmx密码的文件权限

    我正在尝试保护 Windows 平台上托管的本地 tomcat 实例上的 JMX 访问 我已经创建了访问权限和密码文件 并使用以下 VM 参数插入这些文件 Dcom sun management jmxremote password fil
  • 使用 Spring 注入 Google Guava Hashmultimap

    是否可以提供一个创建示例Multimap
  • 如何从 REstAssured 中的 Json 数组获取 JSON 对象

    任何人都可以帮我解决这个场景 我是新来的RestAssured和处理JSON在我们的自动化脚本中 我有一个API谁的回应是JSONArray i e id 1002 entity testcase fieldName TextName di
  • 为什么 Libgdx 的 Table 不接受缩放操作?

    我在 libgdx 库中使用 scene2d 在游戏中创建一些 UI 我使用了一个表格 我想在用户触摸时采取一些缩放操作以使按钮触摸有意义 当我使用任何其他 Actor 类型 例如 Group 并为其提供缩放操作时 它可以工作 但不能工作表
  • Spring Data elasticsearch @Query 注解嵌套对象

    我有两节课 Document public class PracticeQuestion private int userId private List
  • Java字符串中的字符数[重复]

    这个问题在这里已经有答案了 可能的重复 Java 使用unicode上划线显示平方根时字符串的长度 https stackoverflow com questions 7704426 java length of string when u
  • Spring @Configuration如何缓存对bean的引用

    使用基于 Java 的配置时 Spring 如何防止再次调用 bar 我想知道编译时注释处理或通过代理方法 Configuration public class AppConfig Bean public Foo foo return ne
  • 如何根据服务器/环境动态加载服务器配置?

    目前 我设置了 Maven 配置文件 以便能够为不同的环境 开发 演示 暂存 生产等 部署我的项目 并且它工作得很好 但问题是 对于我拥有的每个模块 Web 应用程序 我需要复制 粘贴此配置文件 它们都是属性文件 当我需要更改环境 服务器配
  • Hive NVL 不适用于列的日期类型 - NullpointerException

    我正在使用 HDFS 上的 MapR Hive 发行版并面临以下问题 如果表的列类型是 日期 类型 则NVL https cwiki apache org confluence display Hive LanguageManual UDF
  • 我可以从同一个 jar 文件执行两个不同的类吗?

    我有一个项目 在一个包中我制作了服务器 在第二个包中我制作了客户端 它运行良好 我想创建一个 Jar 文件 是否可以使用同一个 jar 文件分别运行客户端和服务器 我使用了只有一个 main 的 jar 文件 当我运行 jar 文件时 它会
  • bean 中的 Spring JavaConfig 属性未设置?

    我正在考虑将 Spring JavaConfig 与一些属性文件一起使用 但 bean 中的属性未设置 bean 中的属性未设置 这是我的网络配置 Configuration EnableWebMvc PropertySource valu
  • 如果可能,将 jFrame 输出到第二台显示器

    我在 Java 中的 Swing 上有一个 jFrame 我希望它输出到第二个监视器 如果该监视器存在 我尝试过这个 通过this http download oracle com javase 6 docs api java awt Gr
  • 如何使用SAXReader解析GPX文件?

    我正在尝试解析GPX file http en wikipedia org wiki GPS eXchange Format 我用 JDOM 尝试过 但效果不太好 SAXBuilder builder new SAXBuilder Docu

随机推荐

  • Laravel 8 中的 Composer.json 文件损坏

    当我尝试删除包裹时maatwebsite excel在我的项目中 我严重损坏了一些东西 问题是我无法跟踪我所做的更改 在我删除之前maatwebsite excel从composer json中 我删除了phpoffice phpsprea
  • SQL 2008 VS 2012 错误:关键字“COMPUTE”附近的语法不正确

    我的朋友向我发送了他在服务器 2008 中编写的命令 它们运行没有问题 但是我的副本和过去的命令在 2012 中不起作用 有什么原因吗 这是代码 Use Kudler Database SELECT AccountNumber Descri
  • Firestore 的集合组权限

    我有这些规则 match suuntoAppAccessTokens userName allow create if request auth uid null request auth token firebase sign in pr
  • 如何在多个项目之间共享 sbt 插件配置?

    我们有许多较小的 sbt 项目 我们希望将它们分开 没有多项目构建 然而 我们希望在构建之间共享配置 为此 我们目前还有另一个项目 所有项目都将其用作其 project project Build scala 文件中的库依赖项 通过这种方式
  • 实体类型 ApplicationUser 不是当前上下文模型的一部分

    我正在从 Identity 1 0 0 迁移到 Identity 2 0 1article 并且生成的迁移代码与新的 IdentityUser 无关 它不会添加新列 所以我创建了一个新项目并再次尝试 但迁移代码是空的 为了解决这个问题 我直
  • 如何在android中以编程方式增加铃声和通知音量

    我正在尝试启用铃声正常模式并以编程方式增加音量 AudioManager mobilemode AudioManager mContext getSystemService Context AUDIO SERVICE int streamM
  • AVFoundation 相机预览层不起作用

    所以 我正在尝试使用 AVFoundation 实现相机 我想我做的一切都是对的 这就是我正在做的事情 创建会话 获取视频类型的设备 循环遍历设备以获取后面的摄像头 使用 3 中提到的设备获取设备输入并将其添加到会话中 创建类型的输出AVC
  • 将 JSON 字符串解析为对象的最简单的 C# 函数是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 将 JSON 字符串解析为对象并显示它的最简单的 C 函数是什么 C XAML WPF 例如具有 2 个数组的对象 arrA 和 arrB 只需使用Json NET图书馆 它可以让你
  • 异常消息:发生某种磁盘 I/O 错误

    当我尝试在 SQLite 数据库上运行更新查询时 出现此错误 这只发生在 XP 上 在 Vista 上工作正常 数据库创建没有任何问题 插入也工作正常 我还检查过 我有可用的权限和磁盘空间 正如 sqlite org 所说 这些是可能的原因
  • 使用 smoothScatter 生成的颜色密度散点图的 R 图例

    我正在 R 中使用以下命令生成颜色密度散点图smoothScatter 功能 Example A largish data set n lt 10000 x1 lt matrix rnorm n ncol 2 x2 lt matrix rn
  • 如何覆盖 Google 地图中的 KML 颜色?

    我正在通过 Google 地图的 V3 API 加载 KML 文件 正在使用 KML 文件中的颜色 但我想用我自己的颜色覆盖它 我实际上想对整个轨迹使用纯色 有没有办法做到这一点 KML colors are based on Stylea
  • HTTPS 查询字符串安全吗?

    我正在创建一个使用 HTTPS 的基于安全 Web 的 API 但是 如果我允许用 户使用查询字符串配置它 包括发送密码 这也是安全的还是我应该强制它通过 POST 完成 是的 但对敏感数据使用 GET 并不是一个好主意有几个原因 主要是
  • 在文件中调用 powershell 函数,无需点源

    如果我的文件中只有一个与该文件同名的函数 这可能吗 我好像记得以前读过 像这样的东西 你好 ps1 function hello Write Host Hello world 我会完全摆脱函数调用 您根本不会丢失命名参数和 cmdlet 包
  • 如何侦听所有组件上的按键(在 Java Swing 内)?

    I would like to listen for key combinations such as Control S without adding key listeners to each component in my Swing
  • 在 wxPython 的窗口中显示 .png 图像

    如何显示一个 pngwxPython 窗口中的图像 png wx Image imageFile wx BITMAP TYPE ANY ConvertToBitmap wx StaticBitmap self 1 png 10 5 png
  • Mongoose:将JS对象直接插入数据库

    好的 我有一个 JS 对象 它通过 AJAX POST 到 Nodejs 后端 我想将此 js 对象直接插入到我的猫鼬数据库中 因为对象键已经与数据库模式完美匹配 我目前有这个 不是动态的并且过于复杂 app post items subm
  • 如何使用库

    由于某种原因 我永远无法使用任何语言的外部库 我正在寻找有关如何使用外部库及其工作原理的说明 解释 当我在线搜索时 我得到的片段似乎永远不适用于我下载并尝试使用的任何库 我在 Mac 和 PC 上工作 C 示例都很好 我使用带有 C 插件的
  • 如何使用 kendo 验证器验证日期的格式为 yyyy-MM-dd?

    我有一个剑道日期选择器 其构造如下 date kendoDatePicker format yyyy MM dd footer parseFormats MM dd yyyy dd MM yyyy 我想使用 kendo 验证器来验证日期是否
  • 使用 Python 实现 collat​​z 函数

    我目前在 自动化无聊的事情 中无法完成此挑战 我的代码是 def collatz number global seqNum if seqNum 2 0 return seqNum 2 elif seqNum 2 1 return 3 seq
  • 如何使用Tomcat 8 + Spring Boot + Maven

    根据参考 API使用 Tomcat 8和这个部署 Spring Boot 应用程序教程应该可以使用 Tomcat 8春季启动 默认使用 Tomcat 7 由于某种原因 它对我不起作用 我究竟做错了什么 pom xml