- 浏览: 1253529 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (461)
- 心得体会 (166)
- Hibernate (9)
- Spring (12)
- Struts1 (3)
- Ajax (4)
- Java (54)
- 其他技术 (21)
- 数据库 (29)
- EXT (0)
- Struts2 (7)
- Xml (3)
- HTML (5)
- JavaScript (12)
- 面试相关 (3)
- BLOG (11)
- 计算机 (11)
- PMP (0)
- OGNL (1)
- LINUX (79)
- AIX (1)
- Ubuntu (14)
- Android (1)
- hadoop (3)
- LINUX debian (3)
- 心得体会 eclipse (2)
- JSTL (1)
- 心得体会 hadoop cdh3u5 (2)
- maven (5)
- Hive (1)
- 心得体会 工具使用 (3)
- spring data jpa Query By Example(QBE) (1)
- nginx (2)
- Apache (1)
- mysql (6)
- LINUX mysql (2)
- freemaker (1)
- 心得体会 FastDFS Nginx 断点续传 (1)
- LINUX FastDFS Nginx 断点续传 (1)
- 心得体会 Mybatis (2)
- 心得体会 mysql (4)
- php (1)
- logback 简介 (5)
- EL (1)
- Tomcat (2)
- win7 (1)
- LINUX maven (1)
- scrumworks (1)
- linux nginx (6)
- svn linux (1)
- mac (3)
- mac git (1)
- git (1)
- nexus (2)
- golang (1)
- LINUX Redis (1)
- mac oracle (1)
最新评论
-
a785975139:
有用
MySQL Error :SHOW PROFILES -
yijiulove:
弄了半天,参照你的方法解决了.特来感谢,知道可能是先加载,但是 ...
Spring和Mybatis整合时无法读取properties的处理方案 -
chenjinqi1987:
Missing com.sun.jdmk:jmxtools:jar:1.2.1 -
leifeng2:
请问怎么使用,运行之后d盘符没有生产音频文件呢?
java录音程序 -
sundful:
chenghong726 写道你好,我也遇到你这样的问题,按照 ...
Spring和Mybatis整合时无法读取properties的处理方案
在WEB应用中可通过ANT的API调用ant的工程配置文件来在线编译java文件,在工程配置文件中(如build.xml)将编译的class文件或者变更的xml文件直接复制到WEB-INF\classes中的对应目录,不用重新启动tomcat.
由于在平台应用中经常由用户定义表结构,并由表结构生成java实体类和hibernate映射文件,通过热编译部署的方式 可不用停止WEB应用,下面是在Java中调用ant的代码,注意这种方式不是调用ant的批处理的,也不提倡这样做,下面的方式可使用户通过点击WEB页面上的按钮来调用ANT编译:
package org.apache.easframework.common; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DefaultLogger; import org.apache.tools.ant.Project; import org.apache.tools.ant.ProjectHelper; public class CompileJava { public static synchronized boolean compile(String buildFilePath, String logFilePath) { File buildFile = new File(buildFilePath); Project project = new Project(); DefaultLogger consoleLogger = new DefaultLogger(); try { FileOutputStream fs = new FileOutputStream(logFilePath); PrintStream ps = new PrintStream(fs); consoleLogger.setErrorPrintStream(ps); consoleLogger.setOutputPrintStream(ps); } catch (FileNotFoundException e1) { e1.printStackTrace(); } consoleLogger.setMessageOutputLevel(Project.MSG_INFO); project.addBuildListener(consoleLogger); try { project.fireBuildStarted(); project.init(); ProjectHelper helper = ProjectHelper.getProjectHelper(); helper.parse(project, buildFile); System.out.println("默认target:"); System.out.println(project.getDefaultTarget()); //默认的target是help project.executeTarget("all"); //调用的task是all project.fireBuildFinished(null); return true; } catch (BuildException e) { project.fireBuildFinished(e); return false; } } public static String startCompile(String buildFile,String logFile) { if(CompileJava.compile(buildFile, logFile)) { return "编译成功!"; } else { return "编译失败!"; } }
/** * @param args */ public static void main(String[] args) { System.out.println("开始编译..."); boolean b = CompileJava.compile("D:/easdev/build/userbuild.xml", "D:/easdev/build/userbuild.log"); if(b) { System.out.println("编译成功!"); } else { System.out.println("编译失败!"); } System.out.println("结束编译..."); } }
下面是Java页面通过dwr调用此类的代码:
<%@ page contentType="text/html; charset=GBK"%> <%@ page import="org.apache.easframework.common.*" %> <%@ taglib prefix="ww" uri="webwork" %> <%@ include file="/common/head.jsp"%> <script type='text/javascript' src='<%=request.getContextPath()%>/js/util.js?Math.random();'></script> <script type='text/javascript' src='<%=request.getContextPath()%>/js/engine.js?Math.random();'></script> <script type='text/javascript' src='<%=request.getContextPath()%>/dwr/interface/CompileJava.js?Math.random();'></script> <meta http-equiv="epires" content=0> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <script language="JavaScript"> <!-- function compileJava() { CompileJava.startCompile("D:/easdev/build/userbuild.xml","D:/easdev/build/userbuild.log",callback); // document.listForm.elements['pageLoaderInfo.custSort'].value = sortValue; // document.listForm.operate.value="selectPageList"; // document.listForm.submit(); } function callback(data) { alert(data); } --> </script> <table><tr><td><input type="button" name="compile" value="编译" class="mybutton" onClick="compileJava()"></td></tr></table> <%@include file="/common/tail.jsp"%>
上面在编译成功时弹出编译成功的JS提示,否则提示编译失败
另外需要说明的是,要实现在线ANT编译,需要把ant工具相关的一些jar包复制到tomcat的shared\lib或者WEB-INF\lib中.
发表评论
-
Java数字、货币值和百分数等的格式化处理
2016-09-13 18:36 981如果我们用下列语句输出一个数 System.out.pri ... -
jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
2016-08-17 09:01 1167公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁 ... -
jstat查看jvm的GC情况[转]
2016-08-17 08:58 799jps(Java Virtual Machine Proce ... -
Java 7, Ubuntu 12.10 64bit issues
2015-04-13 11:57 1379At first Maven failed with the ... -
Map遍历的两种方式
2014-10-20 11:09 924第一种: Map map = new HashMap() ... -
对Map按key和value分别排序
2014-10-20 11:01 962一.理论准备 Map是键值对的集合接口, ... -
【转】程序包com.sun.image.codec.jpeg不存在 问题的完美解决
2014-10-09 13:43 1291maven下面编译失败,失败提示信息为:程序包com.sun ... -
关于系统读取properties配置文件的路径问题,包括打成jar包的运行文件
2014-10-08 18:05 1837在当前的一个项目中, ... -
java中的equals和hashCode(转载)
2014-01-15 14:01 882在某些时候,我们需要判断两个对象是否相等。Java的每个类都继 ... -
关于java中BufferedReader的read()及readLine()方法的使用注意
2013-06-05 16:08 2646以前学习的时候也没有太在意,在项目中使用到了才发现呵呵 1 ... -
java -cp
2013-04-19 12:03 1474java -cp classpath Specify a ... -
maven 打包可执行jar的方法
2013-04-19 12:02 48931.修改pom.xml增加如下内容 [html] ... -
Java 反射测试
2010-08-10 16:54 1310import java.lang.reflect.Invoca ... -
Creating Dynamic Web Project using Maven in Eclipse
2010-08-10 13:10 2873While using Maven as build tool ... -
建立你自己的本地仓库(Maven仓库管理-Nexus)
2010-07-02 13:34 4106这一个章节,我分两部分来介绍,首先介绍一下Maven的仓库,然 ... -
Java枚举类
2010-04-13 11:30 68191.创建一个最简单的枚 ... -
Java堆.栈和常量池 笔记
2010-04-07 09:26 12331.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程 ... -
探讨代理模式与Java反射机制的应用
2010-04-01 09:53 1096代理模式,相信大多数人都非常熟悉,常见的实现方式是通过公共接 ... -
Java的代理模式(通过公共接口实现)
2010-04-01 09:51 1241代理模式的一种常见的实现方案是,定义一个接口或抽象类,并派生出 ... -
Java多线程编程要点
2010-03-31 09:30 11201、 认识Thread和Runnable Java中实现 ...
相关推荐
本篇将详细介绍如何使用Ant编译Tomcat源码,以及如何在MyEclipse环境中导入并运行Tomcat源码。 首先,Ant是Apache软件基金会开发的Java项目自动化构建工具,它能够执行编译、测试、打包等任务。在Apache Tomcat的...
标题"ant+tomcat"暗示了我们将讨论如何使用Ant来管理和部署Tomcat中的Web应用。Ant以其XML格式的构建文件(build.xml)闻名,这使得项目构建的流程可以被清晰地定义和重用。 描述中的"ant+tomcatant+tomcatant+...
在本场景中,我们将探讨如何使用Ant来发布一个Web项目到Apache Tomcat服务器。 首先,理解Ant的基本结构是至关重要的。一个Ant项目通常包含一个build.xml文件,这是Ant执行的所有指令的中心。在这个文件中,我们...
《Ant构建Java Web应用:深度解析build.xml》 在软件开发过程中,自动化构建工具起着至关重要的作用,它们能够帮助开发者高效地管理项目,确保代码的编译、测试和部署等流程的一致性和可靠性。Apache Ant是Java领域...
在IT行业中,Tomcat是一款广泛使用的开源Web服务器和应用服务器,尤其在Java环境下,它扮演着重要的角色。本文将深入探讨“编译Tomcat源码所需jar包”这一主题,帮助开发者了解如何从源码构建Tomcat,以及在这个过程...
在Java Web开发中,Ant经常被用来打包、测试和部署Web应用。本文将详细介绍如何使用Ant脚本来实现远程部署到Tomcat服务器。 首先,Ant脚本的基础结构是XML格式,如以下示例所示: ```xml <project name="kit.web...
标题中的“ant远程上传并部署tomcat”是指使用Apache Ant工具执行自动化构建任务,将本地的Web应用(如WAR或EAR文件)传输到远程Linux服务器的Tomcat应用服务器上进行部署,并随后重启Tomcat服务以使更改生效。Ant是...
在IT行业中,Java Web开发是构建企业级应用的重要领域,而Eclipse、Tomcat和Ant则是这个领域中的“三剑客”,它们各自扮演着不可或缺的角色。这篇内容将深入探讨这三者的整合开发,并以党海峰的教程为指导,帮助...
**Ant编译打包详解** Ant 是 Apache 软件基金会的一个开源项目,它是一个基于Java的构建工具,类似于Make,但更为现代且专为Java设计。Ant使用XML来描述构建过程,包括编译、测试、打包和部署等任务,使得开发者...
Ant可以用来编译源码、打包Web应用(WAR文件),然后使用Ant的deploy任务将WAR文件部署到Tomcat服务器上。这样,整个构建和部署流程可以通过自动化脚本完成,极大地提高了开发效率。 总结来说,Ant和Tomcat是Java ...
本篇文章将深入探讨如何使用Apache Ant工具部署由Eclipse开发的Web工程到Apache Tomcat服务器上。Ant是一个基于Java的构建工具,它允许通过XML格式的构建文件(如`build.xml`)来定义构建任务,极大地简化了项目管理...
8. **学习价值**:编译Tomcat6不仅可以提升对Java Web服务器内部机制的理解,还有助于深入学习Java编程、软件构建流程以及服务器管理和优化技巧。 总的来说,“Tomcat6编译”是一个涉及Java Web开发基础、软件工程...
本指南将详细介绍如何在Eclipse环境中使用Maven进行Java Web应用的开发。 一、Maven的优势与基本概念 Maven通过项目对象模型(Project Object Model,POM)来管理项目配置,包括依赖、构建过程、插件等。它自动处理...
在本文中,我们将深入探讨如何使用Ant通过XML配置来启动和关闭Tomcat服务器,这一技能对于任何从事Java Web开发的人员来说都是至关重要的。 ### 一、Ant与Tomcat简介 #### Ant Ant(Another Neat Tool)是一种...
在Java开发中,Ant被广泛用于自动化构建过程,包括编译、打包、测试和部署等任务。这个压缩包文件"ant-autodeploy"很可能包含了Ant配置文件、脚本和相关的说明文档,用于实现自动化的编译、上传、启动和部署流程。 ...
在IT行业中,Tomcat是一个非常重要的应用服务器,它主要用于部署和运行Java Servlet和JavaServer Pages (JSP)。本文将详细讲解如何编译Tomcat依赖的包,以便于理解其工作原理并进行自定义配置。 首先,让我们了解...
在编译Tomcat源码时,需要确保系统已安装Ant,并且在项目环境中配置了相应的ANT_HOME环境变量。 二、Java开发工具包(JDK) Tomcat源码是用Java编写,因此,JDK是必不可少的。你需要一个支持你所编译的Tomcat版本的...
在IT行业中,Tomcat是一款广泛使用的开源Java应用服务器,特别是对于Servlet和JSP的应用部署。当我们需要对Tomcat进行自定义编译或者扩展其功能时,了解如何获取和使用必要的jar包是至关重要的。本篇将详细介绍...