问题标签 [embedded-tomcat-8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3319 浏览

java - 在 Spring Boot Embedded Tomcat 中读取 context.xml

在将非 Spring 应用程序转换为 Spring Boot 时,希望在嵌入式 tomcat 中使用现有的 context.xml 文件。

使用 Spring Boot 1.5.1 和 Tomcat 8.5.11

TomcatEmbeddedServletContainerFactory 配置

检查数据库连接的方法,

那么如何在 Spring Boot 中加载现有的 context.xml。

0 投票
1 回答
3996 浏览

spring-boot - Spring Boot Web 应用程序未启动

我有一个小型 Spring Boot 应用程序,它通过控制器公开 API。控制器使用一些服务,这些服务使用 mongodb 存储库。

我的 pom.xml:

控制器:

主要应用类:

当我从命令行或 Eclipse 运行 mvn spring-boot:run 时,会出现各种错误。如果我删除“servletContainer”方法,我会得到:

如果它在那里,我会收到另一个错误:

Maven 正在将 tomcat-embed-core-8.5.11 添加到依赖项中,以便报告为未找到的类存在。这让我很困惑。

我还尝试了一些在 Internet 上找到的演示项目,但我无法通过嵌入式容器侦听请求来启动并运行任何 spring-boot 应用程序。

有人可以指出我做错了什么吗?

非常感谢。

0 投票
2 回答
3470 浏览

java - Heroku webapp-runner JNDI 命名,资源不可用

我在我的src/main/webapp/META-INF/context.xml

当我将我的应用程序部署到 Tomcat 8 时,它运行良好并且资源可用。
但是,当我尝试使用以下命令通过 webapp-runnner(本地或 Heroku)运行时:

我收到此警告,但资源不可用:

我尝试将这些依赖项添加到我的 pom.xml 中,但没有任何区别:

请指教。

0 投票
1 回答
1245 浏览

java - EmbeddedTomcat 和 startStopThreads 属性

我一直在环顾四周,找不到任何好的解释或使用带有 EmbdeddedTomcat 容器的 Spring 4.x (Springboot) 并手动设置此处startStopThreads描述的属性的示例

我注意到我们的应用程序的启动延迟随着时间的推移而变得更糟,但也看到(在日志中)标记为线程池的线程池[localhost-startStop-1]是唯一执行超过[main]. 我想在这个池中添加更多线程来加速我们的异步启动。

有人可以帮我解决Tomcat的startStopThreads问题吗?


更新 -
一个很好的用例是在启动时动态创建 DynamoDb 表。创建代码包含在一个Executor.submit调用中,但是日志显示这些是串行执行的。以下是日志中内容的示例:

不幸的是,我从来没有看到localhost-startStop-2执行任何东西,如果它在线程池中应该

0 投票
2 回答
2616 浏览

spring - 如何在 Spring Boot 应用程序中设置 Hibernate bulk_id_strategy?

Hibernate 正在为 TABLE_PER_CLASS 继承生成临时表,但 prod。oracle 用户没有这些创建表权限,因此该方法不是我们项目的选项。

据说 Hibernate 版本 5.2.8 解决了这个问题。我们相应地更新了 pom.xml 以覆盖默认的启动器休眠版本设置。

我们仍然对以下属性没有任何运气。

APPLICATION PROPERTIES 也更新如下

**

**

此设置在 Spring Boot 应用程序中的正确位置在哪里?

容器仍在测试环境中生成临时表。服务器启动。

亲切的问候

pom.xml如下

http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0

0 投票
0 回答
6750 浏览

java - 嵌入式 Tomcat 是部署到生产的不错选择吗

传统上,通过将生成的war部署到Tomcat的-webapps-目录,将Servlet Maven项目部署到Tomcat生产服务器。但是,Spring-Boot 作为一种实用趋势,建议jar超过war. 此首选项对测试没有问题,但如果部署到生产中的现有 Tomcat 服务器,AFAIK,只接受战争。所以我的解决方案是:

  1. 通过修改Maven的pom.xml生成对应的war,即设置packagingelement的值war如下:<packaging>war</packaging>但这显然是一个额外的步骤
  2. 将项目部署在生产环境中作为运行 Java 程序并嵌入 Tomcat,这意味着生产环境中根本没有正常的 Tomcat 服务器。但是嵌入式 Tomcat 在生产环境中是否与普通 Tomcat 服务器一样稳定?
  3. 在将 Spring MVC 项目(没有 Spring Boot!)部署到现有 Tomcat 服务器的情况下,我尝试在测试阶段使用Tomcat Maven 插件,而不是使用带有 Tomcat 服务器配置的 Eclipse,因为 Tomcat 服务器应作为先决条件安装在本地.

问题:以上解决方案都可以吗?还是有其他更好的部署到生产的解决方案?如果是第三种解决方案,据我所知只有Tomcat7 Maven插件,如果我只想用Tomcat 8或Tomcat 9测试怎么办?我尝试使用主类来启动嵌入式 Tomcat,但处理依赖关系非常困难

0 投票
0 回答
494 浏览

spring-boot - 当使用 devtools 时,Springboot Load-Time Weaving 不允许将 spring bean 注入到嵌入式 Tomcat 的方面

我正在使用最近的 springboot v1.5.2 和 aspectj(v1.8.10)的加载时间编织。在外部 tomcat 上运行我的应用程序时,我能够将 spring bean 注入到我的 aspectj 方面,现在我想知道为什么嵌入式 tomcat 也失败了?

弹簧靴:1.5.2

方面:1.8.10

弹簧仪表:4.3.7.RELEASE

maven 命令:mvn spring-boot:run -Drun.jvmArguments="-javaagent:aspectjweaver-1.8.10.jar -javaagent:spring-instrument-4.3.7.RELEASE.jar -Dserver.port=8080 -Dserver.contextPath= /自定义应用程序”

方面配置:

方面:

部署者:

实际结果:deployer = null,因为 aspectj 创建了 RuntimeContainerDelegateAspect 的新实例来处理 @Around 通知

预期结果:deployer = spring bean RestApplicationDeployer

PS:这在外部 tomcat 实例上完美运行

0 投票
0 回答
913 浏览

spring - 无法在不重新启动 JVM 的情况下使用 Spring Boot 重新启动嵌入式 Tomcat

当我停止我的 Spring 应用程序时,我观察到一个问题,它确实优雅地关闭了 Tomcat 并关闭了应用程序上下文。JVM 中不再有与我的 Spring 应用程序相关的线程。

但是,在那之后我无法启动我的 Spring 应用程序。我收到以下错误:

如果我重新启动我的 JVM,那么我可以很好地启动我的 Spring 应用程序。这是嵌入式 Tomcat 和 Spring 的预期行为吗?

我正在使用嵌入式 tomcat 版本 8.5.4 和 spring-boot 版本 1.4.0.RELEASE

0 投票
1 回答
5801 浏览

java - Spring Boot 嵌入式 Tomcat 依赖项在启动时引发异常

我正在从 JBoss/Wildfly 移植一个旧应用程序以在 tomcat 上运行。使用网上找到的资源,我能够完成的大部分工作。但是,我对最新一期的运气并不好。我很早就知道我必须添加

作为请求路由的依赖项。如果我不包含此依赖项,我将在发出请求时收到 404 错误。现在,这似乎对我的应用程序没有任何不利影响,但如果没有任何问题,我不喜欢启动错误。

目标环境是运行 Tomcat 8 的 AWS,它在部署时运行良好。我只看到此错误在本地运行(启用调试):

问题是,依赖解析失败,因为没有附加到被扫描的 JAR 路径的版本。这是丢失文件的本地存储库:

这只发生在 jaxb-impl 和 jaxb-core

我已经尝试清理依赖冲突,但除了一个旧版本的 jaxb-impl 之外没有发现任何其他东西作为临时依赖。

那么我能做什么呢?我看到所有依赖项都从 gradle 缓存中解析,但不明白为什么请求的依赖项没有解析为正确的版本。我猜是因为这通常包含在 JRE/JDK 或 Tomcat 本身中。

这是我的gradle文件:

0 投票
0 回答
83 浏览

web-services - Tomcat logging.properties 更改未得到遵守

我有一个在 Tomcat 8.5.11 之上运行的 Web 应用程序。当我创建不同的实例时,所有实例都已启动并正常运行。Tomcat 中存在一个名为 TcpFailureDetector 的类,它负责检查所有实例是否处于活动状态。即使所有实例都处于活动状态,它仍会每 5 秒写入一次日志并使日志文件膨胀。这随着实例的数量呈指数增长。

我开始了解 Tomcat 的 logging.properties 文件。我对其进行了更改,以防止根据Tomcat 官方日志记录文档记录该特定类

但是,这些更改是不一致的,有时它们会生效,有时它们不起作用。我不知道有不一致的地方。是不是因为即使在服务器关闭后 logging.properties 配置也被存储在其他地方?