昨天在网上研究了下关于将tomcat嵌入到主程序中进行运行,而不是像以前将一个web项目copy到tomcat中进行运行。之所以这样做的原因,即是因为项目部署到客户方,在进行更新的时候,需要手动地进行更新,再把相应代码copy到tomcat,然后再运行。运用embeded tomcat就可以将项目与tomcat分开,在进行更新时,先使用自定义的程序进行自动化更新,待更新完毕之后,再启动tomcat(或其它javaee容器)进行项目运行。
这样做的最终效果就是修改了项目的运行方式。原先的运行方式是以tomcat为中心,由tomcat来启动和终止项目,现在是由我们的启动程序为中心,由启动程序来负责启动和终止项目。就相当于现在流行的cs程序一样,有单独的启动脚本,在启动时进行环境预初始化,更新程序以及其它操作,待完成之后再进行最终的项目启动。
这篇主要讲解如何使用embeded tomcat在代码中进行启动和终止。网上的一般文章均为tomca5.x来做,这里使用了最新的tomcat7,因为tomcat7为embeded开发,单独发布了org.apache.tomcat.embed包,以进行独立的embed开发。以下是相应的maven包
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
< dependency >
< groupId >org.apache.tomcat.embed</ groupId >
< artifactId >tomcat-embed-core</ artifactId >
< version >7.0.2</ version >
</ dependency >
< dependency >
< groupId >org.apache.tomcat</ groupId >
< artifactId >tomcat-util</ artifactId >
< version >7.0.2</ version >
</ dependency >
< dependency >
< groupId >org.apache.tomcat.embed</ groupId >
< artifactId >tomcat-embed-jasper</ artifactId >
< version >7.0.2</ version >
</ dependency >
< dependency >
< groupId >org.apache.tomcat.embed</ groupId >
< artifactId >tomcat-embed-logging-juli</ artifactId >
< version >7.0.2</ version >
</ dependency >
|
使用了embed包中的core包,以及用于编译jsp的jasper包,然后是工具类以及进行上场记录的logging-juli包。开始写代码:
1
2
3
4
5
6
7
|
String catalina_home = "d:/" ;
Tomcat tomcat = new Tomcat();
tomcat.setHostname( "localhost" );
tomcat.setPort(startPort);
, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; font-size: 12px; white-space: pre !important; margin: 0p
分享到:
Global site tag (gtag.js) - Google Analytics
|
相关推荐
在嵌入式系统开发中,定时器是一种至关重要的组件,特别是在实时嵌入式操作系统(RTOS)中。"embeded_timer.rar"这个压缩包文件显然包含了关于如何在C++环境中实现嵌入式系统的定时器超时保护功能的相关资料。让我们...
"embeded-Linux-introduction-070822.rar_linux入门"这个压缩包文件很可能是针对初学者设计的一份教程资料,帮助他们踏入嵌入式Linux的世界。 首先,我们来看一下主要知识点: 1. **嵌入式系统**:嵌入式系统是...
- 进程通信——信号的使用:使用信号进行进程间通信。 - 防止僵死进程:解决僵尸进程问题。 #### 五、用户图形界面设计 - **QT应用编程**: - QT基础:了解QT框架的基本概念。 - 编写GUI应用程序:使用QT ...
在"Windows CE 嵌入式开发系列课程视频(2)"中,我们将重点关注如何使用eVC++进行实际的通信终端开发。通信终端通常涉及串行通信、网络通信或者蓝牙通信,这些都需要对底层硬件驱动和协议有深入了解。课程可能会涵盖...
10. **嵌入式开发环境**:开发者通常使用QEMU这样的模拟器进行开发和测试,或者使用如OpenEmbedded、Yocto Project等构建系统来自动化生成定制化的Linux发行版。 11. **调试工具**:GDB(GNU调试器)用于远程调试...
这个项目的目的是简化在各种开发环境中的集成工作,特别是在进行单元测试时,可以轻松地启动和停止数据库实例,便于进行数据初始化、测试执行和清理。 【压缩包子文件的文件名称列表】中提到的"postgresql-embedded...
本文探讨的基于MATLAB的嵌入式系统软件开发方法,将UML和MDA应用于复杂系统的软件开发,通过使用Simulink和Stateflow进行建模和仿真,成功实现了代码的高效生成。此方法不仅提高了开发效率,还确保了最终生成代码的...
《人工智能在嵌入式系统中的应用:探索A tiny embeded rtos》 嵌入式实时操作系统(RTOS,Real-Time Operating System)是专为在嵌入式设备上运行的应用程序提供服务的操作系统,它强调对时间约束的严格遵守,确保...
理解微控制器(MCU)和系统级芯片(SoC)的区别,以及如何选择合适的处理器来满足项目需求是嵌入式开发的基础。 2. **嵌入式编程语言**:嵌入式开发中,C语言是最常用的语言,因为它高效、接近硬件,便于底层操作。理解...
5. **编程语言**:C/C++在嵌入式开发中的应用,掌握指针、内存管理、面向对象编程等概念。 6. **硬件接口**:I/O端口操作、串行通信(UART)、并行通信(SPI、I2C)、GPIO、ADC、DAC等接口的原理及编程。 7. **...
这里的`-qvfb`表示使用虚拟帧缓冲进行模拟,这有助于在开发过程中无需频繁地将程序部署到目标设备上测试,提高开发效率。整个编译过程大约需要三小时。 #### 二、使用QLabel和QMovie进行绘图 在QT4环境中,使用`...
在Windows嵌入式开发领域,使用Microsoft的Embedded Visual C++(EVC)工具是一个常见的选择。本课程聚焦于如何利用EVC开发通讯终端及其应用实例,通过提供的资源,包括PPT、视频、文档和示例代码,我们可以深入理解...
总的来说,嵌入式Tomcat是Java Web开发中的一个重要概念,它简化了小型Web应用的开发和部署流程,使得开发者可以更加专注于业务逻辑,而不是服务器配置。通过Maven和自定义的启动脚本,可以轻松地实现Tomcat的集成和...
本演示介绍了如何使用Tuya IoT Platform,Tuya Smart应用以及IoTOS嵌入式Wi-Fi和Bluetooth Low Energy SDK开发环境监视器。 它使用Tuya Wi-Fi模块和Wi-Fi +低功耗蓝牙模块提供智能功能,例如远程数据监视和远程自动...
该演示基于Tuya Smart Cloud平台,Tuya Smart APP,IoTOS嵌入式WiFi&Ble SDK,使用Tuya WiFi / WiFi + BLE系列模块快速设置智能土壤湿度控制器,以通过手机和自动控制设备的浇水。 快速开始 编译并刻录 下载 将...
Tuya IoTOS嵌入演示WiFi和BLE光强度传感器 |介绍该演示基于Tuya Smart Cloud平台,Tuya Smart APP,IoTOS嵌入式WiFi&Ble SDK,使用Tuya WiFi / WiFi + BLE系列模块快速设置光传感器并实现对手机光强度数据的远程...
Tuya IoTOS嵌入式演示WiFi和BLE温湿度传感器 |介绍该演示基于Toodle Smart Cloud平台,Tuya Smart APP,IoTOS嵌入式WiFi&Ble SDK,使用Tuya WiFi / WiFi + BLE系列模块快速构建温度和湿度传感器,以实现对手机温度...
Tuya IoTOS嵌入演示WiFi和BLE水位传感器 |介绍该演示基于Tuya Smart Cloud平台,Tuya Smart APP,IoTOS嵌入式WiFi&Ble SDK,使用Tuya WiFi / WiFi + BLE系列模块快速设置水位传感器并通过手机实现对水位数据的远程...