问题标签 [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 投票
2 回答
10369 浏览

spring-boot - Spring Boot 使用嵌入式 Tomcat 和 JNDI

我正在使用带有嵌入式 Tomcat 的 Spring Boot 并尝试使用 JNDI,但出现以下错误:

javax.naming.NameNotFoundException:名称 [jdbc/dataSource]

任何提示将非常感谢。

这是我的代码:

0 投票
1 回答
998 浏览

jsf - 如何使用注释而不是 XML 在嵌入式 Tomcat 中创建自定义组件标签

编辑:重现此问题所需的唯一技术是JSF 2.2Spring Boot 1.2.1+ 它的嵌入式Tomcat 8.0.5服务器。这个问题中列出的所有其他内容只是为了提供我正在使用的技术的背景信息。

更新 #2:按照 BalusC 的想法,我将示例自定义组件移植到准系统Servlet 3.1+JSF 2.2应用程序中。你可以在 Github 上找到它的代码

这个简单的案例没有表现出我在这里描述的问题。@FacesComponent注释有效。这在很大程度上意味着问题是由其本身引起Spring 4.1.2Spring Boot。时间不早了,明天我会进一步调查。

TL;DR:我想使用@FacesComponent它的属性来替换foundation-components-html.taglib.xml<component>输入faces-config.xml

我目前使用 XML 定义在我的项目中使用自定义组件。我最近了解到 JSF 2.2 引入了一个完全不需要 XML的特性。我很想使用它,但是当我纯粹使用注释时,JSF 会忽略它们。原始标签显示在我的 HTML 中。

(即<custom:paragraph></custom:paragraph>

我已经在我一直托管在 Github 上的沙箱中演示了这个问题。如果你想对此有所了解,我将在这篇文章的底部解释如何。

您需要做的就是删除foundation-components-html.taglib.xml,并注释掉 > 的faces-config.xml条目<component并运行应用程序以遇到问题。我将其置于“运行”状态,以便任何希望提供帮助的人都有一个简单、可验证的正确起点。只需点击http://localhost:8080

使用的技术:

  • 春季启动 1.2.1

  • JSF 2.2 通过 Mojarra 2.2.6

  • 嵌入式Tomcat 8.0.5

注意:请记住,此设置当前有效,但它在 taglib 和 faces-config 条目上运行!我的问题是如何使用中的最新功能删除这些依赖项JSF 2.2

完整项目

自定义组件

标签库定义

人脸配置

XHTML 模板(为清楚起见,已精简)

如果您想运行它,最简单的方法是下载 Spring Tool Suite,从 Github 获取代码,右键单击该项目,然后将其作为 Spring Boot App 运行。当 JPA 配置启动时,您将收到连接错误,因为您(可能)没有运行本地 MySQL 服务器。不要担心这个。完全不需要访问索引页面并查看标签状态。我经常在使用和不使用数据库的情况下运行该应用程序,但不会产生不良影响。最后,为了让 PrettyFaces 与 Spring Boot 配合得很好,您必须从目标/类创建一个符号链接或硬链接到 WEB-INF/——PrettyFaces 被编码为在 WEB-INF/classes 或 WEB-INF 中查看/lib 扫描注释时。

BalusC 的片段

这个函数存在于一个被标记@Configuration并实现的类中ServletContextAware

0 投票
1 回答
762 浏览

glassfish - 带有 Spring Boot 的嵌入式 Tomcat JNDI 映射

我们正在使用 Glassfish,我们在其中设置 Map 类型的 JNDI 资源,我们定义了一些 Bean 工厂,之后我们可以在我们的代码中访问(JNDI 查找)这个映射。

我想用 Spring Boot 对嵌入式 Tomcat 测试做同样的事情,但我不知道怎么做。他们到处都在参考如何添加 JNDI 数据源而不是一些 Hashmap。我尝试过这样的事情,但我的猜测是完全错误的。

我不知道在对象工厂中传递到哪里。嵌入式Tomcat有可能吗?

0 投票
1 回答
4863 浏览

spring-boot - 无法发布具有许多(超过 256 个)值的表单

我正在使用带有 Thymeleaf 的 Spring Boot 1.2.2。我的问题是我尝试在表单中发布一长串项目(一些标签,一个复选框),这不能执行我列表中的这么多项目。(我测试了小列表并且它有效。)

首先,我使用了 jetty,但出现了一个错误,上面写着:

我搜索并看到了这个帖子。结果我添加了

到我的 gradle.build,但它没有成功。结果我切换到Tomcat,它又失败了。错误消息是:

看起来它只能执行 256 个条目。我有大约 500 个条目。所以我认为增加 maxhttpheadersize 会有所帮助,并将这一行添加到我的 application.properties 中:

(-1 无限制)我在 Thymeleaf 表单中设置了 method="post"。还有其他方法可以增加 256 限制吗?我不想对我的结果进行分页。谢谢你的帮助。

0 投票
2 回答
1853 浏览

jsp - SpringBoot 嵌入式 Tomcat JSPServlet 选项

为 JSPServlet 设置配置选项(如 checkInterval、keepgenerated、modificationTestInterval 等)的首选方法是什么?我试图改变它的原因是因为 JSP 编译的一些奇怪问题。我们正在使用可执行的战争打包并将“server.tomcat.basedir”属性设置为指向本地可访问的文件夹。生成的 jsp java 源和类文件显示修改日期为 1970 年 1 月 14 日。在 windows 资源管理器中,修改只是显示为空。在 linux 上,我们对所有文件进行了修改。但是一旦再次访问 jsp 文件,修改日期又回到 1970 年。我们怀疑这会导致每次访问 jsp 文件时都要编译它,从而减慢速度。然而,重新编译似乎只发生在 linux 环境中。有没有人遇到过这个问题?我们的环境:Spring Boot 1.2.2.BUILD-SNAPSHOT、Tomcat 8、JDK 1.8_025。

0 投票
2 回答
4085 浏览

java - Tomcat 8 Embedded - 错误 {org.apache.catalina.core.ContainerBase} - 子容器在启动期间失败

我正在使用嵌入的 tomcat,当我尝试启动服务器时,出现以下错误。我正在使用 tomcat 8.0.20 和 jdk8

为什么我会得到这个?我能做些什么来解决这个问题?

0 投票
1 回答
1604 浏览

spring-boot - Spring Boot 加载时间编织在嵌入式 tomcat 中不起作用

我无法让 LTW 在带有嵌入式 Tomcat 的 Spring Boot 1.2.2 中工作。

我的应用程序是 WAR 文件,而不是 .JAR 文件。当我在 DEBUG 中运行时,即使点击应该与切入点匹配的调用,它也永远不会在我的方面停止,所以这就是我认为它不起作用的方式......

我的运行脚本这样做:

在 Spring Boot 中,我将此 AOP 配置作为 ApplicationInitializer 加载,因此它立即位于父 ApplicationContext 中,此后我的嵌入式 tomcat Web 应用程序上下文的所有其余部分都应该存在。

我的方面看起来像这样:

我的嵌入式 WAR 的 META-INF/aop.xml 是这样的:

0 投票
1 回答
822 浏览

heroku - 在类似 Heroku 的云中扩展 Web 容器时处理嵌入式 tomcat 的端口号问题

假设我有两个按如下方式缩放的 Web 容器:

Web 容器执行如下(来自 Dockerfile):

确保两个不同的嵌入式 tomcat 侦听不同端口的最佳策略是什么(例如,如果我想构建类似 Heroku 的基础设施:请参阅 foreman)?

换句话说,两个容器都将监听同一个端口,从而导致冲突。

理想情况下,我需要对两个 tomcat 实例进行循环请求。我正在寻找工具和想法...

编辑1

这是我尝试过的:

来自 docker-compose.yml:

来自 ./web/Dockerfile:

这是我得到的:

编辑 2:忽略我的编辑 1,我无法重现该问题。

但是,我能够在 tomcat 上成功启动两个实例,但我尝试通过浏览器访问它们:

无济于事。有人可以帮忙吗?

0 投票
1 回答
146 浏览

java - 使用自定义路径在 Tomcat 中存储配置文件

在嵌入式 tomcat 中我们可以使用我们的自定义web.xml, server.xmlcontext.xml文件吗?如果可能,我们可以使用自定义位置来存储它们并指向该位置吗?如果有人能举个例子就好了

我正在使用 Tomcat 版本 8.0.20。

0 投票
0 回答
522 浏览

spring - 即使端点返回 500,弹簧执行器也会增加公制 counter.status.200.{my endpoint}

我已经用 Spring Boot 开发了我的第一个休息服务,Spring MVC Spring Actuator 使用嵌入式 tomcat 8。

由于某种原因,当端点由于未捕获的异常而失败时,端点返回的响应状态为 500,但度量为 counter.status.200。增加了。

我对代码进行了一些调试,看起来类ResponseFacade(来自tomcat)中的响应状态是在MetricFilterAutoConfiguration.MetricsFilter上增加度量之后设置的。

有人知道如何增加正确的状态代码计数器(counter.status.500.{my endpoint})吗?

提前致谢