存档

‘软件相关’ 分类的存档

Ant发布Web应用

2009年10月20日

很早就听说了ant,一直用来只用它做一件事情,那就是编译项目中的java文件,偶然的机会看到可以用ant来发布web应用。

目前,我们用eclipse开发Web应用,因为eclipse的目录结构和tomcat下的web应用结构不同,所以在部署项目的时候,我们采取的方式是在tomcat下新建一个文件夹来存放该项目,然后将相应内容复制到此文件夹下,复杂而且浪费人力。下面介绍用ant发布Web应用的方法。

首先,总结一下将eclipse项目部署到tomcat下需要做的工作,共需要如下五步:

  1. 在tomcat下新建一个空目录作为web应用的根目录,例如为test。
  2. 将WEB-INF目录及其子目录和文件复制到WEB-INF目录下,包括lib、classes目录及web.xml等。
  3. 将build目录下的classes目录中的所有文件和目录复制到web应用(test)的WEB-INF目录下的classes文件夹中。
  4. 将WebContent目录中除了WEB—INF和META-INF之外的所有目录和文件全部复制到Web应用根目录中。

在上述需求分析下,编写脚本(写build.xml)文件,build.xml文件内容如下:

?Download build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<project name="helloapp" default="root" basedir=".">
      <property name="tomcat.home" value="D:\Program Files\Apache Software Foundation\Tomcat 5.5" />
      <property name="app.home" value="." />
      <property name="src.home" value="${app.home}/src"/>
      <property name="lib.home" value="${app.home}/WebContent/WEB-INF/lib"/>
      <property name="classes.home" value="${app.home}/build/classes"/>
      <property name="WebAppRoot" value="${tomcat.home}/webapps/test"></property>
	<target name="Init">
	      <mkdir dir="${WebAppRoot}" />		
	</target>
	<!-- ========= "Copye" Target ============ -->
	<target name="Copy" depends="Init">		
	      <copy flatten="false" todir="${WebAppRoot}" overwrite="true">
		<fileset dir="WebContent">
		<!--复制lib下的文件 -->
		           <include name="WEB-INF/lib/*" />
		<!--复制WEB-INF目录下的文件 -->
		          <include name="WEB-INF/classes/**" />
		      <include name="WEB-INF/web.xml" />
		</fileset>
	      </copy>
	<!--复制build目录下的classes下的文件 -->
	         <copy flatten="false" todir="${WebAppRoot}/WEB-INF" overwrite="true">
		<fileset dir="build">
		       <include name="classes/**/*" />						
		</fileset>
		</copy>	
                 <!--复制classes下的文件 -->
	       <copy flatten="false" todir="${WebAppRoot}" overwrite="true" includeemptydirs="false">
		<fileset dir="WebContent">
		        <exclude name="WEB-INF/**/*" />
		        <exclude name="META-INF/**/*" />
		</fileset>
	     </copy>
	<!--复制src下的文件 -->
	        <copy flatten="false" todir="${WebAppRoot}/src" overwrite="true">
		<fileset dir="src">
		         <include name="**" />				
		</fileset>
	    </copy>
             </target>
	<target name="root" depends="Copy">
	</target>
</project>

之后,将build.xml文件放到web应用的根目录下,右击选择Run as—ant build,项目就可以发布到tomcat下了。下次再用的时候只需要复制该xml文件到项目目录下,修改一下要发布的web应用名称即可,很好用吧,相信你会喜欢它的~~

软件相关

“Processing Dirty Regions”问题处理方法

2009年6月9日

         前几天,用eclipse的时候,发现总是提示“Processing Dirty Regions”错误,而且这个错误只有在打开jsp页面的时候才会出现,虽然右击选择Jsp Editor也可以打开相应的jsp页面,但问题总得解决的。上网搜了一下,发现这是由于MyEclipse和Eclipse中组件or.eclipse.wst.sse.ui版本冲突引起的。解决办法如下:

         在MyEclipse目录下找到文件or.eclipse.wst.sse.ui_1.0……移动到其他位置或者删除即可。原来是我之前曾经用过MyEclipse插件,而没有删除造成了冲突。

         其实,在eclipse里面,不仅eclipse本身和eclipse插件之间会形成冲突,而且eclipse插件之间也会产生冲突,eclipse插件总是会启用最新安装或者更新下载的插件类,这样可能造成其他的插件不兼容这个更新的插件类。因此以后遇到类似的问题,可以从这个方面入手。

软件相关 ,

SVN建立版本仓库

2009年5月6日

        本文首先介绍在已安装有Apache的机器上建立版本仓库的方法,使用版本仓库已经有好久了,但始终没有自己亲自建过,今天请教了史师姐,才知道怎么建。
       1.建立仓库的位置。
      在服务器端目的盘符下建立一个文件夹,文件夹的名字可以是项目的名称,也可以是其他名称,一般习惯取为项目名称。文件夹建立完成之后,右击选择TortoiseSVN下的create repository here……,然后点击确认之后就可以了。例如我们在D盘下建立一个test文件夹。
       2.配置httpd.cogf文件。
       找到Apache安装目录conf文件夹下的httpd.conf文件,在文件末尾处配置Location元素。

?Download svn.txt
1
2
3
4
5
6
7
8
9
10
<Location /test>
DAV svn
SVNListParentPath on
SVNPath D:\test
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile D:\test\passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>

       

       /test是可以修改的,其中/test是版本仓库的URL地址,即通过该名称来访问版本仓库;D:\test是项目路径;D:\test\passwd为用户信息存放目录。
      3.拷贝passwd文件
       将安装目录bin文件夹下passwd文件拷贝到在第二步中规定的位置。
      4.重启Apache
      然后可以在客户端使用版本仓库的URL地址checkout功能来测试版本仓库是否安装成功。

软件相关 ,

tomcat下多个端口,多个应用(转载)

2009年4月26日

         本文转载于实验室小高同学的博客,http://blog.sina.com.cn/s/blog_49f485700100egj0.html,因为这篇博文介绍的已经很详细了,我就直接转载来了。

         目的:完成不同的应用使用不同的端口访问。例如:sfmanagement这个项目我使用8080访问,而qdsf这个项目我使用8081访问。

        实现步骤:

              (1)由于正常情况下我们是将项目放在webapps下面。如果想不同的应用使用不同的端口,我们需要在与webapps同层的目录上建立我们的目录,例如:test

               目录结构如下: D:\Program Files\Java\tomcat\webapps        D:\Program Files\Java\tomcat\test问。例如:sfmanagement这个项他们属于同一层上。

              (2)在test下放我们的项目。

               把qdsf这个项目放在test下,形成了以下目录结构:D:\Program Files\Java\tomcat\test\qdsf,而sfmanagement继续放在webapps下面:D:\Program   Files\Java\tomcat\webapps\sfmanagement

             (3)修改D:\Program Files\Java\tomcat\conf下的server.xml。

              加上一个Service,注意修改:service name,connect port,engine name,defaultHopst,Host name,appBase.

              <Service name=”test”><Connector port=”8081″/>

         <Engine name=”Catalina.test”  defaultHost=”localhost.test”>//这里不要跟前面的8080的重复了。否则,会出现异常

         <Realm className=”org.apache.catalina.realm.UserDatabaseRealm” resourceName=”UserDatabase”/>

       <Host name=”localhost.test” appBase=”test”>//这里的name也要改一下,不要跟8080的name相同,appBase就是我们建立的目录。

           **注意**:

            appBase这个地放如果还是了webapps,那么就相当于给webapps下的应用2个端口,通过这两个端口我都可以访问,即通过http://127.0.0.1:8080/sfmanagement也可以通过http://127.0.0.1:8081/sfmanagement都可以访问。
      </Host>

    </Engine>

  </Service>

======================================

(4)此时修改完毕虽然,可以正常执行,但是,当使用http://127.0.0.1:8081的时候,不会出现tomcat的页面,这是我们需要把webapps下的ROOT拷到test下,

(5)通过http://127.0.0.1:8080/sfmanagement

http://127.0.0.1:8081/qdsf/index.wml来访问,

 

软件相关 ,

word无法读取文档,文档可能损坏的解决方法

2009年4月10日

         今天上午去学院交一份材料,学院老师遇到了一个问题,所有的word文档都打不开了,提示“上次打开文档时出现严重错误,可以点击是……”,然后无论点是否对话框都消失了,没有任何的反应。我的第一反应是不是中毒了。心里也没当回事,回到实验室突然想起来了,就让老师把那个文档发给我看看,是不是能够打开,结果打开的时候就出现了提示”word无法读取文档,文档可能损坏“的提示。

         解决方法如下:

         打开word程序——选择文件菜单下的打开——选中所需文档——点击右下角打开下拉列表中的打开并修复,就可以打开所需文档了。
         关闭之后,如果下次还是不能打开,那就另存为一个文档,这就没有问题了。

软件相关 ,