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应用程序相关推荐

  1. java移动文件导致tomcat死掉_原 netty导致tomcat假死

    一.系统需求: 保证后台系统在大并发下正常处理每一个业务连接请求. 二.运作方式: Netty+tomcat.在tomcat的web.xml配置文件中配置一个Listener类用来在tomcat初始化 ...

  2. window 如何查看tomcat 实时日志_如何处理生产环境Tomcat的catalina.out日志?

    前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考. 作者:jmcui  来源:http://1t.click/x4q # 前言 随着每天业务的增长,Tomcat 的catalina.out ...

  3. java web构建_使用Java构建一个宁静的Web服务

    java web构建 介绍 (Introduction) Due to its exponential growth, REST(Representational State Transfer) ha ...

  4. ubuntu的web服务器_如何在Ubuntu上安装OpenLiteSpeed Web服务器?

    ubuntu的web服务器 Want to install OpenLiteSpeed Webserver on Ubuntu? Today we're going to do just that. ...

  5. python搭建web服务器_用Python建立最简单的web服务器

    利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令:python -m Web服务器模块 [端口号,默认8000]例如:python -m Sim ...

  6. 用python写web网页_从零开始,使用python快速开发web站点(1) | 学步园

    环境:ubuntu 12.04 python版本:  2.73 ok,首先,既然是从零开始,我们需要的是一台可以运行的python的计算机环境,并且假设你已经安装好了python, 然后,既然是快速开 ...

  7. web数字地球_成为地球上最糟糕的Web设计师的13个步骤

    这是新的......因为有对如何做好这些工作了这么多东西, 而且非常好,我决定走另一条路,并告诉你如何成为最糟糕的(自由)网络在地球上的设计师. 但为什么? 只是因为! 这就是为什么. 但是--要真正 ...

  8. docker nginx部署web应用_实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署...

    最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7 ...

  9. linux下tomcat部署java web项目_在linux下用tomcat部署java web项目的过程与注意事项

    在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...

最新文章

  1. 话里话外:为什么管理咨询业必须走专业化服务之路
  2. 关于tomcat8在windows2008下高并发下问题的解决方案
  3. linux pppd源码下载_pppd源代码分析
  4. Extjs 动态生成表格
  5. java 代码冲突检测_Java中常见的代码冲突
  6. python三大器_Python - 三大器 迭代器,生层器,装饰器
  7. mybatis内部类映射写法
  8. mysql中国菜刀连接_中国菜刀使用方法以及小技巧
  9. EditPlus运行java时如何从键盘输入数据
  10. Unable to start debugging The Silverlight Developer Runtime is not installed
  11. 分类预测 | MATLAB实现ELM极限学习机多特征分类预测
  12. 软件设计师教程笔记 持续更新
  13. ccf分区查询_CCF CSP和CCF CCSP简介
  14. MPEG-4、MPEG-4/AVC、H.264之间的联系与区别
  15. OpenLayers使用高德导航接口实现动画animate
  16. 无人车系统(一):运动学模型及其线性化
  17. 史上最快的内网视频会议部署方案-turbomeeting视频会议系统
  18. 一道智力题:有12个乒乓球,其中有一个不合规格,但不知是轻是重。要求用天平称三次,把这个坏球找出来。
  19. 留言送书:又一机器学习入门力作
  20. 北京理工大学计算机山西录取位次,北京理工大学录取分数线排名

热门文章

  1. java io系列09之 FileDescriptor总结
  2. Windows7下如何设置MyEclipse2014字体大小
  3. SaaS,PaaS,IaaS都是什么鬼
  4. 一张图告诉你什么是系统架构师
  5. 大二暑假工作三个月后辞职,总体感悟
  6. java中的泛型类型擦除
  7. 用python画出吉祥物
  8. 基本数据类型、包装类、String三者之间的相互转换
  9. linux跑循环脚本占内存,Linux下实现脚本监测特定进程占用内存情况
  10. Linux 退出保存/不保存