tomcat web应用_具有可执行Tomcat的独立Web应用程序
tomcat web应用
在部署应用程序时,简单性是最大的优势。 您将了解到,尤其是在项目发展且需要在环境中进行某些更改时。 将您的整个应用程序打包到一个独立且自足的JAR中似乎是个好主意,特别是与在目标环境中安装和升级Tomcat相比。 过去,我通常将Tomcat JARs
包含在Web应用程序中,并使用Tomcat API编写瘦命令行运行程序。 幸运的是,有一个tomcat7:exec-war
maven目标可以做到这一点。 它需要您的WAR工件并将其与所有Tomcat依赖项打包在一起。 最后,它还包含要显示的Tomcat7RunnerCli
Main-class
。
想尝试一下吗? 接受您现有的WAR项目并将以下内容添加到pom.xml
:
<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.0</version><executions><execution><id>tomcat-run</id><goals><goal>exec-war-only</goal></goals><phase>package</phase><configuration><path>/standalone</path><enableNaming>false</enableNaming><finalName>standalone.jar</finalName><charset>utf-8</charset></configuration></execution></executions>
</plugin>
运行mvn
package,几秒钟后,您将在目标目录中找到闪亮的standalone.jar
。 运行您的Web应用程序从未如此简单:
$ java -jar target/standalone.jar
…您可以浏览localhost:8080/standalone
。 尽管path
参数的文档说(强调我的):
用于正在运行的Web应用程序的webapp上下文路径。 将Webapp存储在exec jar中的名称。 不要在我们两个人之间使用 /,毕竟<path>/</path>
似乎可以工作。 事实证明,内置main
类实际上要灵活一些。 例如,您可以说(我希望这是不言而喻的):
$ java -jar standalone.jar -httpPort=7070
这有什么runnable
JAR
所做的就是第一个解压缩它的WAR文件中的一些目录( extract
通过default1
),并将其部署到Tomcat -所有必需的Tomcat JARs
也包括在内。 空的standalone.jar(内部几乎没有KiB WAR)的权重约为8.5 MiB
如果您声称将每个版本的整个Tomcat与应用程序一起推送是浪费的,那么就不算多。
在谈论Tomcat JARs
,您应该想知道如何选择此runnable
包含的Tomcat版本? 不幸的是,我找不到任何简单的选项,因此我们必须回到显式重新定义插件依赖项(2.0版已将7.0.30 Tomcat硬编码)。 这很无聊,但没有那么复杂,可能对将来的参考很有用:
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><tomcat7Version>7.0.33</tomcat7Version>
</properties><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.0</version><executions><execution><id>tomcat-run</id><goals><goal>exec-war-only</goal></goals><phase>package</phase><configuration><path>/standalone</path><enableNaming>false</enableNaming><finalName>standalone.jar</finalName><charset>utf-8</charset></configuration></execution></executions><dependencies><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-core</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-util</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-coyote</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-api</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jdbc</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-dbcp</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-servlet-api</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jsp-api</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jasper</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jasper-el</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-el-api</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-catalina</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-tribes</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-catalina-ha</artifactId><version>${tomcat7Version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-annotations-api</artifactId><version>${tomcat7Version}</version></dependency></dependencies></plugin></plugins>
</build>
在下一篇文章中,我们将学习如何处理出现在终端java.util.logging
这些讨厌的Tomcat内部日志( java.util.logging
…)。与此同时,我发现并报告了MTOMCAT-186关闭可执行文件JAR不会调用ServletContextListener.contextDestroyed()
–看看这是否适合您。
1 -这可能是一个好主意,用指定不同的目录- extractDirectory
与每次重新启动前清理- resetExtract
。
参考: Java和社区博客中来自JCG合作伙伴 Tomasz Nurkiewicz的具有可执行Tomcat的独立Web应用程序 。
翻译自: https://www.javacodegeeks.com/2012/11/standalone-web-application-with-executable-tomcat.html
tomcat web应用
tomcat web应用_具有可执行Tomcat的独立Web应用程序相关推荐
- java移动文件导致tomcat死掉_原 netty导致tomcat假死
一.系统需求: 保证后台系统在大并发下正常处理每一个业务连接请求. 二.运作方式: Netty+tomcat.在tomcat的web.xml配置文件中配置一个Listener类用来在tomcat初始化 ...
- window 如何查看tomcat 实时日志_如何处理生产环境Tomcat的catalina.out日志?
前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考. 作者:jmcui 来源:http://1t.click/x4q # 前言 随着每天业务的增长,Tomcat 的catalina.out ...
- java web构建_使用Java构建一个宁静的Web服务
java web构建 介绍 (Introduction) Due to its exponential growth, REST(Representational State Transfer) ha ...
- ubuntu的web服务器_如何在Ubuntu上安装OpenLiteSpeed Web服务器?
ubuntu的web服务器 Want to install OpenLiteSpeed Webserver on Ubuntu? Today we're going to do just that. ...
- python搭建web服务器_用Python建立最简单的web服务器
利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令:python -m Web服务器模块 [端口号,默认8000]例如:python -m Sim ...
- 用python写web网页_从零开始,使用python快速开发web站点(1) | 学步园
环境:ubuntu 12.04 python版本: 2.73 ok,首先,既然是从零开始,我们需要的是一台可以运行的python的计算机环境,并且假设你已经安装好了python, 然后,既然是快速开 ...
- web数字地球_成为地球上最糟糕的Web设计师的13个步骤
这是新的......因为有对如何做好这些工作了这么多东西, 而且非常好,我决定走另一条路,并告诉你如何成为最糟糕的(自由)网络在地球上的设计师. 但为什么? 只是因为! 这就是为什么. 但是--要真正 ...
- docker nginx部署web应用_实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署...
最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7 ...
- linux下tomcat部署java web项目_在linux下用tomcat部署java web项目的过程与注意事项
在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...
最新文章
- 话里话外:为什么管理咨询业必须走专业化服务之路
- 关于tomcat8在windows2008下高并发下问题的解决方案
- linux pppd源码下载_pppd源代码分析
- Extjs 动态生成表格
- java 代码冲突检测_Java中常见的代码冲突
- python三大器_Python - 三大器 迭代器,生层器,装饰器
- mybatis内部类映射写法
- mysql中国菜刀连接_中国菜刀使用方法以及小技巧
- EditPlus运行java时如何从键盘输入数据
- Unable to start debugging The Silverlight Developer Runtime is not installed
- 分类预测 | MATLAB实现ELM极限学习机多特征分类预测
- 软件设计师教程笔记 持续更新
- ccf分区查询_CCF CSP和CCF CCSP简介
- MPEG-4、MPEG-4/AVC、H.264之间的联系与区别
- OpenLayers使用高德导航接口实现动画animate
- 无人车系统(一):运动学模型及其线性化
- 史上最快的内网视频会议部署方案-turbomeeting视频会议系统
- 一道智力题:有12个乒乓球,其中有一个不合规格,但不知是轻是重。要求用天平称三次,把这个坏球找出来。
- 留言送书:又一机器学习入门力作
- 北京理工大学计算机山西录取位次,北京理工大学录取分数线排名