- 浏览: 258415 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (289)
- java (72)
- oracle (3)
- mysql (5)
- spring (28)
- hibernate (2)
- osgi (0)
- linux (2)
- ExtJs (1)
- jvm (0)
- mybatis (7)
- 分布式 (11)
- MINA (6)
- apache+tomcat (13)
- js+htm (7)
- android (44)
- http (1)
- hbase+hdoop (0)
- memcache (13)
- search (27)
- 部署及性能 (12)
- mongoDB (2)
- 多线程 (12)
- 安全管理验证 (9)
- struts (1)
- webservice (0)
- easyUI (1)
- spring security (16)
- pattern (6)
- 算法 (2)
最新评论
-
lzh8189146:
CommonsHttpSolrServer这个类,现在是不是没 ...
CommonsHttpSolrServer -
xiaochanzi:
我按照你的方法试了下,tomcat6可以发布,但是访问任何网页 ...
基于内嵌Tomcat的应用开发 -
phoneeye:
麻烦你,如果是抄来的文章,请给出来源。谢谢
ant 两则技巧 -
neverforget:
转载不注明出处
Spring Security3.1登陆验证 替换 usernamepasswordfilter -
liang1022:
若不使用eclipse ,如何在命令行下 运行服务端程序 ?
WebService CXF学习(入门篇2):HelloWorld
基于内嵌Tomcat的应用开发
-
博客分类:
- 快速开发
为什么使用内嵌Tomcat开发?
开发人员无需搭建Tomcat的环境就可以使用内嵌式Tomcat进行开发,减少搭建J2EE容器环境的时间和开发时容器频繁启动所花时间,提高开发的效率.
怎么搭建内嵌Tomcat环境呢?(以tomcat6和tomcat7为例)
在开发工程(xxxx)的根目录下新建以下的目录:
xxxx/Embedded/conf
xxxx/Embedded/lib
xxxx/Embedded/webapps
xxxx/Embedded/work
apache-tomcat-6.0.32
apache官方只提供了apache-tomcat5和apache-tomcat7的内嵌版本,apache-tomcat6是没有的,但我们同样可以提供内嵌版本。
1. 将apache-tomcat-6.0.32\lib下所有的jar包拷到xxxx/Embedded/lib下
- annotations-api.jar
- catalina.jar
- catalina-ant.jar
- catalina-ha.jar
- catalina-tribes.jar
- ecj-3.3.1.jar
- el-api.jar
- jasper.jar
- jasper-el.jar
- jsp-api.jar
- servlet-api.jar
- tomcat-coyote.jar
- tomcat-dbcp.jar
- tomcat-i18n-es.jar
- tomcat-i18n-fr.jar
- tomcat-i18n-ja.jar
2.将apache-tomcat-6.0.32\bin下的tomcat-juli.jar包拷到xxxx/Embedded/lib下。
3.将JDK安装目录下的lib中的tools.jar包拷到xxxx/Embedded/lib下。
4.将apache-tomcat-6.0.32\conf下的context.xml和web.xml文件拷贝到xxxx/Embedded/conf下。
5.将xxxx/Embedded/lib下的所有Jar包都加到工程的classpath下。
6.在工程中新建EmbeddedTomcat类,该类代码如下:
- public class EmbeddedTomcat {
- private static String CONTEXT_PATH = "/TestForTomcat6";
- private static String PROJECT_PATH = System.getProperty("user.dir");
- private static String WEB_APP_PATH = PROJECT_PATH + File.separatorChar + "WebRoot";
- private static String TOMCAT_HOME = PROJECT_PATH + File.separatorChar + "Embedded" + File.separatorChar + "Tomcat";
- private static String ENCODING = "UTF-8";
- private static int TOMCAT_PORT = 9080;
- // 开始嵌入式Tomcat服务器
- public static void startTomcat() throws Exception {
- try {
- long startTime = System.currentTimeMillis();
- Embedded tomcat = new Embedded();
- // 设置Tomcat的工作目录:工程根目录/Embedded/Tomcat
- tomcat.setCatalinaHome(TOMCAT_HOME);
- System.out.println("TOMCAT_HOME:" + TOMCAT_HOME);
- // 产生Tomcat引擎
- Engine engine = tomcat.createEngine();
- //"localhost"对应的是work下的"Catalina"
- engine.setName("Catalina");
- //创建Host,设置Host的工作目录
- Host host = tomcat.createHost("localhost", tomcat.getCatalinaHome());
- host.setAutoDeploy(true);
- //把Host加入Engine
- engine.addChild(host);
- engine.setDefaultHost(host.getName());
- //创建Context,并加入Host中
- Context context = null;
- context = tomcat.createContext(CONTEXT_PATH, WEB_APP_PATH);
- host.addChild(context);
- host.addChild(tomcat.createContext("", ""));
- if (!new File(WEB_APP_PATH).exists()) {
- System.err.println("请检查应用的目录以及相关资源是否存在.");
- }
- tomcat.addEngine(engine);
- Connector connector = tomcat.createConnector((java.net.InetAddress) null, TOMCAT_PORT, false);
- connector.setURIEncoding(ENCODING);
- connector.setUseBodyEncodingForURI(true);
- tomcat.addConnector(connector);
- AprLifecycleListener listener = new AprLifecycleListener();
- tomcat.addLifecycleListener(listener);
- tomcat.start();
- //停住一个小时(3600秒)
- Thread.sleep(3600000);
- tomcat.stop();
- System.err.println("Tomcat started in " + (System.currentTimeMillis() - startTime) + " ms.");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- try {
- EmbeddedTomcat.startTomcat();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
apache-tomcat-7.0.22
1.请先到apache-tomcat官方网站下载apache-tomcat-7.0.23-embed内嵌版本,解压后将apache-tomcat-7.0.23-embed下的所有jar包拷贝到xxxx/Embedded/lib下,具体的jar如下:
- ecj-3.7.jar
- tomcat-dbcp.jar
- tomcat-embed-core.jar
- tomcat-embed-jasper.jar
- tomcat-embed-logging-juli.jar
- tomcat-embed-logging-log4j.jar
2.将apache-tomcat-7.0.23/conf下的context.xml和web.xml文件拷贝到xxxx/Embedded/conf下。
3.将xxxx/Embedded/lib下的所有Jar包都加到工程的classpath下。
4.在工程中新建EmbeddedTomcat类,该类代码如下:
- public class EmbededTomcat {
- private final Log log=LogFactory.getLog(getClass());
- private static String CONTEXT_PATH = "/TestForTomcat7";
- private static String PROJECT_PATH = System.getProperty("user.dir");
- private static String WEB_APP_PATH = PROJECT_PATH + File.separatorChar + "WebRoot";
- private static String CATALINA_HOME = PROJECT_PATH + "/Embedded/Tomcat";
- private Tomcat tomcat = new Tomcat();
- private int port;
- public EmbededTomcat(int port){
- this.port=port;
- }
- public void start()throws Exception{
- tomcat.setPort(port);
- tomcat.setBaseDir(CATALINA_HOME);
- tomcat.getHost().setAppBase(WEB_APP_PATH);
- try{
- StandardServer server = (StandardServer)tomcat.getServer();
- AprLifecycleListener listener = new AprLifecycleListener();
- server.addLifecycleListener(listener);
- tomcat.addWebapp(CONTEXT_PATH, WEB_APP_PATH);
- }catch(ServletException e){
- e.printStackTrace();
- log.error(e.getMessage());
- throw e;
- }
- try{
- tomcat.start();
- tomcat.getServer().await();
- }catch(LifecycleException e){
- e.printStackTrace();
- log.error(e.getMessage());
- throw e;
- }
- log.info("Tomcat started.");
- }
- public void stop()throws Exception{
- try{
- tomcat.stop();
- }
- catch(LifecycleException ex){
- ex.printStackTrace();
- log.error(ex.getMessage());
- throw ex;
- }
- log.info("Tomcat stoped");
- }
- public void setPort(int port){
- this.port=port;
- }
- public int getPort(){
- return this.port;
- }
- public static void main(String[] args) throws Exception {
- EmbededTomcat embededTomcat = new EmbededTomcat(7080);
- embededTomcat.start();
- }
- }
遇到问题怎么办?
1. 内嵌Tomcat启动时报OutOfMemoryError异常,如何设置JVM的内存大小?
答:请按照以下步骤设置JVM的内存大小:
(1)点击“Window->Preferences->Java->Installed JREs”可以看到所有的JRE。
(2)点中当前使用的JRE,再点击右边的“Edit”。
(3)为该JRE的“Default VM Arguments”配置参数值:-Xmx1024M -Xms512M -XX:MaxPermSize=256m。
2.如何配置数据库的JNDI数据源?
答:打开XXXX\Embedded\Tomcat\conf\context.xml配置文件,添加<Resource>节点的属性来新建数据源配置,如下:
- <Resource name="xxxxDataSource" auth="Container"
- type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
- url="jdbc:oracle:thin:@localhost:1521:xxxxx"
- username="xxxx" password="xxxx" maxActive="15" maxIdle="10" initialSize="2"
- testWhileIdle="true" validationQuery="select 1 from dual" testOnBorrow="true"/>
发表评论
-
tomcat 学习
2012-05-28 08:39 573http://blog.163.com/haizai219@1 ... -
xml加载顺序
2012-05-28 08:38 604http://czb128abc.blog.163.com/b ... -
tomcat eclipse 启动 设置 JAVA_HOME
2012-04-14 19:12 921对于使用IDE开发的程序员来讲,并不是所有人都对自己用来 ... -
Tomcat DBCP 连接池参数列表
2012-04-12 08:02 718Tomcat DBCP 连接池参数列表 分 ... -
在J2EE Web 应用中使用基于CAPTCHA 的授权模块
2012-04-06 08:49 1004在J2EE Web 应用中使用基于CAPTCHA 的授权 ... -
[转载]Tomcat类加载机制
2012-03-29 08:32 538[转载]Tomcat类加载机制 To ... -
Tomcat中详细配置数据源及其原理解析
2012-02-14 13:04 754Tomcat中数据源的配置及原理 一:数据源 ... -
Tomcat6 中使用Jndi获取数据库连接
2012-03-20 08:15 874很久没有使用jndi进行开发了,近期有个老的项目维护发 ... -
Tomcat与Java Web开发技术详解
2012-02-14 13:02 1230转载:http:// ... -
apache workers.properties
2012-02-12 18:53 1468[转]http://hi.baidu.com/youdia ... -
apache+tomcat 集成 下载jk
2012-02-12 18:09 642http://mirror.bjtu.edu.cn h ... -
Apache+Tomcat集群配置负载均衡器
2012-02-12 12:50 1331首先非常感谢这位朋友发的帖子。这也是让我成功的让Apache和 ...
相关推荐
为什么使用内嵌Tomcat开发?...基于内嵌apache-tomcat-8.0.24的应用开发解决了网上提供省了el-ri相关jar 包的问题,此项目可以直接部署到myeclispe中直接运行EmbededTomcat类就可以执行内嵌tomcat运行web程序
3. **Spring Boot与内嵌Tomcat**: Spring Boot默认集成了内嵌Tomcat,使得开发基于Spring的应用变得简单。通过`@SpringBootApplication`注解,Spring Boot会自动配置并启动内嵌的Tomcat服务器。 4. **META-INF目录*...
Spring Boot 是一个基于 Spring 框架的快速开发工具,它极大地简化了创建独立的、生产级别的基于 Spring 应用的流程。内嵌的 Tomcat 容器是 Spring Boot 默认的 Web 服务器,使得我们可以无需额外配置即可运行 Java ...
SpringMVC是一款强大的Java web开发框架,用于构建高效、可维护的Web...通过实践这些内容,你不仅可以理解Spring MVC的架构,还能熟练运用IOC和AOP解决实际问题,同时掌握如何在应用中内嵌Tomcat服务器,提升开发效率。
3. **启动脚本**:用于启动内嵌Tomcat的Java Main类或者脚本。 4. **依赖库**:JFinal和Tomcat的jar文件,以及其他可能的第三方库。 5. **测试资源**:例如HTML、CSS、JavaScript等前端资源,以及用于测试的...
而Tomcat是一款流行的开源Web服务器和Servlet容器,Spring Boot默认集成了它,方便我们开发和部署基于JSP的Web应用。 首先,我们需要了解Spring Boot的基本结构。一个标准的Spring Boot项目通常包含`pom.xml`(如果...
Spring Boot是Java领域的一款热门应用开发框架,它简化了基于Spring的应用程序的初始设置和配置。这个名为"Spring Boot应用开发框架 v2.7.17.zip"的压缩包包含了该版本的源码和相关文档,是学习和开发基于Spring ...
Spring Boot默认内置了Tomcat服务器,并提供了丰富的配置选项,使得开发者可以轻松创建基于Spring的应用程序,同时享受到嵌入式服务器带来的便利。 为了使用嵌入式Tomcat,开发者需要了解以下关键知识点: - **...
5. 容器内嵌:更容易将Tomcat内嵌到其他应用中,如Spring Boot。 6. 性能提升:通过优化内存管理和垃圾回收,进一步提升了性能。 **对比与选择** Tomcat6适用于那些只需要Servlet 2.5和JSP 2.1规范支持的项目,或者...
《Java Web应用开发技术实用教程》是一本专为学习Java Web开发的初学者和进阶者编写的教材,由王红老师倾力打造。这本书涵盖了Java Web开发的基础知识到高级技术,旨在帮助读者掌握构建动态网页和Web应用程序的技能...
本文将深入探讨一个基于Java的为APP开发HTTP API应用的脚手架模板,这是一种预先配置好的框架,旨在加速开发过程,提供标准化的代码结构和最佳实践。 首先,我们来理解“脚手架”一词。在软件开发中,脚手架是一种...
这个依赖包含了Spring Web模块,其中就包含了对内嵌Tomcat的支持。一旦项目构建完成,Spring Boot的内置Tomcat就会自动启动,你可以通过`http://localhost:8080/your-app-context-path`来访问你的应用,其中`your-...
默认情况下,SpringBoot会自带一个内嵌的Tomcat服务器,允许你直接运行`java -jar`命令启动应用。然而,有时候我们需要将应用部署到独立的、集群环境中的Tomcat服务器上,以便更好地进行资源管理和扩展。 1. **创建...
【标题】中的“基于 Spring Boot 构建的 Java ...综上所述,基于Spring Boot的Java Web平台为企业级应用开发提供了强大的工具集,能够帮助开发者快速构建稳定、安全、高效的应用程序,同时保持良好的可维护性和扩展性。
SpringBoot 默认内置了 Tomcat,但在这个实例中,应用被配置为可以部署到外部的 Tomcat 6 实例,而不是依赖内嵌的服务器。 描述中提到 "用springboot实现restful接口",这表明应用提供了一组 RESTful API。REST...
在IT行业中,集成不同的组件是常见的需求,特别是对于企业级应用服务器如Tomcat和消息中间件如ActiveMQ。...通过正确的配置,开发者可以在Tomcat环境中轻松地实现基于消息的通信,提升系统的稳定性和可靠性。
3. **与Spring Boot集成**:Spring Boot默认集成了内嵌的Tomcat服务器,简化了Web应用的开发和部署。 **六、Tomcat故障排查** 1. **查看错误日志**:通过`catalina.out`或特定的错误日志文件查找问题。 2. **分析...
1. `tomcat:run`:这个目标会启动一个内嵌的Tomcat服务器,并自动部署你的Web应用。这在开发过程中非常有用,因为它允许快速地进行迭代开发和测试。 2. `tomcat:deploy`:此目标用于将你的Web应用部署到远程或本地...
它预设了许多默认配置,如自动配置、内嵌Tomcat服务器等,极大地减少了开发者的配置工作,使得开发更加高效。SpringBoot的核心特性包括:自动配置、起步依赖、命令行接口、内嵌Web服务器等,这些都为快速构建可运行...
4. **管理界面**:Tomcat提供了一个基于Web的管理界面(Manager应用),用于部署、管理应用程序和监控服务器状态。 5. **配置文件**:主要通过`server.xml`、`web.xml`等配置文件进行设置,这些文件控制着服务器的...