问题标签 [embedded-tomcat-7]
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.
java - Embedded Tomcat, Jersey, and WebApplicationInitializer not loading
I am attempting to embed tomcat in my existing Jersey web application. I am able to get Tomcat running no problem, and even loading my JSP's from the webapp dir. The issue is getting it to see my WebApplicationInitializer class like it does in the full container. I'm fairly certain this is a class path issue, if I add a VirtualDirResource and set the context to it, my Jersey app loads. The issue there is, Jersey can no longer load my JSP Viewables. It returns 404. Again, I have no web.xml anywhere. Not sure what code would be helpful, so ask for code samples if you think you have an answer.
java - 嵌入式 Tomcat 不执行 jsf 页面
已解决:我使用了错误的命名空间,请参阅本文后的说明。
当尝试运行嵌入式 tomcat 并导航到 jsf 页面时,jsf 标记只是呈现到页面中并且它们不会被执行。
编辑:我将此 Maven 项目添加到
只需克隆它
创建tomcat嵌入式服务器的文件是:
web.xml(在 src/main/webapp/WEB-INF 下)是:
index.xhtml 是(在 src/main/webapp/ 下):
最后是 pom.xml
我不知道问题出在哪里,但我想我错过了一些东西。
有人可以帮忙吗?
eclipse - Eclipse/Tomcat 发布不必要的/有问题的依赖项
所以首先,有一点背景。
我正在将 Eclipse Java Web 项目转换为 Gradle。我们使用 Vaadin 框架,目前使用 Ant/Maven/Ivy 管理项目。我们有另一个项目,其中包含 Web 项目所依赖的公共代码。在这两个项目中,我们的库文件 JAR 都简单地包含在源代码中并提交给我们的 VCS。随着切换到 Gradle,我们将使用从存储库中提取依赖项的首选方法;主要是 Maven 中心。
我已经完成了与我们当前的 Ant 构建脚本相对应的 Gradle 构建脚本的创建。我为每个项目都有一个 Gradle 构建脚本,以及一个用于配置注入的根目录以及设置文件。我为这两个项目使用了java和eclipse插件,另外还为 web 项目使用了war和vaadin插件。
现在来解决问题。当我使用 Gradle 构建 WAR 时,它可以完美运行,并且WEB-INF/lib目录仅包含我期望的 JAR,基于依赖配置。但是,当我在 Eclipse 中使用 Tomcat 发布项目时,我最终会在WEB-INF/lib目录中得到一堆额外的 JAR 。大多数 JAR 是无害的,只是不必要的,这就是我将它们从 WAR 中排除的原因,但是有一些实际上是有问题的,因为 Tomcat 已经有了它们。在一种情况下,它只是忽略了 JAR,我得到了通常的消息:
[Tomcat] validateJarFile(*) - jar 未加载。
在另一种情况下,我实际上在控制台中收到异常,即使应用程序似乎可以正常工作,这也很麻烦。我还注意到与testCompile配置相关的所有依赖项也正在发布,这看起来确实不对。
确切的违规 JAR 是tomcat-jdbc和servlet-api-2.5。编译我们的通用代码需要tomcat-jdbc JAR。servlet-api-2.5 JAR 实际上只是vaadin-client-compiler的传递依赖。我已经在我们的 Web 项目中删除了对vaadin-client-compiler的依赖,因为它似乎没有必要,但看起来它仍然被 Gradle 的vaadin插件中的配置拉入。但是,在这两种情况下,我都使用war插件的providedCompile配置将它们排除在WAR之外。
所以我的问题是,如何防止 Tomcat/Eclipse 发布这些 JAR?Gradle 和 Tomcat/Eclipse 是如何通信的,或者它们是如何通信的?据我所知,Gradle 和 Tomcat/Eclipse 似乎只能通过.classpath间接通信,Gradle的eclipse插件会修改该类路径。另外,我尝试了Gradle 的eclipse-wtp插件。它似乎没有解决问题,因为有问题的 JAR 仍在被复制。实际上我什至不确定我是否需要使用这个插件,或者我是否可以简单地使用eclipse插件。
我还应该补充一点,我确实通过Eclipse Marketplace安装了Gradle Integration for Eclipse “插件” 。有了它,我使用了它添加的Configure -> Convert to Gradle Project选项以及它提供的Gradle -> Refresh Dependencies功能。除此之外,我发现它有点问题,所以我主要是通过命令行运行 Gradle。
下面是在我的机器上运行gradle -v的输出:
如果需要进一步说明,请告诉我。我认为我一定是做错了什么或缺少一些配置,因为我的情况肯定很常见。许多开发人员在 Eclipse 中使用 Tomcat 在本地测试 Web 应用程序,并且随着 Gradle 的流行,如果有人以前没有遇到过这种情况,我会感到惊讶。就 Tomcat/Eclipse 而言,我们切换到 Gradle 的主要区别似乎是我们的依赖项现在是从存储库加载的,而不是直接在源中链接。
任何帮助是极大的赞赏。
maven - tomcat7-maven-plugin / tomcat7:run 在哪里存储自定义 context.xml?
我喜欢使用 tomcat7-maven-plugin 进行开发,尤其是 mvn tomcat7:run / tomcat7:run-war 目标,以便快速测试我的应用程序,
这个插件允许你指定一个自定义的 Context.xml(这对于为 jndi 数据源提供存根非常方便)
我的问题是,我想不出一个存储这个 Context.xml 的好地方。它根本不适合 Maven 标准目录布局...
任何想法 ?最佳实践?:D
谢谢,
tomcat7 - 如何在嵌入式 tomcat 服务器中设置自定义领域?我正在使用 Spring Boot。
如何为嵌入式 tomcat 设置自定义领域?我正在使用 SpringBoot,但是没有看到通过 Embeddedservletcontainercustomizer 添加自定义领域的方法。
spring - Spring Boot / Security - 在嵌入式 Tomcat 上运行时无法自定义安全性
我有一个不能在嵌入式 tomcat 上运行的 Spring Boot 应用程序,但在托管的 tomcat 安装上运行良好。该设置在 Spring Boot 1.0.0.RELEASE 之前有效,但我无法确定发生了什么变化。
基本上发生的事情是我的应用程序没有“ServletContext”的概念,因此某些部分在加载时会爆炸。我已经看到其他一些帖子提到配置的顺序(特别是安全性)被实例化很重要,但我似乎无法解决这个问题。从 SecurityConfig.java 中删除 @Configuration 注释可以加载应用程序,但是我无法根据需要自定义安全性。此外,将 @Order 添加到该类没有任何效果。
整个项目都在这里托管,相关部分是pom.xml、DemoApplication.java和SecurityConfig.java
任何帮助,将不胜感激
堆栈跟踪:
java - 如何使用 Spring Boot 将文件放在 servlet 上下文路径中?
我正在尝试将 BlazeDS 添加到 Spring Boot 应用程序中。为此,我在配置中添加了“MessageBrokerServlet”:
servlet 被加载,但在运行时失败:
翻阅 BlazeDS 的源代码,我看到最后,代码使用了ServletContext#getResourceAsStream(path)
. 如何使 Spring Boot 中的嵌入式 tomcat 在该调用中返回某些内容?
我正在使用使用嵌入式 Tomcat 7.0.54 的 Spring Boot 1.1.1
heroku - 减少 Prod 配置文件上的嵌入式 Tomcat 启动时间
我正在运行一个基本的 Jhipster 生成的应用程序 - 有关设置详细信息,请参见底部 - 暂时将在单个基本 Heroku dyno 上运行。我使用嵌入式 tomcat 方法,除了生产配置文件的启动时间之外,一切都很好。
使用 Foreman 在我的机器上本地运行服务器,我得到以下结果:
- 在开发配置文件中,本地和远程 Heroku 数据库的启动时间都小于 30 秒。
- 在 prod 配置文件中,这两种情况都达到 >100 秒。
这会导致 Heroku 在启动完成之前终止实例,因为它们需要服务器在 60 秒内绑定到它们的指定端口。
因此,我的问题是如何/是否可以减少该时间。我知道 Heroku 提供了基于每个应用程序将超时间隔增加到 120 秒。不过,我希望有一种更优雅的方法,特别是因为我在基本的测功机上运行,所以超时扩展甚至可能不够用。
我也知道 Jetty/WebappRunner,但如果可能的话,我更愿意坚持使用更简单的嵌入式 tomcat 设置。
最后,我看到 Rails 有可能在启动期间使用代理来立即绑定到 Heroku 的端口——不过,我没有找到 Spring 等价物。
提前致谢!
设置
- jhipster v017.2
- 身份验证类型”:“令牌”
- hibernateCache”:“没有”
- clusteredHttpSession”:“否”
- 网络套接字”:“没有”
- 数据库类型”:“sql”
- devDatabaseType”:“postgresql”
- prodDatabaseType": "postgresql"
- 使用指南针”:真
- buildTool": "行家",
- 前端构建器”:“咕噜”
- java版本”:“7”
java - 如何告诉 Spring Boot 忽略 Jetty 并始终使用 Tomcat?
我有以下设置:
和 neo4j-browser 包括使用(目标是能够使用 REST 和 Web 浏览器来调试嵌入式数据库):
并开始使用:
Spring Boot 坚持尝试将 Jetty 作为 servlet 容器,即使主应用程序类有以下配置注释:
但是Spring使用的码头版本(8)不支持网络套接字,所以我得到了
如何告诉 Spring Boot 忽略 Jetty 并始终使用 Tomcat?
依赖树:
jndi - 如何使用嵌入式 Tomcat 容器在 Spring Boot 中创建 JNDI 上下文
}
我正在使用 spring boot 并尝试使用为我的数据源创建 JNDI 上下文的嵌入式 tomcat 启动:
如果我删除 @ImportResource 我的应用程序启动就好了。我可以连接到 tomcat 实例。我可以检查我所有的执行器端点。使用 JConsole,我可以连接到应用程序,我可以在 MBean 中看到我的数据源(Catalina -> Resource -> Context -> "/" -> localhost -> javax.sql.DataSource -> jdbc/mydatasource)
我还通过 JConsole 在这里显示了 MBean(Tomcat -> DataSource -> / -> localhost -> javax.sql.DataSource -> jdbc/mydatasource)
但是,当我 @ImportResource 实际通过 JNDI 查找 mydatasource 时,并没有找到它。
我导入的 xml 文件的相关部分
我在上面配置的 ContextResource 与我在将应用程序部署到 tomcat 容器时部署的 context.xml 中使用的参数完全相同。我导入的 bean 和我的应用程序在部署到 tomcat 容器时工作正常。
所以看起来我现在有一个上下文,但似乎命名不正确。我尝试了资源名称的各种组合,但似乎无法在此上下文中生成“comp”绑定。