<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>世界在变化</title>
    <description></description>
    <link>http://lsk.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>突然想到了!</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/195512" style="color:red;">http://lsk.javaeye.com/blog/195512</a>&nbsp;
          发表时间: 2008年05月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天来上班.突然想到利用velocity的模板来生成ajax后的html代码块.<br />以前是通过ajax来获得一组list数据.然后在页面的js当中进行组装.比如:<br /><pre name="code" class="java">
function getMessageByUser(page){
			var messages = $('messages');
			var userName = "xgliukun";
			var html = "&lt;table>";
			MessageUtils.getMessageByUser(userName,page,"getMessageByUser",function(data){
				if(data.length&lt;=1) {
					alert('not yet');
				}else{
			 		for(var i=0;i&lt;data.length-1 ;i++){
//generate HTML code here!
				    	);
					}
			    	html +=data[data.length-1];
			    	html +="&lt;/table>";
					messageshow.innerHTML=html;
				}
			});
		}
</pre><br />不光是程序员调试不方便.而且美工也非常不方便.于是换了一种想法.在js当中将template的路径传到java类.然后利用Velocity.mergeTemplate将生成好的String传到页面上去.省去很多麻烦的js组装.而且很多template都可以重用.高度节省代码和时间.特别适合大规模的使用ajax,和ajax分页.<br /><br />不知各位有何高见?或者其他更舒服的办法
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/195512#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 22 May 2008 09:51:22 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/195512</link>
        <guid>http://lsk.javaeye.com/blog/195512</guid>
      </item>
      <item>
        <title>ubuntu8.04 源</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/192461" style="color:red;">http://lsk.javaeye.com/blog/192461</a>&nbsp;
          发表时间: 2008年05月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          deb http://ubuntu.cn99.com/ubuntu/ hardy main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ hardy-security main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ hardy-updates main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ hardy-proposed main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ hardy-backports main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu/ hardy main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu/ hardy-security main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu/ hardy-updates main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu/ hardy-proposed main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu/ hardy-backports main restricted universe multiverse<br />deb http://archive.ubuntu.com/ubuntu/ hardy multiverse<br />deb http://ubuntu.cn99.com/ubuntu-cn/ hardy main restricted universe multiverse
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/192461#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 13 May 2008 09:18:47 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/192461</link>
        <guid>http://lsk.javaeye.com/blog/192461</guid>
      </item>
      <item>
        <title>eclipse下切换svn用户</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/190957" style="color:red;">http://lsk.javaeye.com/blog/190957</a>&nbsp;
          发表时间: 2008年05月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          刚换了个ubuntu8.04系统. eclipse什么的都是从同事那边拷过来.结果发现提交SVN的时候是同事的用户名,郁闷~,google解决:<br />1,window-->Preferences-->SVN-->Menu Icons 选择Icon Set 为Subversive<br /> (确保你已经sudo apt-get install subversion)<br />2,到eclipse下的目录/configuration/org.eclipse.core.runtime 删除.keyring<br />是个隐藏文件.ls -a吧<br />然后在随便改个文件提交到SVN.会提示你输入密码.用户就是你当前的用户.<br /><br />顺便提一下.命令行下执行 svn commit -F aFile.txt --no-auth-cache 会在提交时候要你输入密码(就是不使用当前用户的密码缓存).用户名和密码缓存在这个目录~/.subversion/auth/下面.
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/190957#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 08 May 2008 10:51:43 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/190957</link>
        <guid>http://lsk.javaeye.com/blog/190957</guid>
      </item>
      <item>
        <title>spring Transaction Manager和hibernate session 吐血经验谈</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/178794" style="color:red;">http://lsk.javaeye.com/blog/178794</a>&nbsp;
          发表时间: 2008年04月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          记录我在使用spring,hibernate的时候遇到的session,和事务管理的问题.<br />spring用一个OpenSessionInView的filter来处理session was closed的问题.这个大家并不陌生.<br />我们项目当中的dao层有一个baseDao. 封装了一系列对持久化对象的操作方法.C,R,U,D 条件查询.分页查询.等等.而且baseDao当中的所有的find方法都是readOnly的,get和load直接调用的hibernateTemplate的get和load.当然service层当中的事务管理也是使用spring的那个事务模板.<br /><pre name="code" class="java">
&lt;bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		&lt;property name="sessionFactory">
			&lt;ref local="sessionFactory" />
		&lt;/property>
	&lt;/bean>
	
	 
	&lt;bean id="txProxyTemplate" lazy-init="true" abstract="true"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
		&lt;property name="transactionManager">
			&lt;ref bean="transactionManager" />
		&lt;/property>
		&lt;property name="transactionAttributes">
			&lt;props>
				&lt;prop key="save*">PROPAGATION_REQUIRED&lt;/prop>
				&lt;prop key="del*">PROPAGATION_REQUIRED&lt;/prop>
				&lt;prop key="update*">PROPAGATION_REQUIRED&lt;/prop>
				&lt;prop key="create*">PROPAGATION_REQUIRED&lt;/prop>
				&lt;prop key="add*">PROPAGATION_REQUIRED&lt;/prop>
				&lt;prop key="find*">PROPAGATION_REQUIRED,readOnly&lt;/prop>
				&lt;prop key="get*">PROPAGATION_REQUIRED,readOnly&lt;/prop>
				&lt;prop key="*">PROPAGATION_REQUIRED&lt;/prop>
			&lt;/props>
		&lt;/property>
	&lt;/bean>
</pre><br />以上配置都OK.<br />我遇到的问题有几个, 如下:<br />问题1,需要实现这样一个业务逻辑: 先把对象find出来.然后改变某个属性.然后在update. 在service当中就会写这样一个方法.changeOrder.在changeOrder当中先用dao的find.然后在用dao的update.理论上是可行的.因为service的事务都是被spring的事务模板托管.而且changeOrder得到的connection是可写的.(因为spring的事务模板根据对方法名的匹配来判断获得得connection类型).但是由于baseDao.当中的所有find方法都是 setReadyOnly(true). 这样.当在service执行任何find的时候.baseDao将强行把connection改为只读的.接下来在一个事务当中.任何update 和save动作都不能完成了.但是直接执行hibernateTemplate的get和load却不会出现这个问题.因为这个connection的属性是由spring的openSessionInView来处理的.在request一过来的时候spring会绑定一个session.到request.直至request结束.(在这段过程当中如果不认为改变connection的readOnly的属性.这个connection将会从请求一开始到结束都是可以写入的.)<br /><br />解决的办法就是在自己的dao当中将find方法重载.将readOnly改为false.<br /><br />问题2, 有两个方法.一个是get对象.一个是find对象.同样也是直接调用baseDao的get和find方法.<br />当我对一个对象进行编辑操作的时候发现service当中的update是有效的. 但是我find出来的对象.在利用service当中的update来更新却发现没有任何异常.但是就是更新不了对象.<br />后来才明白.get方法当中是没有对connection进行任何readOnly相关的操作.但是baseDao当中却设置了只读..这个时候又有一些疑问了. action并没有进行事务管理.当先调用service的find方法(也就是调用了baseDao中的find方法).这一个事务已经提交了.然后在继续调用service的update.为什么会更新不了对象?<br />原因就是在于OpenSessionInView.绑定的一个session对象在这一次的request当中.所以.从一次request.开始到结束.这个request仅仅会操作当前的一个session对象. 尽管在action当中连续调用的两次service方法都有两个不同的事务范围.在一整个请求当中还是只存在一个session对象.<br />所以第一个service的find方法执行完毕之后已经将当前request范围内的session改成了readOnly.以后的所有的service操作都是只读的.后面的service一些save或者update方法都会失效.....这就是OpenSessionInView和事务之间的微妙关系.<br /><br />问题3,在ajax异步调用当中.经常也会出现这一系列的问题.其实原理大都是一样.因为ajax后来也是一个以.dwr结尾的请求.在OpenSessionInView当中加入一个filtermapping 为 .dwr 这样它会拦截所有的.dwr请求.在所有的ajax操作当中会绑定一个session对象.<br /><br />总结一下: OpenSessionInView是一个filter.它会为每一个request绑定一个session.任何接下来在这一次请求当中所有的hibernate操作.都是基于当前请求的这个session的.任何service或者dao把当前的session对象改为了readOnly后.接下来所有save or update操作将进行不了.尽管他们不是在一个service方法(不是在同一个事务当中进行).<br /><br /><br />BTW.service在很大程度上是可以和dao层混合到一起.这样可以节约很多代码.但是.也会带来维护的时候非常的负责.并且麻烦.特别是readOnly 和session was closed问题.会另你非常的沮丧.<br />dao实际上是不需要用transaction来管理的.真正需要事务的是项目当中的service层.理解才是最重要的.用好OpenSessionInView会给项目带来极大的方便.
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/178794#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 02 Apr 2008 13:35:07 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/178794</link>
        <guid>http://lsk.javaeye.com/blog/178794</guid>
      </item>
      <item>
        <title>ubuntu 安装配置samba服务</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/177632" style="color:red;">http://lsk.javaeye.com/blog/177632</a>&nbsp;
          发表时间: 2008年03月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1,安装samba服务: sudo apt-get install samba<br />2,sudo gedit /etc/samba/smb.conf 编辑smb.conf 文件. (注意备份先)<br />3,找到; security = user那一行<br />替换为<br /><pre name="code" class="java">
security = user
username map = /etc/samba/smbusers
</pre><br />找到[global]<br />把workgroup = MSHOME改为<br /><pre name="code" class="java">
workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
</pre><br />然后在配置文件最后面加入<br /><pre name="code" class="java">
[Share] 
comment = Shared Folder with username and password
path = /home/lsk/test
public = yes
writable = yes
valid users = username
create mask = 0700
directory mask = 0700
force user = nobody
force group = nogroup
available = yes
browseable = yes
</pre><br />[Share]是在局域网当中共享的文件夹名称<br />valid users是允许网络用户帐户<br /><br />4,sudo gedit /etc/samba/smbusers增加允许访问的用户帐户<br />在smbusers 中添加<br /><pre name="code" class="java">
 username = "network username"
</pre><br />其中user就是刚才smb.conf 当中那个user<br /><br />5,如果系统当中没有user此用户则添加.<br />sudo useradd username<br />编辑用户密码<br />sudo smbpasswd -a username <br />删除用户<br />sudo smbpasswd -x username
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/177632#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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>Sat, 29 Mar 2008 19:01:45 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/177632</link>
        <guid>http://lsk.javaeye.com/blog/177632</guid>
      </item>
      <item>
        <title>spring2.0中的quartz</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/173924" style="color:red;">http://lsk.javaeye.com/blog/173924</a>&nbsp;
          发表时间: 2008年03月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          注意spring applicationContext.xml的语法是2.0的.所以要注意文件头部.<br />改为:<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
</pre><br /><br />然后在配置文件中定义一个schedule的Factory<br /><pre name="code" class="java">
&lt;bean id="scheduler"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		&lt;property name="triggers">
			&lt;list>
				&lt;ref local="triggerJobTester" />
			&lt;/list>
		&lt;/property>
	&lt;/bean>
</pre><br />这个schedule工厂bean会随着容器启动而启动.然后定义一个定时执行的规则.<br /><pre name="code" class="java">
&lt;!-- 描述了一个定时处理的机制 -->
&lt;bean id="triggerJobTester"
		class="org.springframework.scheduling.quartz.SimpleTriggerBean"
		p:jobDetail-ref="jobDetailTesterTarget" p:startDelay="1000"
		p:repeatInterval="2000">
	&lt;/bean>
&lt;!-- 指定定时器要定时执行的类和方法 -->
&lt;bean id="jobDetailTesterTarget"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
		p:targetObject-ref="scheduleTarget" p:targetMethod="testMethod">
	&lt;/bean>
&lt;!-- 在sping当中注册定时器的FactoryBean -->
	&lt;bean id="scheduleTarget"
		class="com.lsk.spring.schedule.ScheduleTarget" />
</pre><br />p:startDelay 指定容器启动后多少毫秒开始执行定时方法.<br />p:repeatInterval 指定隔多少毫秒再一次的执行定时方法.
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/173924#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 19 Mar 2008 23:04:01 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/173924</link>
        <guid>http://lsk.javaeye.com/blog/173924</guid>
      </item>
      <item>
        <title>java对象排序方法</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/168987" style="color:red;">http://lsk.javaeye.com/blog/168987</a>&nbsp;
          发表时间: 2008年03月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">
public class BookRes {

		private String bookId;

		private String productId;

		private String bookName;

		private Integer count = 1;

		public String getProductId() {
			return productId;
		}

		public void setProductId(String productId) {
			this.productId = productId;
		}

		public String getBookName() {
			return bookName;
		}

		public void setBookName(String bookName) {
			this.bookName = bookName;
		}

		public Integer getCount() {
			return count;
		}

		public void setCount(Integer count) {
			this.count = count;
		}

		public String getBookId() {
			return bookId;
		}

		public void setBookId(String bookId) {
			this.bookId = bookId;
		}
	}

	public class BookResComparator implements Comparator {

		public int compare(Object o1, Object o2) {
			BookRes b1 = (BookRes) o1;
			BookRes b2 = (BookRes) o2;
			if (b1.getCount() &lt; b2.getCount())
				return 1;
			else {

				return 0;
			}
		}

	}
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/168987#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 07 Mar 2008 11:04:03 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/168987</link>
        <guid>http://lsk.javaeye.com/blog/168987</guid>
      </item>
      <item>
        <title>wrodpress程序</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/167830" style="color:red;">http://lsk.javaeye.com/blog/167830</a>&nbsp;
          发表时间: 2008年03月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          wordPress
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/167830#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 04 Mar 2008 17:54:08 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/167830</link>
        <guid>http://lsk.javaeye.com/blog/167830</guid>
      </item>
      <item>
        <title>js 导出excel</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/167047" style="color:red;">http://lsk.javaeye.com/blog/167047</a>&nbsp;
          发表时间: 2008年03月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">function AllAreaExcel(){

  var oXL = new ActiveXObject("Excel.Application");

  var oWB = oXL.Workbooks.Add();

  var oSheet = oWB.ActiveSheet; 

  var sel=document.body.createTextRange();

  sel.moveToElementText(PrintA);

  sel.select();

  sel.execCommand("Copy");

  oSheet.Paste();

  oXL.Visible = true;

 }</pre>
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/167047#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 03 Mar 2008 18:04:24 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/167047</link>
        <guid>http://lsk.javaeye.com/blog/167047</guid>
      </item>
      <item>
        <title>eclipse code formatter</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/166850" style="color:red;">http://lsk.javaeye.com/blog/166850</a>&nbsp;
          发表时间: 2008年03月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          eclipse update site :<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;bookmarks>
   &lt;site name="aptana" url="http://update.aptana.com/install/3.2/site.xml" web="false" selected="true" local="false"/>
   &lt;site name="veloeclipse" url="http://propsorter.sourceforge.net/veloeclipse" web="false" selected="false" local="false"/>
   &lt;site name="springide" url="http://springide.org/updatesite" web="false" selected="true" local="false"/>
   &lt;site name="ObjectWeb update site" url="http://download.forge.objectweb.org/eclipse-update/site.xml" web="false" selected="false" local="false"/>
   &lt;site name="Plugin update site produced by Chomakichi" url="http://propedit.sourceforge.jp/eclipse/updates/" web="false" selected="false" local="false"/>
   &lt;site name="Subclipse update site" url="http://subclipse.tigris.org/update_1.2.x" web="false" selected="false" local="false"/>
   &lt;site name="Azzurri Plugins Discovery Site" url="http://www.azzurri.co.jp/eclipse/plugins" web="false" selected="false" local="false"/>
   &lt;site name="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates" web="false" selected="false" local="false"/>
   &lt;site name="Eclipse Modeling Framework (EMF) Updates" url="http://download.eclipse.org/modeling/emf/updates/" web="false" selected="false" local="false"/>
   &lt;site name="Eclipse Modeling Framework Technologies (EMFT) Updates" url="http://download.eclipse.org/technology/emft/updates/" web="false" selected="false" local="false"/>
   &lt;site name="The Eclipse Project Updates" url="http://update.eclipse.org/updates/3.3" web="false" selected="false" local="false"/>
   &lt;site name="Model Developement Tools (MDT) Updates" url="http://download.eclipse.org/modeling/mdt/updates/" web="false" selected="false" local="false"/>
   &lt;site name="Europa Discovery Site" url="http://download.eclipse.org/releases/europa" web="false" selected="false" local="false"/>
   &lt;site name="MyEclipse Discovery Site" url="http://downloads.myeclipseide.com/downloads/products/eworkbench/discovery-6.0/" web="false" selected="false" local="false"/>
&lt;/bookmarks>
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/166850#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 03 Mar 2008 10:06:19 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/166850</link>
        <guid>http://lsk.javaeye.com/blog/166850</guid>
      </item>
      <item>
        <title>ubuntu 安装字体</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/166825" style="color:red;">http://lsk.javaeye.com/blog/166825</a>&nbsp;
          发表时间: 2008年03月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          安装微软的字体包<br />sudo apt-get install msttcorefonts
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/166825#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 03 Mar 2008 09:15:42 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/166825</link>
        <guid>http://lsk.javaeye.com/blog/166825</guid>
      </item>
      <item>
        <title>修改eva 字体设置</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/166382" style="color:red;">http://lsk.javaeye.com/blog/166382</a>&nbsp;
          发表时间: 2008年03月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          sudo gedit ~/.kde/share/config/kdeglobals<br /><br />加入<br />[General]<br />XftHintStyle=hintmedium<br />XftSubPixel=<br />fixed=Vera Sans YuanTi,9,-1,5,50,0,0,0,0,0<br />font=Vera Sans YuanTi,9,-1,5,50,0,0,0,0,0<br />menuFont=Vera Sans YuanTi,9,-1,5,50,0,0,0,0,0<br />taskbarFont=Vera Sans YuanTi,9,5,50,0,0,0,0,0<br />toolBarFont=Vera Sans YuanTi,9,-1,5,50,0,0,0,0,0
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/166382#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 01 Mar 2008 15:29:37 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/166382</link>
        <guid>http://lsk.javaeye.com/blog/166382</guid>
      </item>
      <item>
        <title>ubuntu JAVA环境</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/166345" style="color:red;">http://lsk.javaeye.com/blog/166345</a>&nbsp;
          发表时间: 2008年03月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          sudo gedit /etc/profile<br /><br />JAVA_HOME=/usr/lib/jdk1.6.0_04<br />export JAVA_HOME=$JAVA_HOME<br />(如果是自己下载的bin文件安装的JDK.则要加入这一段.否则maven识别不了系统的JAVA_HOME环境.如果是直接sudo apt-get install 安装的源当中的JDK就不需要.)<br />export ANT_HOME=/home/lsk/apache-ant-1.7.0<br />export MAVEN_HOME=/home/lsk/apache-maven-2.0.8<br />export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$ANT_HOME/bin:$PATH<br />export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH<br /><br />如果系统当中有2个或2个以上的JDK.可以选择系统的JDK版本<br />sudo update-alternatives --config java<br />或者修改JVM 文件当中的JDK顺序来选择需要的版本<br />sudo gedit /etc/jvm
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/166345#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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>Sat, 01 Mar 2008 10:46:51 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/166345</link>
        <guid>http://lsk.javaeye.com/blog/166345</guid>
      </item>
      <item>
        <title>递归实现javaeye的quote等功能</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/166035" style="color:red;">http://lsk.javaeye.com/blog/166035</a>&nbsp;
          发表时间: 2008年02月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近在项目当中要用到类似javaeye的 quote功能.想了一下简单在java当中用递归实现了.<br />方法体如下.<br /><pre name="code" class="java">
public static String quote(String str) {
		String res = str;
		StringBuffer result = new StringBuffer();
		String flag = "[quote=\"";
		String endFlag = "[/quote]";
		if (str.indexOf(flag) >= 0 && str.lastIndexOf(endFlag) > 0) {
			int start = str.indexOf(flag);
			String prefix = str.substring(0, start);
			String suffix = str.substring(str.lastIndexOf(endFlag) + endFlag.length(), str.length());
			String userName = str.substring(start + flag.length(), str.indexOf("\"", start + flag.length()));
			String startStrTmp = flag + userName + "\"]";
			int startTemp = str.indexOf(startStrTmp);
			String centerStr = str.substring(startTemp + startStrTmp.length(), str.lastIndexOf(endFlag));
			result.append(prefix);
			result.append("&lt;div class='quoteUser'>");
			result.append(userName);
			result.append("&lt;/div>");
			result.append("&lt;div class='quoteContent'>");
			result.append(centerStr);
			result.append("&lt;/div>");
			result.append(suffix);
			return quote(result.toString());
		}else {
			return res;			
		}
	}
</pre><br />有更好的办法,或者在效率上有更加优化的请指点
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/166035#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 29 Feb 2008 10:12:53 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/166035</link>
        <guid>http://lsk.javaeye.com/blog/166035</guid>
      </item>
      <item>
        <title>firefox和IE浏览器兼容问题(转)</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/165671" style="color:red;">http://lsk.javaeye.com/blog/165671</a>&nbsp;
          发表时间: 2008年02月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1.集合类对象问题<br />说明:IE下,可以使用()或[]获取集合类对象;<br />Firefox下,只能使用[]获取集合类对象.<br />解决方法:统一使用[]获取集合类对象.<br />2.HTML对象获取问题<br />FireFox：document.getElementById("idName");<br />ie:document.idname或者document.getElementById("idName").<br />解决办法：统一使用document.getElementById("idName");<br />3.const问题<br />说明:Firefox下,可以使用const关键字或var关键字来定义常量;<br />IE下,只能使用var关键字来定义常量.<br />解决方法:统一使用var关键字来定义常量.<br />4.window.event问题<br />说明:window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用.   Firefox必须从源处加入event作参数传递。Ie忽略该参数，用window.event来读取该event。<br />解决方法:<br />IE&Firefox:<br />Submitted(event)"/>   …<br />&lt;script   language="javascript"><br />function   Submitted(evt)   {<br />evt=evt?evt:(window.event?window.event:null);<br />}<br />&lt;/script><br />5.event.x与event.y问题<br />说明:IE下,even对象有x,y属性,但是没有pageX,pageY属性;<br />Firefox下,even对象有pageX,pageY属性,但是没有x,y属性.<br />解决方法:使用mX(mX   =   event.x   ?   event.x   :   event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX.<br />6.event.srcElement问题<br />说明:IE下,event对象有srcElement属性,但是没有target属性;<br />Firefox下,even对象有target属性,但是没有srcElement属性.<br />解决方法:使用obj(obj   =   event.srcElement   ?   event.srcElement   :   event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.     请同时注意event的兼容性问题。<br /><br />7.window.location.href问题<br />说明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;<br />Firefox1.5.x下,只能使用window.location.<br />解决方法:使用window.location来代替window.location.href.<br /><br />8.模态和非模态窗口问题<br />说明:IE下,可以通过showModalDialog和showModelessDialog打开模态和非模态窗口;Firefox下则不能.<br />解决方法:直接使用window.open(pageURL,name,parameters)方式打开新窗口。<br />如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口.<br />例如：var   parWin   =   window.opener;   parWin.document.getElementById("Aqing").value   =   "Aqing";<br /><br />9.frame问题<br />以下面的frame为例：<br />&lt;frame   src="xxx.html"   id="frameId"   name="frameName"   /><br /><br />(1)访问frame对象:<br />IE:使用window.frameId或者window.frameName来访问这个frame对象.   frameId和frameName可以同名。<br />Firefox:只能使用window.frameName来访问这个frame对象.<br />另外，在IE和Firefox中都可以使用window.document.getElementById("frameId")来访问这个frame对象.<br /><br />(2)切换frame内容:<br />在IE和Firefox中都可以使用window.document.getElementById("testFrame").src   =   "xxx.html"或window.frameName.location   =   "xxx.html"来切换frame的内容.<br />如果需要将frame中的参数传回父窗口(注意不是opener,而是parent   frame)，可以在frme中使用parent来访问父窗口。例如：parent.document.form1.filename.value="Aqing";<br /><br />10.body问题<br />Firefox的body在body标签没有被浏览器完全读入之前就存在；而IE的body则必须在body标签被浏览器完全读入之后才存在.<br /><br />11.   事件委托方法<br />IE：document.body.onload   =   inject;   //Function   inject()在这之前已被实现<br />Firefox：document.body.onload   =   inject();<br /><br />12.   firefox与IE的父元素(parentElement)的区别<br />IE：obj.parentElement<br />firefox：obj.parentNode<br />解决方法:   因为firefox与IE都支持DOM,因此使用obj.parentNode是不错选择.<br /><br />13.cursor:hand   VS   cursor:pointer<br />firefox不支持hand，但ie支持pointer<br />解决方法:   统一使用pointer<br /><br />14.innerText在IE中能正常工作，但是innerText在FireFox中却不行.   需用textContent。<br />解决方法:<br />if(navigator.appName.indexOf("Explorer")   >   -1){<br />        document.getElementById('element').innerText   =   "my   text";<br />}   else{<br />        document.getElementById('element').textContent   =   "my   text";<br />}<br /><br />15.   FireFox中设置HTML标签的style时，所有位置性和字体尺寸的值必须后跟px。这个ie也是支持的。<br /><br />16.   ie,firefox以及其它浏览器对于   table   标签的操作都各不相同，<br />在ie中不允许对table和tr的innerHTML赋值，使用js增加一个tr时，使用appendChild方法也不管用。<br />解决方法：<br />//向table追加一个空行：<br />var   row   =   otable.insertRow(-1);<br />var   cell   =   document.createElement("td");<br />cell.innerHTML   =   "   ";<br />cell.className   =   "XXXX";<br />row.appendChild(cell);<br /><br />17.   padding   问题<br />padding   5px   4px   3px   1px   FireFox无法解释简写,<br />必须改成   padding-top:5px;   padding-right:4px;   padding-bottom:3px;   padding-left:1px;<br /><br />18.   消除ul、ol等列表的缩进时<br />样式应写成:list-style:none;margin:0px;padding:0px;<br />其中margin属性对IE有效，padding属性对FireFox有效<br /><br />19.   CSS透明<br />IE：filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。<br />FF：opacity:0.6。<br /><br />20.   CSS圆角<br />IE：不支持圆角。<br />FF：   -moz-border-radius:4px，或者-moz-border-radius-topleft:4px;-moz-border-   radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-   bottomright:4px;。<br /><br />21.   CSS双线凹凸边框<br />IE：border:2px   outset;。<br />FF：   -moz-border-top-colors:   #d4d0c8   white;-moz-border-left-colors:   #d4d0c8   white;-moz-border-right-colors:#404040   #808080;-moz-border-bottom-colors:#404040   #808080;<br /><br />22.   对select的options集合操作<br />枚举元素除了[]外，SelectName.options.item()也是可以的,   另外SelectName.options.length,   SelectName.options.add/remove都可以在两种浏览器上使用。注意在add后赋值元素，否则会失败（本人试验如此）。<br /><br />23.   XMLHTTP的区别<br />//mf<br />if   (window.XMLHttpRequest)   //mf<br />    {<br />    xmlhttp=new   XMLHttpRequest()<br />    xmlhttp.onreadystatechange=xmlhttpChange<br />    xmlhttp.open("GET",url,true)<br />    xmlhttp.send(null)<br />    }<br />//ie<br />else   if   (window.ActiveXObject)     //   code   for   IE<br />    {<br />    xmlhttp=new   ActiveXObject("Microsoft.XMLHTTP")<br />        if   (xmlhttp)<br />        {<br />        xmlhttp.onreadystatechange=xmlhttpChange<br />        xmlhttp.open("GET",url,true)<br />        xmlhttp.send()<br />        }<br />    }<br />}<br />24.css中的width和padding<br />在IE7和FF中width宽度不包括padding，在Ie6中包括padding.
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/165671#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 28 Feb 2008 11:27:56 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/165671</link>
        <guid>http://lsk.javaeye.com/blog/165671</guid>
      </item>
      <item>
        <title>ubuntu 7.10 源</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/163742" style="color:red;">http://lsk.javaeye.com/blog/163742</a>&nbsp;
          发表时间: 2008年02月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          deb http://ubuntu.cn99.com/ubuntu gutsy main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu gutsy main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu gutsy-backports main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu gutsy-backports main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu gutsy-proposed main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu gutsy-proposed main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu gutsy-security main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu gutsy-security main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu gutsy-updates main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu gutsy-updates main restricted universe multiverse
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/163742#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 20 Feb 2008 23:01:00 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/163742</link>
        <guid>http://lsk.javaeye.com/blog/163742</guid>
      </item>
      <item>
        <title>ant模板代码</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/161219" style="color:red;">http://lsk.javaeye.com/blog/161219</a>&nbsp;
          发表时间: 2008年02月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">
&lt;?xml version="1.0"?>
&lt;project name="spring2.5" basedir="." default="usage">
&lt;property file="build.properties" />
&lt;property name="src.dir" value="src/main/java" />
&lt;path id="master-classpath">
	&lt;fileset dir="${web.dir}/WEB-INF/lib">
		&lt;include name="*.jar" />
	&lt;/fileset>
	&lt;pathelement path="${build.dir}" />
	&lt;pathelement path="${test.dir}" />
&lt;/path>
&lt;target name="usage">
&lt;echo message="${name} build file" />
&lt;/target>
&lt;target name="build" description="Compile main source tree java files">
		&lt;mkdir dir="${build.dir}" />
		&lt;javac destdir="${build.dir}" source="1.5" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true">
			&lt;src path="${src.dir}" />
			&lt;classpath refid="master-classpath" />
		&lt;/javac>
	&lt;/target>
&lt;target name="deploy" depends="build" description="Deploy application">
		&lt;copy todir="${deploy.path}/${name}" preservelastmodified="true">
			&lt;fileset dir="${web.dir}">
				&lt;include name="**/*.*" />
			&lt;/fileset>
		&lt;/copy>
	&lt;/target>
	&lt;target name="deploywar" depends="build" description="Deploy application as a WAR file">
		&lt;war destfile="${name}.war" webxml="${web.dir}/WEB-INF/web.xml">
			&lt;fileset dir="${web.dir}">
				&lt;include name="**/*.*" />
			&lt;/fileset>
		&lt;/war>
		&lt;copy todir="${deploy.path}" preservelastmodified="true">
			&lt;fileset dir=".">
				&lt;include name="*.war" />
			&lt;/fileset>
		&lt;/copy>
	&lt;/target>
	&lt;target name="clean" description="Clean output directories">
		&lt;delete>
			&lt;fileset dir="${build.dir}">
				&lt;include name="**/*.class" />
			&lt;/fileset>
		&lt;/delete>
	&lt;/target>
	&lt;target name="undeploy" description="Un-Deploy application">
		&lt;delete>
			&lt;fileset dir="${deploy.path}/${name}">
				&lt;include name="**/*.*" />
			&lt;/fileset>
		&lt;/delete>
	&lt;/target>
&lt;target name="dropTables">
			&lt;echo message="DROP TABLES USING: ${db.driver} ${db.url}" />
			&lt;sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue">
				&lt;classpath refid="master-classpath" />
	    DROP TABLE products;
	    &lt;/sql>
	&lt;/target>
	
	&lt;target name="createTables">
		&lt;echo message="CREATE TABLES USING: ${db.driver} ${db.url}" />
		&lt;sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue" src="db/create_products.sql">
			&lt;classpath refid="master-classpath" />
		&lt;/sql>
	&lt;/target>
	
	&lt;target name="loadData">
		&lt;echo message="LOAD DATA USING: ${db.driver} ${db.url}" />
		&lt;sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue" src="db/load_data.sql">
			&lt;classpath refid="master-classpath" />
		&lt;/sql>
	&lt;/target>
&lt;/project>
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/161219#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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>Sat, 02 Feb 2008 17:28:01 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/161219</link>
        <guid>http://lsk.javaeye.com/blog/161219</guid>
      </item>
      <item>
        <title>ubuntu的SSH</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/154960" style="color:red;">http://lsk.javaeye.com/blog/154960</a>&nbsp;
          发表时间: 2008年01月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          安装 SSH(Secure Shell) 服务以提供远程管理服务<br /><br />sudo apt-get install ssh<br /><br />从远程拷贝<br />scp user@host:/path/to/files  local_file_name<br /><br />拷贝到远程<br />scp local_file_name user@host:/path/to/files <br /><br />scp拷贝文件夹<br />scp -r local_directory user@host:/path/to/directory
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/154960#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 11 Jan 2008 09:04:19 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/154960</link>
        <guid>http://lsk.javaeye.com/blog/154960</guid>
      </item>
      <item>
        <title>dwr的同步和异步设置</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/154785" style="color:red;">http://lsk.javaeye.com/blog/154785</a>&nbsp;
          发表时间: 2008年01月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          项目当中用到了DWR,在页面加载数据的时候出现了一点小问题: 调用了一个ajax的方法得到一组数据量比较大的对象.当然在页面上已经被convert成了js数组.在整个异步调用的过程当中花的时间要多一些.结果导致了一些数据显示了.一些数据没显示.对下一步操作产生了影响. 解决的方法是<br />设置dwr的javascript:dwr.engine.setAsync(false); 将dwr的通信方式改成同步的.(既dwr会等待服务器.将数据接受完毕后.再继续进行.) <br />javascript:dwr.engine.setAsync(false);的作用域.是当前的整个页面.既是javascript:dwr.engine.setAsync(false)在同一张页面上有用.既设置了以后这张页面上的所有dwr方法都是同步的. 但是其他的页面如果用到了dwr调用远程方法还是异步的.
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/154785#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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 Jan 2008 16:25:47 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/154785</link>
        <guid>http://lsk.javaeye.com/blog/154785</guid>
      </item>
      <item>
        <title>Servlet2.4以上的filter新特性</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/154287" style="color:red;">http://lsk.javaeye.com/blog/154287</a>&nbsp;
          发表时间: 2008年01月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在Servlet2.4以下的版本中 WEB组件forward()到另外一个 WEB组件的时候是不执行filter.最近项目中既需要forward()的方式.又需要forward请求访问filter.查阅了一下google.发现Servlet2.4以上版本的可以配置filter的规则,如下:<br /><br />1,只有当request直接来自客户，过滤器才生效，对应为REQUEST条件。<br /><br />2,只有当request被一个请求分发器使用forward()方法转到一个Web构件时(采用或定义)，对应称为FORWARD条件。<br /><br />3,类似地，只有当request被一个请求分发器使用include()方法转到一个Web构件时(采用或定义)，对应称为INCLUDE条件。<br /><br />4,只有当request被一个请求分发器使用“错误信息页”机制方法转到一个Web构件时，对应称为ERROR条件。<br /><br />·第五种过滤器作用的条件可以是上面四种条件的组合。 <br /><br />然后在web.xml中指定某个filter的dispather代码如下:<br /><pre name="code" class="java">
&lt;filter-mapping>
		&lt;filter-name>cache&lt;/filter-name>
		&lt;url-pattern>/portal/**&lt;/url-pattern>
		&lt;dispatcher>FORWARD&lt;/dispatcher>
		&lt;dispatcher>REQUEST&lt;/dispatcher>
	&lt;/filter-mapping></pre><br />这样.不管是forward的请求还是request的请求.都会被这个filter过滤..
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/154287#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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>Wed, 09 Jan 2008 12:56:24 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/154287</link>
        <guid>http://lsk.javaeye.com/blog/154287</guid>
      </item>
      <item>
        <title>velocity输出乱码的问题</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/153103" style="color:red;">http://lsk.javaeye.com/blog/153103</a>&nbsp;
          发表时间: 2008年01月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          项目中用到velocity的模板功能.但是发现输出是乱码.spring配置文件如下:<pre name="code" class="java">
&lt;bean id="velocityConfig"	class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
		&lt;property name="configLocation">
			&lt;value>/WEB-INF/conf/velocity.properties&lt;/value>
		&lt;/property>
		&lt;property name="resourceLoaderPath">
			&lt;value>/WEB-INF/templates/&lt;/value>
		&lt;/property>
		&lt;property name="velocityProperties">
			&lt;props>
				&lt;prop key="resource.loader">file&lt;/prop>
				&lt;prop key="file.resource.loader.class">
					org.apache.velocity.runtime.resource.loader.FileResourceLoader
				&lt;/prop>
				&lt;prop key="input.encoding">UTF-8&lt;/prop>
				&lt;prop key="output.encoding">UTF-8&lt;/prop>
				&lt;prop key="file.resource.loader.cache">true&lt;/prop>
				&lt;prop
					key="file.resource.loader.modificationCheckInterval">
					2
				&lt;/prop>
				&lt;prop key="velocimacro.library">macro_ebuy.vm&lt;/prop>
			&lt;/props>
		&lt;/property>
	&lt;/bean>

&lt;bean id="viewResolver"
		class="com.jute.framework.web.velocity.VelocityViewResolver">
		&lt;property name="cache">
			&lt;value>true&lt;/value>
		&lt;/property>
		&lt;property name="prefix">
			&lt;value>/&lt;/value>
		&lt;/property>
		&lt;property name="suffix">
			&lt;value>.vm&lt;/value>
		&lt;/property>
		&lt;property name="contentType">
			&lt;value>text/html; charset=UTF-8&lt;/value>
		&lt;/property>
		&lt;property name="exposeSpringMacroHelpers">
			&lt;value>true&lt;/value>
		&lt;/property>
	&lt;/bean></pre><br />输出都是UTF-8的.但是打印在控控制台中的中文字符和符号都是乱码.后来将getTemplate方法换成Velocity.mergeTemplate(template, "UTF-8", context, writer);万事OK.
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/153103#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 04 Jan 2008 15:08:45 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/153103</link>
        <guid>http://lsk.javaeye.com/blog/153103</guid>
      </item>
      <item>
        <title>解决ajax中hibernate的lazy问题</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/151479" style="color:red;">http://lsk.javaeye.com/blog/151479</a>&nbsp;
          发表时间: 2007年12月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近在项目中使用ajax调用service的方法得到需要的po对象.由于对象于对象之间是一对多的关系.在one方hbm的配置文件中定义了一个list集合.用来表示它所关联的所有从对象.并且lazy="true"的.结果在页面调用的时候出现了session关闭的异常. 我在action和页面中的session生命周期也是利用spring的OpenSessionInView的模式.在web.xml中是通过*.do来拦截请求.<br />但是ajax的方法并没有被拦截到.<pre name="code" class="java">&lt;bean name="openSessionInViewInterceptor"
		class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
		&lt;property name="sessionFactory">
			&lt;ref bean="sessionFactory" />
		&lt;/property>
		&lt;property name="singleSession">
			&lt;value>true&lt;/value>
		&lt;/property>
		&lt;property name="flushModeName">
			&lt;value>FLUSH_AUTO&lt;/value>
		&lt;/property>
	&lt;/bean></pre><pre name="code" class="java">&lt;filter>
        &lt;filter-name>hibernateFilter&lt;/filter-name>
        &lt;filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter&lt;/filter-class>
    &lt;/filter>
&lt;filter-mapping>
        &lt;filter-name>hibernateFilter&lt;/filter-name>
        &lt;url-pattern>*.do&lt;/url-pattern>
    &lt;/filter-mapping></pre><br />但是ajax的方法并没有被拦截? <br />解决这个问题可以利用DTO.如果觉得DTO麻烦.可以在日志中拦截一下dwr请求的url.因为ajax调用服务器的通讯渠道是XHR.在FireFox装一个FindBugs.可以看到ajax发送请求的url地址.简单加入下面这样一段代码可以将所有的ajax请求都拦截到.<br /><pre name="code" class="java">&lt;filter-mapping>
        &lt;filter-name>hibernateFilter&lt;/filter-name>
        &lt;url-pattern>*.dwr&lt;/url-pattern>
    &lt;/filter-mapping></pre>
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/151479#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 28 Dec 2007 13:27:24 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/151479</link>
        <guid>http://lsk.javaeye.com/blog/151479</guid>
      </item>
      <item>
        <title>hibernate级联加载StackOverFlowException</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/151350" style="color:red;">http://lsk.javaeye.com/blog/151350</a>&nbsp;
          发表时间: 2007年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          项目中使用到了hibernate的one-to-many. 想偷偷懒就让hibernate自己管理关联关系。在加载主类对象的时候hibernate会自己加载这个主类的从类的所有对象。但是stack益出了。后来发现我的model对象都是继承BaseObject的。并且没有重载hashCode的方法。导致加载对象的时候会反复的加载主对象和从对象。造成了stack益出。解决方法就是在model对象中自己实现一下hashCode的方法。
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/151350#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 27 Dec 2007 22:06:21 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/151350</link>
        <guid>http://lsk.javaeye.com/blog/151350</guid>
      </item>
      <item>
        <title>关于对象的hashCode的讲解.</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/151264" style="color:red;">http://lsk.javaeye.com/blog/151264</a>&nbsp;
          发表时间: 2007年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          关于对对象的hashCode的一篇很不错的文章<br /><br />http://dev2dev.bea.com.cn/bbsdoc/20060807307.html
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/151264#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 27 Dec 2007 15:37:32 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/151264</link>
        <guid>http://lsk.javaeye.com/blog/151264</guid>
      </item>
      <item>
        <title>Connection is ReadOnly.</title>
        <author>lsk</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lsk.javaeye.com">lsk</a>&nbsp;
          链接：<a href="http://lsk.javaeye.com/blog/150769" style="color:red;">http://lsk.javaeye.com/blog/150769</a>&nbsp;
          发表时间: 2007年12月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近在一次项目中.用ajax调用dao的save方法.出现了个Connection is ReadOnly 的异常.查看配置文件<pre name="code" class="java">&lt;bean id="txProxyTemplate" lazy-init="true" abstract="true"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
		&lt;property name="transactionManager">
			&lt;ref bean="transactionManager" />
		&lt;/property>
		&lt;property name="transactionAttributes">
			&lt;props>
				&lt;prop key="save*">PROPAGATION_REQUIRED&lt;/prop>
				&lt;prop key="del*">PROPAGATION_REQUIRED&lt;/prop>
				&lt;prop key="update*">PROPAGATION_REQUIRED&lt;/prop>
				&lt;prop key="create*">PROPAGATION_REQUIRED&lt;/prop>
				&lt;prop key="send*">PROPAGATION_REQUIRED&lt;/prop>
				&lt;prop key="*">PROPAGATION_REQUIRED,readOnly&lt;/prop>
			&lt;/props>
		&lt;/property>
	&lt;/bean></pre><br />发现都没问题.百思不得其解.后来才偶然发现在ajax动作中用到了两个service对象.先是其中一个service的get方法.得到对象.的某些属性.然后在利用另外一个service来完哼save动作.结果一个service是被Transaction托管的.另外一个不是.这才恍然大悟...赶紧在没被托管的service中加上transaction. 问题解决...
          <br/>
          <span style="color:red;">
            <a href="http://lsk.javaeye.com/blog/150769#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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, 25 Dec 2007 17:33:10 +0800</pubDate>
        <link>http://lsk.javaeye.com/blog/150769</link>
        <guid>http://lsk.javaeye.com/blog/150769</guid>
      </item>
  </channel>
</rss>