上一级 首页 下一级

调试、发布和运行

6.1  配置和运行

本项目由于只使用了J2EE中的Web框架,因此可以使用专门的Web容器服务器。Tomcat (http://jakarta.apache.org/tomcat/)是免费开源的Web服务器Jakarta项目中的最著名的子项目它还是Sun公司推荐的servletjsp容器http://java.sun. com/products/jsp/tomcat/

很多人一直对免费或开放源代码的产品实现商业应用存有疑惑,但是Tomcat作为类似Apache一样的Java服务器,经过几年来大量使用证明,其稳定性和成熟性是有目共睹的。经过最新的研究表明:系统在并发用户100以下时,Tomcat的响应时间和商业服务器相差不多,可见Tomcat是能够大量被应用到中小型企业系统中。

有关Tomcat的详细配置可以参见之前章节。下面是将本项目发布到Tomcat下调试运行:

编辑Tomcat目录下conf目录的Server.xml中找到下列行数:

  <!-- Tomcat Root Context -->

  <!-- <Context path="" docBase="ROOT" debug="0"/> -->

其后加入本项目的配置:

 <!-- 本项目应用 -->

 <Context path="/jdoncms" docBase="D:/javasource/JdonCMS/web" debug="1"

                 reloadable="true" crossContext="true" />

其中/jdoncms是路径,也就是可以通过http://主机名/jdoncms来访问本项目,而docBase则是本项目的绝对路径。

启动Tomcat,如果想检查启动过程中的错误,可以到Tomcat/logs目录观看相应的日志。在浏览器窗口输入http://localhost:8080/jdoncms

6.2  Log调试信息的配置

项目第一次调试总会存在诸多问题,因此需要打印出系统中每个步骤的运行结果,这样可以跟踪调试。以前是使用System.out.println来设置输出调试信息。但是这有一个缺点,就是当项目切入正式运行后,不希望这些日志输出到容器的控制台上。因为这样还会降低系统性能,但是如果手工逐个到程序中删除,又将为以后扩展维护带来不便。

以后章节会谈到如何使用Log4J来跟踪调试,但是在Tomcat中设置Log4J不是一件方便的事情。需要做一个专门的Proxy类,通过这个Proxy类,可以动态地设置是使用System.out.println还是Log4J,或者关闭一些调试信息。

定义Log的级别如下:

ALWAYS = 0;

VERBOSE = 1;

TIMING = 2;

INFO = 3;

IMPORTANT = 4;

WARNING = 5;

ERROR = 6;

FATAL = 7;

错误程度分别是从上到下逐步严重,一般实行调试信息输出可以使用VERBOSE,但是在一个大型系统中,如果都实行VERBOSE级别,那么,势必在调试一些重要组件时,其他信息会发生严重干扰。这时可以在这些重要组件中实行其他级别输出,如IMPORTANT,在配置文件中只要指定输出级别就可以。

在本项目配置文件中定义:

<log>

   <level>1</level>

   <log4j>false</log4j>

</log>

这说明将输出VERBOSE以上信息输出开启,同时表示将不使用Log4J

在本项目中,Debug.java实现了这样日志Proxy功能。在Debug中,先读取配置文件,以确定当前开启级别是在哪个级别,当外界以如下语句调用时:

Debug.logVerbose(" this result is  " + result , module);

Debug会和配置文件的设置进行比较。如果大于设置的级别,将向控制台输出。至于是使用System.out还是Log4J,将取决于配置文件的第二项配置。

当运行本项目时,Tomcat控制台会输出如下信息:

[Debug:com.jdon.cms.events.PageAction:Verbose]  ----> extractPageForm Action

[Debug:com.jdon.cms.events.FormBeanUtil:Verbose]  enter to save the arribute

[Debug:com.jdon.cms.xml.NavlinkManager:Verbose]  ... try to get the exsited file

D:\javasource\JdonCMS\web\WEB-INF/conf\navlink.xml

这样,如果发生错误,就能跟踪到错误发生位置,从而纠正问题。


上一级 首页 下一级