<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>ccmv</title>
    <description></description>
    <link>http://ccmv.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>php/smarty html代码转义</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/218838" style="color:red;">http://ccmv.javaeye.com/blog/218838</a>&nbsp;
          发表时间: 2008年07月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          html代码转义在java里面直接c:out就行了，早上弄php好不容易找到了赶紧记下来<br /><br />php：HTMLSpecialChars<br />smarty：使用escape<br /><br />{$articleTitle|escape}<br />{$articleTitle|escape:"html"} {* escapes & " ' &lt; > *}<br />{$articleTitle|escape:"htmlall"} {* escapes ALL html entities *}<br />{$articleTitle|escape:"url"}<br />{$articleTitle|escape:"quotes"}
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/218838#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 24 Jul 2008 09:45:21 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/218838</link>
        <guid>http://ccmv.javaeye.com/blog/218838</guid>
      </item>
      <item>
        <title>java中文变量</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/215724" style="color:red;">http://ccmv.javaeye.com/blog/215724</a>&nbsp;
          发表时间: 2008年07月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          上午开会讲注释问题，于是我就像能不能直接用中文的命名呢，试了下还真可以<br /><pre name="code" class="java">
package 石明.测试包;


public class 石明测试 {
	public void 测试(){
		System.out.println("测试");
	}
	
	public void 测试(String 姓名){
		System.out.println("测试"+姓名);
	}
	
	public static void main(String [] args){
		石明测试 石明 = new 石明测试();
		石明.测试("是明明");
	}
}
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/215724#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 17 Jul 2008 11:39:56 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/215724</link>
        <guid>http://ccmv.javaeye.com/blog/215724</guid>
      </item>
      <item>
        <title>axis2与spring集成完毕！很happy</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/213102" style="color:red;">http://ccmv.javaeye.com/blog/213102</a>&nbsp;
          发表时间: 2008年07月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          都要离开公司了，却接到这个任务。好吧，那就集吧。<br />其实仔细看完axis2的文档应该很容易就集成了。<br />我完全是按照那个文档做的。<br /><br />不知道在写什么。。。
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/213102#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 09 Jul 2008 14:26:32 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/213102</link>
        <guid>http://ccmv.javaeye.com/blog/213102</guid>
      </item>
      <item>
        <title>struts按需重新載入配置文件</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/188630" style="color:red;">http://ccmv.javaeye.com/blog/188630</a>&nbsp;
          发表时间: 2008年05月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          struts 按需重新載入配置文件,查了好久整理下供大家参考<br /><br /><pre name="code" class="java">
package com.aa.util;

import java.io.File;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;

import org.apache.struts.Globals;
import org.apache.struts.action.ActionServlet;

public class StrustUtil {
	/**
	 * 得到所有strust配置文件的修改时间戳的和,以此来确定有没有修改过配置文件
	 * @param configFileNames
	 * @param webRootPath
	 * @return
	 */
	public static Long getStrutsConfigTimestamp(String[] configFileNames,
			String webRootPath) {
		Long strutsConfigTimestamp = 0L;
		for (String fileName : configFileNames) {
			fileName = fileName.trim();
			File strutsConfig = new File(webRootPath, fileName);
			if (strutsConfig.exists())
				strutsConfigTimestamp += strutsConfig.lastModified();
		}
		return strutsConfigTimestamp;
	}

	/**
	 * 自动重载strust配置文件,
	 * @param context
	 * @throws ServletException
	 */
	public static void reloadConfig(ServletContext context) throws ServletException {
		Long currentTimeStamp = (Long) context
				.getAttribute("STRUSTCONFIGFILE_LASTMODIFY");
		ActionServlet as = (ActionServlet) context
				.getAttribute(Globals.ACTION_SERVLET_KEY);
		String configString = as.getInitParameter("config");
		String[] configFileNames = configString.split(",");
		String realPath = context.getRealPath("/");
		Long strutsConfigTimestamp = getStrutsConfigTimestamp(configFileNames,
				realPath);
		if (currentTimeStamp != null
				&& !currentTimeStamp.equals(strutsConfigTimestamp)) {
			// 如果不相等重新载入配置文件
			as.destroy();
			context.removeAttribute(Globals.REQUEST_PROCESSOR_KEY);
			as.init();
		}
		context.setAttribute("STRUSTCONFIGFILE_LASTMODIFY",
				strutsConfigTimestamp);
	}
}

</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/188630#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 01 May 2008 15:59:14 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/188630</link>
        <guid>http://ccmv.javaeye.com/blog/188630</guid>
      </item>
      <item>
        <title>【zz】用Spring2.5进行单元测试</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/179090" style="color:red;">http://ccmv.javaeye.com/blog/179090</a>&nbsp;
          发表时间: 2008年04月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          引用地址为：http://www.javaresearch.org/article/96233.htm<br />摘要<br />Spring2.5为测试提供了全新的TestContext Framework，在Spring2.5中可以利用注解编写测试用例，本文不会讨论TestContext Framework的信息，仅以一个实际例子来说明如何编写测试用例。<br />关键字：Spring2.5，Unit Test，JUnit4.4<br /><br />内容：<br />要创建一个基于Spring2.5的JUnit4.4测试用例其实相当简单，主要进行以下几步的工作：<br />(1)创建一个扩展自 AbstractTransactionalJUnit4SpringContextTests的类，该基类是Spring2.5为方便在JUnit4环境进行事务测试的类，它还提供了一个simpleJdbcTemplate属性让你可以方便地操控数据库表，便于对测试数据进行有效的操作；<br />(2)用@ContextLocation注解指定你要加载的Spring配置信息所在的位置；（默认的加载文件信息请参阅Spring Documentation）；<br />(3)用@Autowired或@Resource注解注入你的Service接口，@Autowrired是指按类型将Spring Bean注入；而@Resource则按名称将Spring Bean注入。<br />(4)用@Before准备待测试的数据，如果我们的数据库表结构没有任何数据，则可以在这里预先插入记录，以便进行单元测试，当整个测试完成后，这些数据都不会被保留在数据库中。<br />(5)在需要进行测试的方法上使用JUnit4.4提供的@Test注解进行标示；<br /><br />下面我们以一个例子来说明如何编写一个测试用例：<br />&lt;1>示例信息<br />假设我们有一个名为TrainProjectService的服务类需要进行单元测试，该Service接口的方法如清单1-1所示：<br />清单1-1<br /><pre name="code" class="java">public interface TrainProjectService {

    //根据ID获取培训项目信息
    public TrainProject getTrainProjectById(Integer trainProjectId);
    …
}</pre><br />Spring配置信息如清单1-2所示：<br />清单1-2<br />/cn/com/suhao/test/train/conf/applicationContext-train-service.xml<br /><pre name="code" class="xml">&lt;bean  id="trainProjectService" 
class="cn.com.suhao.test.train.service.impl.TrainProjectServiceImp">
       &lt;property name="trainProjectDao" ref="trainProjectDao" />
&lt;/bean></pre><br />/cn/com/suhao/test/train/conf/applicationContext-train-dao.xml<br /><pre name="code" class="xml">&lt;bean  id="trainProjectDao"
class="cn.com.suhao.test.train.dao.impl.TrainProjectDAOImp" parent="parentDao" /></pre><br />&lt;2>测试用例<br /><pre name="code" class="java">@ContextConfiguration(locations={"/cn/com/suhao/test/appconf/applicationContext.xml", 
         "/cn/com/suhao/test/train/conf/applicationContext-*.xml"
        }
)
public class TestTrainProjectService extends AbstractTransactionalJUnit4SpringContextTests {

    @Autowired
    private TrainProjectService trainProjectService;
    private Integer projectId;
    
    @Before
    public void prepareTestData() {
        final String  sql = "insert into train_project(project_name, project_attendee) values('English Test', 'Mike')";
        KeyHolder keyHolder = new GeneratedKeyHolder();
        simpleJdbcTemplate.getJdbcOperations().update(
            new PreparedStatementCreator() {
                public PreparedStatement createPreparedStatement(Connection conn)
                    throws SQLException {
                    PreparedStatement ps = conn.prepareStatement(sql);
                    return ps;
                }
            }, keyHolder);
        projectId = keyHolder.getKey().intValue();
    }
    
    @Test
    public void testGetTrainProject() {
        TrainProject trainProject = trainProjectService.getTrainProjectById(projectId);
        Assert.notNull(trainProject);
    }
    
    }</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/179090#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 03 Apr 2008 10:31:23 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/179090</link>
        <guid>http://ccmv.javaeye.com/blog/179090</guid>
      </item>
      <item>
        <title>UML用例图概要(转)</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/177578" style="color:red;">http://ccmv.javaeye.com/blog/177578</a>&nbsp;
          发表时间: 2008年03月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          UML用例图就是软件产品外部特性描述的视图,他从用户的角度而不是开发者的角度来描述软件产品的需求,分析软件产品所需的功能和行为.<br /><br />     UML用例图描述了一组用例,参与者以及他们之间的关系,用例图包括以下几个部分:<br /><br />     用例(Case),参与者(Actor).依赖,泛化和关联关系.<br /><br />     UML用例视图中的参与者与系统外部的一个实体(可以是任何人或事物),他以某种方式参与了用例的执行过程,<br /><br />     用例是一个叙述型文档,用来描述参与使用系统,完成某个事情时发生的顺序.<br /><br />     关系:<br /><br />     1.泛化关系(Generalization):用例的泛化关系与类的泛化关系相似,即在用例泛化中,子用例表示父用例的特殊形式,子用例从父用例继承了行为和属性,还可以添加行为和属性,改变已继承的行为.<br /><br />     2.包含关系(Include):包含关系把几个用例的公共步骤分离成一个被包含的用例,用例间的包含关系允许包含提供者用例的行为到客户用例中.把包含用例称为客户用例,被包含用例称为提供者用例.包含用例提供功能给客户用例,<br /><br />    3扩展关系(Extend):是把新行为插入到已有用例中的方法.基础用例提供了一组扩展点..这些扩展点可以添加新的行为.而扩展用例提供了一组插入片段.这些片段能插入到基础用例的扩展点。
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/177578#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 29 Mar 2008 13:01:10 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/177578</link>
        <guid>http://ccmv.javaeye.com/blog/177578</guid>
      </item>
      <item>
        <title>百度Hi测试邀请</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/176501" style="color:red;">http://ccmv.javaeye.com/blog/176501</a>&nbsp;
          发表时间: 2008年03月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          已经获得百度hi测试版本的邀请，有人需要的可以留言并告知baidu帐号
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/176501#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 26 Mar 2008 21:07:44 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/176501</link>
        <guid>http://ccmv.javaeye.com/blog/176501</guid>
      </item>
      <item>
        <title>ZZ:tomcat配置</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/174035" style="color:red;">http://ccmv.javaeye.com/blog/174035</a>&nbsp;
          发表时间: 2008年03月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="color: darkblue"><span style="font-size: large"><strong>1、配置系统管理（Admin Web Application）</strong></span></span>
<br />　　大多数商业化的J2EE服务器都提供一个功能强大的管理界面，且大都采用易于理解的Web应用界面。Tomcat按照自己的方式，同样提供一
个成熟的管理工具，并且丝毫不逊于那些商业化的竞争对手。Tomcat的Admin Web
Application最初在4.1版本时出现，当时的功能包括管理context、data
source、user和group等。当然也可以管理像初始化参数，user、group、role的多种数据库管理等。在后续的版本中，这些功能将得
到很大的扩展，但现有的功能已经非常实用了。Admin Web
Application被定义在自动部署文件：CATALINA_BASE/webapps/admin.xml
.（译者注：CATALINA_BASE即tomcat安装目录下的server目录）
<br />　　你必须编辑这个文件，以确定Context中的docBase参数是绝对路径。也就是说，CATALINA_BASE/webapps
/admin.xml的路径是绝对路径。作为另外一种选择，你也可以删除这个自动部署文件，而在server.xml文件中建立一个Admin Web
Application的context，效果是一样的。你不能管理Admin Web
Application这个应用，换而言之，除了删除CATALINA_BASE/webapps/admin.xml ，你可能什么都做不了。
<br />　　如果你使用UserDatabaseRealm（默认），你将需要添加一个user以及一个role到CATALINA_BASE/conf/tomcat-users.xml文件中。你编辑这个文件，添加一个名叫&ldquo;admin&rdquo;的role 到该文件中，如下：
<br />　　&lt;role name=&quot;admin&quot;/&gt;
<br />　　你同样需要有一个用户，并且这个用户的角色是&ldquo;admin&rdquo;。象存在的用户那样，添加一个用户（改变密码使其更加安全）：
<br /><pre name="code" class="xml">&lt;user name=&quot;admin&quot;
　　password=&quot;deep_dark_secret&quot;
　　roles=&quot;admin&quot;/&gt; </pre>&nbsp;<br />　　当你完成这些步骤后，请重新启动Tomcat，访问http://localhost：8080/admin，你将看到一个登录界面。
Admin Web Application采用基于容器管理的安全机制，并采用了Jakarta
Struts框架。一旦你作为&ldquo;admin&rdquo;角色的用户登录管理界面，你将能够使用这个管理界面配置Tomcat.
<br />
<br /><span style="color: darkblue"><span style="font-size: large"><strong>2、配置应用管理（Manager Web Application）</strong></span></span>
<br />　　Manager Web Application让你通过一个比Admin Web Application更为简单的用户界面，执行一些简单的Web应用任务。Manager Web Application被被定义在一个自动部署文件中：
<br />　　CATALINA_BASE/webapps/manager.xml
<br />　　你必须编辑这个文件，以确保context的docBase参数是绝对路径，也就是说CATALINA_HOME/server/webapps/manager的绝对路径。（译者注：CATALINA_HOME即tomcat安装目录）
<br />　　如果你使用的是UserDatabaseRealm，那么你需要添加一个角色和一个用户到CATALINA_BASE/conf/tomcat-users.xml文件中。接下来，编辑这个文件，添加一个名为&ldquo;manager&rdquo;的角色到该文件中：
<br />　　&lt;role name=&ldquo;manager&rdquo;&gt;
<br />　　你同样需要有一个角色为&ldquo;manager&rdquo;的用户。像已经存在的用户那样，添加一个新用户（改变密码使其更加安全）：
<br /><pre name="code" class="xml">&lt;user name=&quot;manager&quot;
　　password=&quot;deep_dark_secret&quot;
　　roles=&quot;manager&quot;/&gt; </pre>&nbsp;<br />　　然后重新启动Tomcat，访问http://localhost/manager/list，将看到一个很朴素的文本型管理界面，或者访问
<a href="http://localhost/manager/html/list" target="_blank">http://localhost/manager/html/list</a>，将看到一个HMTL的管理界面。不管是哪种方式都说明你的Manager
Web Application现在已经启动了。
<br />　　Manager
application让你可以在没有系统管理特权的基础上，安装新的Web应用，以用于测试。如果我们有一个新的web应用位于/home/user
/hello下在，并且想把它安装到/hello下，为了测试这个应用，我们可以这么做，在第一个文件框中输入&ldquo;/hello&rdquo;（作为访问时的
path），在第二个文本框中输入&ldquo;file：/home/user/hello&rdquo;（作为Config URL）。
<br />　　Manager
application还允许你停止、重新启动、移除以及重新部署一个web应用。停止一个应用使其无法被访问，当有用户尝试访问这个被停止的应用时，将
看到一个503的错误？？&ldquo;503 - This application is not currently available&rdquo;。
<br />　　移除一个web应用，只是指从Tomcat的运行拷贝中删除了该应用，如果你重新启动Tomcat，被删除的应用将再次出现（也就是说，移除并不是指从硬盘上删除）。
<br />
<br /><span style="color: darkblue"><span style="font-size: large"><strong>3、部署一个web应用</strong></span></span>
<br />　　有两个办法可以在系统中部署web服务。
<br />　　1. 拷贝你的WAR文件或者你的web应用文件夹（包括该web的所有内容）到$CATALINA_BASE/webapps目录下。
<br />　　2. 为你的web服务建立一个只包括context内容的XML片断文件，并把该文件放到$CATALINA_BASE/webapps目录下。这个web应用本身可以存储在硬盘上的任何地方。
<br />　　如果你有一个WAR文件，你若想部署它，则只需要把该文件简单的拷贝到CATALINA_BASE/webapps目录下即可，文件必须以
&ldquo;。war&rdquo;作为扩展名。一旦Tomcat监听到这个文件，它将（缺省的）解开该文件包作为一个子目录，并以WAR文件的文件名作为子目录的名字。
<br />　　接下来，Tomcat将在内存中建立一个context，就好象你在server.xml文件里建立一样。当然，其他必需的内容，将从server.xml中的DefaultContext获得。
<br />　　部署web应用的另一种方式是写一个Context XML片断文件，然后把该文件拷贝到CATALINA_BASE/webapps目录下。一个Context片断并非一个完整的XML文件，而只是一个context元素，以及对该应用的相应描述。
<br />　　这种片断文件就像是从server.xml中切取出来的context元素一样，所以这种片断被命名为&ldquo;context片断&rdquo;。
<br />　　举个例子，如果我们想部署一个名叫MyWebApp.war的应用，该应用使用realm作为访问控制方式，我们可以使用下面这个片断：
<br /><pre name="code" class="xml">&lt;!--　Context fragment for deploying MyWebApp.war　--&gt;
&lt;Context path=&quot;/demo&quot; docBase=&quot;webapps/MyWebApp.war&quot;
　　 debug=&quot;0&quot; privileged=&quot;true&quot;&gt;
　　&lt;Realm className=&quot;org.apache.catalina.realm.UserDatabaseRealm&quot;
　　 resourceName=&quot;UserDatabase&quot;/&gt;
&lt;/Context&gt; </pre>&nbsp;<br />　　把该片断命名为&ldquo;MyWebApp.xml&rdquo;，然后拷贝到CATALINA_BASE/webapps目录下。
<br />　　这种context片断提供了一种便利的方法来部署web应用，你不需要编辑server.xml，除非你想改变缺省的部署特性，安装一个新的web应用时不需要重启动Tomcat.
<br />
<br /><span style="color: darkblue"><span style="font-size: large"><strong>4、配置虚拟主机（Virtual Hosts）</strong></span></span>
<br />　　关于server.xml中&ldquo;Host&rdquo;这个元素，只有在你设置虚拟主机的才需要修改。虚拟主机是一种在一个web服务器上服务多个域名的机
制，对每个域名而言，都好象独享了整个主机。实际上，大多数的小型商务网站都是采用虚拟主机实现的，这主要是因为虚拟主机能直接连接到Internet并
提供相应的带宽，以保障合理的访问响应速度，另外虚拟主机还能提供一个稳定的固定IP.
<br />　　基于名字的虚拟主机可以被建立在任何web服务器上，建立的方法就是通过在域名服务器（DNS）上建立IP地址的别名，并且告诉web服务
器把去往不同域名的请求分发到相应的网页目录。因为这篇文章主要是讲Tomcat，我们不准备介绍在各种操作系统上设置DNS的方法，如果你在这方面需要
帮助，请参考《DNS and Bind》一书，作者是Paul Albitz and Cricket Liu
（O'Reilly）。为了示范方便，我将使用一个静态的主机文件，因为这是测试别名最简单的方法。
<br />　　在Tomcat中使用虚拟主机，你需要设置DNS或主机数据。为了测试，为本地IP设置一个IP别名就足够了，接下来，你需要在server.xml中添加几行内容，如下：
<br /><pre name="code" class="xml">&lt;Server port=&quot;8005&quot; shutdown=&quot;SHUTDOWN&quot; debug=&quot;0&quot;&gt;
　&lt;Service name=&quot;Tomcat-Standalone&quot;&gt;
　　&lt;Connector className=&quot;org.apache.coyote.tomcat4.CoyoteConnector&quot;
　　 port=&quot;8080&quot; minProcessors=&quot;5&quot; maxProcessors=&quot;75&quot;
　　 enableLookups=&quot;true&quot; redirectPort=&quot;8443&quot;/&gt;
　　&lt;Connector className=&quot;org.apache.coyote.tomcat4.CoyoteConnector&quot;
　　 port=&quot;8443&quot; minProcessors=&quot;5&quot; maxProcessors=&quot;75&quot;
　　 acceptCount=&quot;10&quot; debug=&quot;0&quot;
　　 scheme=&quot;https&quot; secure=&quot;true&quot;/&gt;
　　&lt;Factory className=&quot;org.apache.coyote. tomcat4.CoyoteServerSocketFactory&quot;
　　 clientAuth=&quot;false&quot; protocol=&quot;TLS&quot; /&gt;
　　&lt;/Connector&gt;
　　&lt;Engine name=&quot;Standalone&quot; defaultHost=&quot;localhost&quot; debug=&quot;0&quot;&gt;
　　 &lt;!-- This Host is the default Host --&gt;
　 　&lt;Host name=&quot;localhost&quot; debug=&quot;0&quot; appBase=&quot;webapps&quot;
　　 unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;&gt;
　　 &lt;Context path=&quot;&quot; docBase=&quot;ROOT&quot; debug=&quot;0&quot;/&gt;
　　 &lt;Context path=&quot;/orders&quot; docBase=&quot;/home/ian/orders&quot; debug=&quot;0&quot;
　　 reloadable=&quot;true&quot; crossContext=&quot;true&quot;&gt;
　　 &lt;/Context&gt;
　　 &lt;/Host&gt;
　　 &lt;!-- This Host is the first &quot;Virtual Host&quot;: http://www.example.com/ --&gt;
　 　&lt;Host name=&quot;www.example.com&quot; appBase=&quot;/home/example/webapp&quot;&gt;
　　 &lt;Context path=&quot;&quot; docBase=&quot;.&quot;/&gt;
　　 &lt;/Host&gt;
　　&lt;/Engine&gt;
　&lt;/Service&gt;
&lt;/Server&gt; </pre>&nbsp;<br />　　Tomcat的server.xml文件，在初始状态下，只包括一个虚拟主机，但是它容易被扩充到支持多个虚拟主机。在前面的例子中展示的是
一个简单的server.xml版本，其中粗体部分就是用于添加一个虚拟主机。每一个Host元素必须包括一个或多个context元素，所包含的
context元素中必须有一个是默认的context，这个默认的context的显示路径应该为空（例如，path=&ldquo;&rdquo;）。
<br />
<br /><span style="color: darkblue"><span style="font-size: large"><strong>5、配置基础验证（Basic Authentication）</strong></span></span>
<br />　　容器管理验证方法控制着当用户访问受保护的web应用资源时，如何进行用户的身份鉴别。当一个web应用使用了Basic
Authentication（BASIC参数在web.xml文件中auto-method元素中设置），而有用户访问受保护的web应用
时，Tomcat将通过HTTP Basic
Authentication方式，弹出一个对话框，要求用户输入用户名和密码。在这种验证方法中，所有密码将被以64位的编码方式在网络上传输。
<br />　　注意：使用Basic
Authentication通过被认为是不安全的，因为它没有强健的加密方法，除非在客户端和服务器端都使用HTTPS或者其他密码加密码方式（比如，
在一个虚拟私人网络中）。若没有额外的加密方法，网络管理员将能够截获（或滥用）用户的密码。
<br />　　但是，如果你是刚开始使用Tomcat，或者你想在你的web应用中测试一下基于容器的安全管理，Basic
Authentication还是非常易于设置和使用的。只需要添加&lt;security-constraint&gt;和&lt;login-
config&gt;两个元素到你的web应用的web.xml文件中，并且在CATALINA_BASE/conf/tomcat-users.xml
文件中添加适当的&lt;role&gt;和&lt;user&gt;即可，然后重新启动Tomcat.
<br />　　下面例子中的web.xml摘自一个俱乐部会员网站系统，该系统中只有member目录被保护起来，并使用Basic Authentication进行身份验证。请注意，这种方式将有效的代替Apache web服务器中的。htaccess文件。
<br /><pre name="code" class="xml">&lt;!&mdash;
Define the Members-only area, by defining a &quot;Security Constraint&quot; on this
Application, and mapping it to the subdirectory (URL) that we want to restrict.
--&gt;
&lt;security-constraint&gt;
　&lt;web-resource-collection&gt;
　　&lt;web-resource-name&gt;Entire Application&lt;/web-resource-name&gt;
　　&lt;url-pattern&gt;/members/*&lt;/url-pattern&gt;
　&lt;/web-resource-collection&gt;
　&lt;auth-constraint&gt;
　　&lt;role-name&gt;member&lt;/role-name&gt;
　&lt;/auth-constraint&gt;
&lt;/security-constraint&gt;
&lt;!-- Define the Login Configuration for this Application --&gt;
&lt;login-config&gt;
　&lt;auth-method&gt;BASIC&lt;/auth-method&gt;
　&lt;realm-name&gt;My Club Members-only Area&lt;/realm-name&gt;
&lt;/login-config&gt; </pre>&nbsp;<br />
<br /><span style="color: darkblue"><span style="font-size: large"><strong>6、配置单点登录（Single Sign-On）</strong></span></span>
<br />　　一旦你设置了realm和验证的方法，你就需要进行实际的用户登录处理。一般说来，对用户而言登录系统是一件很麻烦的事情，你必须尽量减少用户登录验证的次数。作为缺省的情况，当用户第一次请求受保护的资源时，每一个web应用都会要求用户登录。
<br />　　如果你运行了多个web应用，并且每个应用都需要进行单独的用户验证，那这看起来就有点像你在与你的用户搏斗。用户们不知道怎样才能把多个分离的应用整合成一个单独的系统，所有他们也就不知道他们需要访问多少个不同的应用，只是很迷惑，为什么总要不停的登录。
<br />　　Tomcat 4的&ldquo;single sign-on&rdquo;特性允许用户在访问同一虚拟主机下所有web应用时，只需登录一次。为了使用这个功能，你只需要在Host上添加一个SingleSignOn Valve元素即可，如下所示：
<br /><pre name="code" class="xml">&lt;Valve className=
　　&quot;org.apache.catalina.
　　authenticator.SingleSignOn&quot;
　　debug=&quot;0&quot;/&gt; </pre>&nbsp;<br />　　在Tomcat初始安装后，server.xml的注释里面包括SingleSignOn
Valve配置的例子，你只需要去掉注释，即可使用。那么，任何用户只要登录过一个应用，则对于同一虚拟主机下的所有应用同样有效。使用single
sign-on valve有一些重要的限制：
<br />　　1&gt; value必须被配置和嵌套在相同的Host元素里，并且所有需要进行单点验证的web应用（必须通过context元素定义）都位于该Host下。
<br />　　2&gt; 包括共享用户信息的realm必须被设置在同一级Host中或者嵌套之外。
<br />　　3&gt; 不能被context中的realm覆盖。
<br />　　4&gt;
使用单点登录的web应用最好使用一个Tomcat的内置的验证方式（被定义在web.xml中的&lt;auth-method&gt;中），这比自定
义的验证方式强，Tomcat内置的的验证方式包括basic、digest、form和client-cert.
<br />　　5&gt; 如果你使用单点登录，还希望集成一个第三方的web应用到你的网站中来，并且这个新的web应用使用它自己的验证方式，而不使用容器管理安全，那你基本上就没招了。你的用户每次登录原来所有应用时需要登录一次，并且在请求新的第三方应用时还得再登录一次。
<br />　　当然，如果你拥有这个第三方web应用的源码，而你又是一个程序员，你可以修改它，但那恐怕也不容易做。
<br />　　6&gt; 单点登录需要使用cookies.
<br />
<br /><span style="color: darkblue"><span style="font-size: large"><strong>7、配置用户定制目录（Customized User Directores）</strong></span></span>
<br />　　一些站点允许个别用户在服务器上发布网页。例如，一所大学的学院可能想给每一位学生一个公共区域，或者是一个ISP希望给一些web空间给他的客户，但这又不是虚拟主机。在这种情况下，一个典型的方法就是在用户名前面加一个特殊字符（~），作为每位用户的网站，比如：
<br />http://www.cs.myuniversity.edu/~username
<br />http://members.mybigisp.com/~username
<br />　　Tomcat提供两种方法在主机上映射这些个人网站，主要使用一对特殊的Listener元素。Listener的className属性应
该是org.apache.catalina.startup.UserConfig，userClass属性应该是几个映射类之一。
<br />　　如果你的系统是Unix，它将有一个标准的/etc/passwd文件，该文件中的帐号能够被运行中的Tomcat很容易的读取，该文件指定了用户的主目录，使用PasswdUserDatabase 映射类。
<br /><pre name="code" class="xml">&lt;Listener className= &quot;org.apache.catalina.startup.UserConfig&quot;
　　directoryName=&quot;public_html&quot;
　　userClass=&quot;org.apache.catalina.
　　startup.PasswdUserDatabase&quot;/&gt; </pre>&nbsp;<br />　　web文件需要放置在像/home/users/ian/public_html或者/users/jbrittain/public_html一样的目录下面。当然你也可以改变public_html 到其他任何子目录下。
<br />　　实际上，这个用户目录根本不一定需要位于用户主目录下里面。如果你没有一个密码文件，但你又想把一个用户名映射到公共的像/home一样目录的子目录里面，则可以使用HomesUserDatabase类。
<br /><pre name="code" class="xml">&lt;Listener className= &quot;org.apache.catalina.startup.UserConfig&quot;
　　directoryName=&quot;public_html&quot;
　　homeBase=&quot;/home&quot;
　　userClass=&quot;org.apache.catalina.
　　startup.HomesUserDatabase&quot;/&gt; </pre>&nbsp;<br />　　这样一来，web文件就可以位于像/home/ian/public_html或者/home/jasonb/public_html一样的目录下。这种形式对Windows而言更加有利，你可以使用一个像c：\home这样的目录。
<br />　　这些Listener元素，如果出现，则必须在Host元素里面，而不能在context元素里面，因为它们都用应用于Host本身。
<br />
<br /><span style="color: darkblue"><span style="font-size: large"><strong>8、在Tomcat中使用CGI脚本</strong></span></span>
<br />　　Tomcat主要是作为Servlet/JSP容器，但它也有许多传统web服务器的性能。支持通用网关接口（Common Gateway Interface，即CGI）就是其中之一，CGI提供一组方法在响应浏览器请求时运行一些扩展程序。
<br />　　CGI之所以被称为通用，是因为它能在大多数程序或脚本中被调用，包括：Perl，Python，awk，Unix shell scripting等，甚至包括Java.
<br />　　当然，你大概不会把一个Java应用程序当作CGI来运行，毕竟这样太过原始。一般而言，开发Servlet总要比CGI具有更好的效率，因为当用户点击一个链接或一个按钮时，你不需要从操作系统层开始进行处理。
<br />　　Tomcat包括一个可选的CGI Servlet，允许你运行遗留下来的CGI脚本。
<br />　　为了使Tomcat能够运行CGI，你必须做如下几件事：
<br />　　1. 把servlets-cgi.renametojar （在CATALINA_HOME/server/lib/目录下）改名为servlets-cgi.jar.处理CGI的servlet应该位于Tomcat的CLASSPATH下。
<br />　　2. 在Tomcat的CATALINA_BASE/conf/web.xml 文件中，把关于&lt;servlet-name&gt; CGI的那段的注释去掉（默认情况下，该段位于第241行）。
<br />　　3. 同样，在Tomcat的CATALINA_BASE/conf/web.xml文件中，把关于对CGI进行映射的那段的注释去掉（默认情况下，该段位于第299行）。注意，这段内容指定了HTML链接到CGI脚本的访问方式。
<br />　　4. 你可以把CGI脚本放置在WEB-INF/cgi
目录下（注意，WEB-INF是一个安全的地方，你可以把一些不想被用户看见或基于安全考虑不想暴露的文件放在此处），或者你也可以把CGI脚本放置在
context下的其他目录下，并为CGI Servlet调整cgiPathPrefix初始化参数。这就指定的CGI
Servlet的实际位置，且不能与上一步指定的URL重名。
<br />　　5. 重新启动Tomcat，你的CGI就可以运行了。
<br />　　在Tomcat中，CGI程序缺省放置在WEB-INF/cgi目录下，正如前面所提示的那样，WEB-INF目录受保护的，通过客户端的浏览器无法窥探到其中内容，所以对于放置含有密码或其他敏感信息的CGI脚本而言，这是一个非常好的地方。
<br />　　为了兼容其他服务器，尽管你也可以把CGI脚本保存在传统的/cgi-bin目录，但要知道，在这些目录中的文件有可能被网上好奇的冲浪者看到。另外，在Unix中，请确定运行Tomcat的用户有执行CGI脚本的权限。
<br />
<br /><span style="color: darkblue"><span style="font-size: large"><strong>9、改变Tomcat中的JSP编译器（JSP Compiler）</strong></span></span>
<br />　　在Tomcat 4.1（或更高版本，大概），JSP的编译由包含在Tomcat里面的Ant程序控制器直接执行。这听起来有一点点奇怪，但这正是Ant有意为之的一部分，有一个API文档指导开发者在没有启动一个新的JVM的情况下，使用Ant.
<br />　　这是使用Ant进行Java开发的一大优势。另外，这也意味着你现在能够在Ant中使用任何javac支持的编译方式，这里有一个关于Apache Ant使用手册的javac page列表。
<br />使用起来是容易的，因为你只需要在&lt;init-param&gt; 元素中定义一个名字叫&ldquo;compiler&rdquo;，并且在value中有一个支持编译的编译器名字，示例如下：
<br />
<pre name="code" class="xml">&lt;servlet&gt;
　　&lt;servlet-name&gt;jsp&lt;/servlet-name&gt;
　　&lt;servlet-class&gt;org.apache.jasper.servlet.JspServlet&lt;/servlet-class&gt;
　　&lt;init-param&gt;
　　 &lt;param-name&gt;logVerbosityLevel&lt;/param-name&gt;
　　 &lt;param-value&gt;WARNING&lt;/param-value&gt;
　　&lt;/init-param&gt;
　　&lt;init-param&gt;
　　 &lt;param-name&gt;compiler&lt;/param-name&gt;
　　 &lt;param-value&gt;jikes&lt;/param-value&gt;
　　&lt;/init-param&gt;
　　&lt;load-on-startup&gt;3&lt;/load-on-startup&gt;
&lt;/servlet&gt; </pre>&nbsp;<br />　　当然，给出的编译器必须已经安装在你的系统中，并且CLASSPATH可能需要设置，那处决于你选择的是何种编译器。
<br />
<br /><span style="color: darkblue"><span style="font-size: large"><strong>10、限制特定主机访问（Restricting Access to Specific Hosts）</strong></span></span>
<br />　　有时，你可能想限制对Tomcat
web应用的访问，比如，你希望只有你指定的主机或IP地址可以访问你的应用。这样一来，就只有那些指定的的客户端可以访问服务的内容了。为了实现这种效
果，Tomcat提供了两个参数供你配置：RemoteHostValve 和RemoteAddrValve.
<br />　　通过配置这两个参数，可以让你过滤来自请求的主机或IP地址，并允许或拒绝哪些主机/IP.与之类似的，在Apache的httpd文件里有对每个目录的允许/拒绝指定。例如你可以把Admin Web application设置成只允许本地访问，设置如下：
<br />&lt;Context path=&quot;/path/to/secret_files&quot; ...&gt;
<br />　　&lt;Valve className=&quot;org.apache. catalina.valves.RemoteAddrValve&quot;
<br />　　    allow=&quot;127.0.0.1&quot; deny=&quot;&quot;/&gt;
<br />&lt;/Context&gt;
<br />　　如果没有给出允许主机的指定，那么与拒绝主机匹配的主机就会被拒绝，除此之外的都是允许的。与之类似，如果没有给出拒绝主机的指定，那么与允许主机匹配的主机就会被允许，除此之外的都是拒绝的。

          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/174035#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 20 Mar 2008 11:44:55 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/174035</link>
        <guid>http://ccmv.javaeye.com/blog/174035</guid>
      </item>
      <item>
        <title>flex 上传文件</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/169859" style="color:red;">http://ccmv.javaeye.com/blog/169859</a>&nbsp;
          发表时间: 2008年03月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="xml">
&lt;?xml version="1.0" encoding="utf-8"?>
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12" creationComplete="init()" width="518" height="347">
    
        &lt;mx:Script>
         &lt;![CDATA[
             
             import flash.net.FileReference;
            import flash.net.URLRequest;
            import flash.net.FileFilter;
            import flash.net.URLVariables;
            
            import flash.events.ProgressEvent;
            
            import mx.managers.CursorManager;
             //
             private var file:FileReference;
                          
             internal function init():void{

                 file = new FileReference();   
                 file.addEventListener(Event.SELECT, onSelect);  
                file.addEventListener(ProgressEvent.PROGRESS, processHandler);  
                
                file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadDataHandler);
                
             }
             
             internal function doSelect():void{
                 var imageTypes:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.png)", "*.jpg;*.jpeg;*.png");  
                var allTypes:Array = new Array(imageTypes);  
                 file.browse(allTypes);
             }
             internal function onSelect(evt:Event):void{
                 pic_txt.text = file.name;
             }
             internal function doUpload():void{
                 var request:URLRequest = new URLRequest("upload.php");
                                  
                //request.data = new URLVariables();
                file.upload(request);
                CursorManager.setBusyCursor();
             }
             internal function processHandler(evt:ProgressEvent):void{
                //
                //evt.bytesTotal;
             }        
             internal function uploadDataHandler(evt:DataEvent):void{
                 CursorManager.removeBusyCursor(); 
                 
                 img.source = evt.data.toString();
             }
         ]]&gt;
     &lt;/mx:Script>

    &lt;mx:Image id="img" width="377" height="108" x="10" y="59"/>    
    &lt;mx:TextInput id="pic_txt" width="150" x="109" y="10"/>
    &lt;mx:Button label="选择文件" click="doSelect()" x="10" y="10"/>
    &lt;mx:Button label="开始上传" click="doUpload()" x="295" y="10"/>

&lt;/mx:Application>
</pre><br /><br />原文链接：http://www.fluidea.cn/blog/index.php/2007/12/19/44/<br />演示地址：http://www.fluidea.cn/book/uploadEx/FlexUpload.html
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/169859#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 10 Mar 2008 15:48:45 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/169859</link>
        <guid>http://ccmv.javaeye.com/blog/169859</guid>
      </item>
      <item>
        <title>flex3 builder 注册码 </title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/169562" style="color:red;">http://ccmv.javaeye.com/blog/169562</a>&nbsp;
          发表时间: 2008年03月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          偶得注册码，分给大家了 <br />1377-4167-7117-9920-1795-1576<br />1377-4569-7800-6245-2886-1142<br />1377-4168-1953-1522-6349-2789<br />1377-4369-1482-2726-6530-0301
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/169562#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 09 Mar 2008 21:19:47 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/169562</link>
        <guid>http://ccmv.javaeye.com/blog/169562</guid>
      </item>
      <item>
        <title>几种服务器</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/160956" style="color:red;">http://ccmv.javaeye.com/blog/160956</a>&nbsp;
          发表时间: 2008年02月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Resin比较好的jsp，servlet容器<br />http://www.caucho.com/download/<br /><br />lighttpd <br />http://www.lighttpd.net/<br /><br />squid<br />http://www.squid-cache.org/Download/<br /><br />memcache<br />http://www.danga.com/memcached/<br /><br />lvc<br />http://www.linuxvirtualserver.org/
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/160956#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 01 Feb 2008 11:46:20 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/160956</link>
        <guid>http://ccmv.javaeye.com/blog/160956</guid>
      </item>
      <item>
        <title>ext 传统模式的树</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/154049" style="color:red;">http://ccmv.javaeye.com/blog/154049</a>&nbsp;
          发表时间: 2008年01月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>前些日子在做ext相关开发，用到ext tree 发现他是基于ajax动态加载的。</p><p>这种模式有好处也有坏处，好处就是多节点的时候可以节省资源。 但是我们的系统节点不会很多。一次性读出反而更方便。本来都打算用Dtree了，无意中又发现了个实现方法，如果谁有更好的请跟我交流 </p><p>&nbsp;</p><pre name="code" class="js">var Tree = Ext.tree;

var tree = new Tree.TreePanel('tree', {
animate:true,
enableDD:false,
loader: new Tree.TreeLoader(), // Note: no dataurl, register a TreeLoader to make use of createNode()
lines: true,
selModel: new Ext.tree.MultiSelectionModel(),
containerScroll: false
});


// json data describing the tree
var json =
[
{&quot;text&quot; : &quot;Audi&quot;, &quot;id&quot; : 100, &quot;leaf&quot; : false, &quot;cls&quot; : &quot;folder&quot;, &quot;children&quot; : [
{&quot;text&quot; : &quot;A3&quot;, &quot;id&quot; : 1000, &quot;leaf&quot; : false, &quot;cls&quot; : &quot;folder&quot;, &quot;children&quot; :
[ {&quot;text&quot; : &quot;Fuel Economy&quot;, &quot;id&quot; : &quot;100000&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Invoice&quot;, &quot;id&quot; : &quot;100001&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;MSRP&quot;, &quot;id&quot; : &quot;100002&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Options&quot;, &quot;id&quot; : &quot;100003&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Specifications&quot;, &quot;id&quot; : &quot;100004&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;}
]
},
{&quot;text&quot; : &quot;TT&quot;, &quot;id&quot; : 1000, &quot;leaf&quot; : false, &quot;cls&quot; : &quot;folder&quot;, &quot;children&quot; :
[ {&quot;text&quot; : &quot;Fuel Economy&quot;, &quot;id&quot; : &quot;100000&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Invoice&quot;, &quot;id&quot; : &quot;100001&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;MSRP&quot;, &quot;id&quot; : &quot;100002&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Options&quot;, &quot;id&quot; : &quot;100003&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Specifications&quot;, &quot;id&quot; : &quot;100004&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;}
]
}]
},
{&quot;text&quot; : &quot;Cadillac&quot;, &quot;id&quot; : 300, &quot;leaf&quot; : false, &quot;cls&quot; : &quot;folder&quot;, &quot;children&quot; : [
{&quot;text&quot; : &quot;CTS&quot;, &quot;id&quot; : 1000, &quot;leaf&quot; : false, &quot;cls&quot; : &quot;folder&quot;, &quot;children&quot; :
[ {&quot;text&quot; : &quot;Fuel Economy&quot;, &quot;id&quot; : &quot;100000&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Invoice&quot;, &quot;id&quot; : &quot;100001&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;MSRP&quot;, &quot;id&quot; : &quot;100002&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Options&quot;, &quot;id&quot; : &quot;100003&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Specifications&quot;, &quot;id&quot; : &quot;100004&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;}
]
},
{&quot;text&quot; : &quot;CTS-V&quot;, &quot;id&quot; : 1000, &quot;leaf&quot; : false, &quot;cls&quot; : &quot;folder&quot;, &quot;children&quot; :
[ {&quot;text&quot; : &quot;Fuel Economy&quot;, &quot;id&quot; : &quot;100000&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Invoice&quot;, &quot;id&quot; : &quot;100001&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;MSRP&quot;, &quot;id&quot; : &quot;100002&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Options&quot;, &quot;id&quot; : &quot;100003&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;},
{&quot;text&quot; : &quot;Specifications&quot;, &quot;id&quot; : &quot;100004&quot;, &quot;leaf&quot; : true, &quot;cls&quot; : &quot;file&quot;}
]
}]
}

];

// set the root node
var root = new Tree.AsyncTreeNode({
text: 'Autos',
draggable:false,
id:'source',
children: json
});

tree.setRootNode(root);

tree.render();
root.expand();</pre>&nbsp;<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/154049#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 08 Jan 2008 16:00:49 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/154049</link>
        <guid>http://ccmv.javaeye.com/blog/154049</guid>
      </item>
      <item>
        <title>得到oracle数据库中所有表</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/146098" style="color:red;">http://ccmv.javaeye.com/blog/146098</a>&nbsp;
          发表时间: 2007年12月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">select 'drop '||object_type||' '||object_name||' cascade;' ,object_type from DBA_OBJECTS where owner='SCRS' </pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/146098#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 05 Dec 2007 09:54:08 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/146098</link>
        <guid>http://ccmv.javaeye.com/blog/146098</guid>
      </item>
      <item>
        <title>css framework</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/110793" style="color:red;">http://ccmv.javaeye.com/blog/110793</a>&nbsp;
          发表时间: 2007年08月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          闲来无事，在网上转悠突然发现个cssframework, 还没有来的及细看，先记下地址<br />地址：http://bjorkoy.com/blueprint/
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/110793#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 10 Aug 2007 10:21:22 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/110793</link>
        <guid>http://ccmv.javaeye.com/blog/110793</guid>
      </item>
      <item>
        <title>UUID</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/110109" style="color:red;">http://ccmv.javaeye.com/blog/110109</a>&nbsp;
          发表时间: 2007年08月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          hibernate的UUIDHexGenerator。如：String uuid = (String) new UUIDHexGenerator().generate(null, null);?<br /><br />jdk1.5 String uuid = UUID.randonUUID().toString();
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/110109#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 08 Aug 2007 11:47:28 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/110109</link>
        <guid>http://ccmv.javaeye.com/blog/110109</guid>
      </item>
      <item>
        <title>求助tomcat5.5 spring webwork hibernate 链接mysql出错</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/78503" style="color:red;">http://ccmv.javaeye.com/blog/78503</a>&nbsp;
          发表时间: 2007年05月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          有时会，有时不会的，郁闷死了。谁能解释下<br /><br /><pre name="code" class="java">** BEGIN NESTED EXCEPTION ** 

java.io.EOFException

STACKTRACE:

java.io.EOFException
	at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1395)
	at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1414)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:625)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1808)
	at com.mysql.jdbc.Connection.&lt;init>(Connection.java:452)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1463)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1004)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:804)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:744)
	at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:131)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1085)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:429)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:245)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:124)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1019)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:809)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
	at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)


** END NESTED EXCEPTION **

)
WARN  org.hibernate.cfg.SettingsFactory  - WARNCould not obtain connection metadata
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communication link failure: java.io.EOFException, underlying cause: null

** BEGIN NESTED EXCEPTION ** 

java.io.EOFException

STACKTRACE:

java.io.EOFException
	at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1395)
	at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1414)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:625)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1808)
	at com.mysql.jdbc.Connection.&lt;init>(Connection.java:452)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1463)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1004)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:804)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:744)
	at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:131)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1085)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:429)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:245)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:124)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1019)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:809)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
	at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)


** END NESTED EXCEPTION **

)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1463)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1004)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:804)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:744)
	at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:131)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1085)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:429)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:245)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:124)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1019)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:809)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
	at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: java.sql.SQLException: Communication link failure: java.io.EOFException, underlying cause: null

** BEGIN NESTED EXCEPTION ** 

java.io.EOFException

STACKTRACE:

java.io.EOFException
	at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1395)
	at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1414)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:625)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1808)
	at com.mysql.jdbc.Connection.&lt;init>(Connection.java:452)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1463)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1004)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:804)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:744)
	at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:131)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1085)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:429)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:245)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:124)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1019)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:809)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
	at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)


** END NESTED EXCEPTION **


	at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1447)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:625)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1808)
	at com.mysql.jdbc.Connection.&lt;init>(Connection.java:452)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
	... 54 more</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/78503#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 10 May 2007 14:30:27 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/78503</link>
        <guid>http://ccmv.javaeye.com/blog/78503</guid>
      </item>
      <item>
        <title>WEB2.0 圆形边框 div 使用 css 做法</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/54246" style="color:red;">http://ccmv.javaeye.com/blog/54246</a>&nbsp;
          发表时间: 2007年02月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          [codes=html]<br /><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><br />[/codes]<br /><br />复制代码存为html格式预览效果<br />Tags - <a href="tag.php?tag=%E5%9C%86%E5%BD%A2%E8%BE%B9%E6%A1%86" rel="tag">圆形边框</a> , <a href="tag.php?tag=div" rel="tag">div</a>
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/54246#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 12 Feb 2007 03:16:57 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/54246</link>
        <guid>http://ccmv.javaeye.com/blog/54246</guid>
      </item>
      <item>
        <title>tomcat jsp文件的预编译－ant脚本</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/54247" style="color:red;">http://ccmv.javaeye.com/blog/54247</a>&nbsp;
          发表时间: 2007年02月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          预编译可以防止outofMemery Exception，摸索了好些天终于弄出了个tomcat &nbsp;jsp文件的预编译的ant脚本<br />[codes=xml]<br /><?xml version="1.0" encoding="UTF-8"?><br /><br />[/codes]<br /><br />使用了下，效果还不错<br />希望对大家有用<br />Tags - <a href="tag.php?tag=ant" rel="tag">ant</a> , <a href="tag.php?tag=%E9%A2%84%E7%BC%96%E8%AF%91" rel="tag">预编译</a>
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/54247#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 09 Feb 2007 02:11:53 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/54247</link>
        <guid>http://ccmv.javaeye.com/blog/54247</guid>
      </item>
      <item>
        <title>java5.0 可变参数(Varargs)</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/54248" style="color:red;">http://ccmv.javaeye.com/blog/54248</a>&nbsp;
          发表时间: 2007年02月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br />
java5.0 可变参数(Varargs)<br />
可变参数使程序员可以声明一个接受可变数目参数的方法。注意，可变参数必须是函数声明中的最后一个参数。比如我们要写一些接受多参数的打印方法，举例子说明：<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span class="keyword">void</span><span>&nbsp;print(String&nbsp;name);&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">void</span><span>&nbsp;print(String&nbsp;name,Object&nbsp;obj);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">void</span><span>&nbsp;print(String&nbsp;name,Object&nbsp;obj1,Object&nbsp;obj2);&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
如果要在同一类种实现上面三个方法你可能要使用重载来实现，这样太麻烦了。下面看我利用java5.0的实现：<br />
<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;MyTest&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="comment">/**</span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;*&nbsp;@param&nbsp;args</span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;MyTest&nbsp;mt&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;MyTest();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;mt.print(<span class="string">&quot;shiming:&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;mt.print(<span class="string">&quot;shiming:&quot;</span><span>,</span><span class="string">&quot;shiming&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;mt.print(<span class="string">&quot;shiming:&quot;</span><span>,</span><span class="string">&quot;ccmv&quot;</span><span>,</span><span class="string">&quot;ivan&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;print(String&nbsp;name,Object...&nbsp;objs){&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;<span class="keyword">for</span><span>&nbsp;(Object&nbsp;obj:&nbsp;objs){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;System.out.println(name+obj);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
<br />
怎么样是不是很简单，可以接受无限个数的object。是不是很好用啊。<br />
<br />
或许你想说在jdk1.4种你可以使用map或数组来实现<br />
public void print(String name,Map objMap);这样毕竟使用起来不是很方便
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/54248#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 06 Feb 2007 05:40:51 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/54248</link>
        <guid>http://ccmv.javaeye.com/blog/54248</guid>
      </item>
      <item>
        <title>Spring 下的unit 测试</title>
        <author>ccmv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ccmv.javaeye.com">ccmv</a>&nbsp;
          链接：<a href="http://ccmv.javaeye.com/blog/54249" style="color:red;">http://ccmv.javaeye.com/blog/54249</a>&nbsp;
          发表时间: 2007年01月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Spring就不用多介绍了，我们来看看如何对其进行单元测试<br />首先我们利用AbstractTransactionalDataSourceSpringContextTests 类来建立了基础的spring测试环境<br />[codes=java]<br />import org.hibernate.SessionFactory;<br />import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;<br />public class BaseServiceTestCase extends AbstractTransactionalDataSourceSpringContextTests{<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;public BaseServiceTestCase(String str){<br />&nbsp;&nbsp;&nbsp;&nbsp;super(str);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;protected String[] getConfigLocations() {<br />&nbsp;&nbsp;&nbsp;&nbsp;return new String[]{"classpath:applicationContext*.xml"};//spring 配置文件地址<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp; protected void flushSession(){ <br /> &nbsp; &nbsp; &nbsp; &nbsp; SessionFactory sessionFactory = <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (SessionFactory)applicationContext.getBean("mySessionFactory"); <br /> &nbsp; &nbsp; &nbsp; &nbsp; sessionFactory.getCurrentSession().flush(); <br />&nbsp;&nbsp; } <br />}<br />[/codes] <br /><br />有了BaseServiceTestCase 后就可以进行service层的测试了<br />[codes=java]<br />public class TestCaseTempManagerTest extends BaseServiceTestCase{<br />&nbsp;&nbsp;public TestCaseTempManagerTest(String str) {<br />&nbsp;&nbsp;&nbsp;&nbsp;super(str);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;TestCaseTempImpl testCaseTempImpl;<br />&nbsp;&nbsp;TestCaseTemp testCaseTemp;<br />&nbsp;&nbsp;public TestCaseTempImpl getTestCaseTempImpl() {<br />&nbsp;&nbsp;&nbsp;&nbsp;return testCaseTempImpl;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;public void setTestCaseTempImpl(TestCaseTempImpl testCaseTempImpl) {<br />&nbsp;&nbsp;&nbsp;&nbsp;this.testCaseTempImpl = testCaseTempImpl;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;public void testSaveTemp(){<br />&nbsp;&nbsp;&nbsp;&nbsp;testCaseTempImpl.saveTestCaseTemp(testCaseTemp);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;protected void onSetUpBeforeTransaction() throws Exception {<br />&nbsp;&nbsp;&nbsp;&nbsp;testCaseTemp = new TestCaseTemp();<br />&nbsp;&nbsp;&nbsp;&nbsp;testCaseTemp.setBak("SHIMING UNITTEST");<br />&nbsp;&nbsp;}<br />}<br />[/codes]
          <br/><br/>
          <span style="color:red;">
            <a href="http://ccmv.javaeye.com/blog/54249#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 31 Jan 2007 02:26:32 +0800</pubDate>
        <link>http://ccmv.javaeye.com/blog/54249</link>
        <guid>http://ccmv.javaeye.com/blog/54249</guid>
      </item>
  </channel>
</rss>