<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-20653785</id><updated>2011-12-15T11:13:35.873+08:00</updated><category term='tools skill'/><category term='ant'/><category term='sql'/><category term='java'/><category term='pager'/><category term='auto boxing'/><category term='stored procedure'/><category term='算法 全排列'/><category term='Ajax js'/><category term='评价'/><category term='myeclipse'/><category term='exception'/><category term='lang'/><category term='spring bean propertyEditor'/><category term='yourkit&apos; jvm'/><category term='skill'/><category term='wordpress install'/><title type='text'>considerJava</title><subtitle type='html'>jay's java weblog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default?start-index=101&amp;max-results=100'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>125</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20653785.post-3072312378725017346</id><published>2009-04-10T00:09:00.001+08:00</published><updated>2009-04-10T00:09:49.200+08:00</updated><title type='text'>run guest OS as service</title><content type='html'>isn&amp;#39;t it a good idea to have your virtualbox based guest OS running on host system starting ?&lt;br&gt;&lt;br&gt;let me show you how it can be done :&lt;br&gt;&lt;br&gt;Suppose that you already have a guest os, such as JeOS. you can start it from command line :&lt;br&gt; &lt;br&gt;&amp;gt;VBoxManage startvm &amp;quot;Ubuntu Server&amp;quot; -type vrdp  #your server&amp;#39;s name , or vm id which you may already know. pay attention to the &amp;quot;-type vrdp&amp;quot;, it means starting the guestOS in non-GUI mode.&lt;br&gt; &lt;br&gt;the script for shutdown is :&lt;br&gt;&lt;br&gt;&amp;gt;VBoxManage controlvm &amp;quot;Ubuntu Server&amp;quot; poweroff&lt;br&gt;&lt;br&gt;these two lines are the core code, we write a shell file to include it (lets name it &lt;a href="http://ubuntu.server.sh"&gt;ubuntu.server.sh&lt;/a&gt; and put it under /etc/iniit.d/ , omit the file content....), and schedule it :&lt;br&gt; &lt;br&gt;&amp;gt;sudo update-rc.d &lt;a href="http://ubuntu.server.sh"&gt;ubuntu.server.sh&lt;/a&gt; start 40 2 3 . stop 01 0 1 6 .&lt;br&gt;&lt;br&gt;now you dont have to start the guestOS manually every time restart the machine :)&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-3072312378725017346?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/3072312378725017346/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=3072312378725017346' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3072312378725017346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3072312378725017346'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2009/04/run-guest-os-as-service.html' title='run guest OS as service'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-1728328270988549185</id><published>2008-07-23T17:53:00.001+08:00</published><updated>2008-07-23T17:53:19.290+08:00</updated><title type='text'>the jsp-config trap</title><content type='html'>&lt;div dir="ltr"&gt;There will be conflict if configure the servlet and jsp-config the same pattern as below :&lt;br&gt;&lt;br&gt;&amp;lt;servlet-mapping&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;url-pattern&amp;gt;/system/*&amp;lt;/url-pattern&amp;gt;&lt;br&gt;&amp;lt;/servlet-mapping&amp;gt;&lt;br&gt;  &lt;br&gt;&amp;lt;jsp-property-group&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;url-pattern&amp;gt;/system/*&amp;lt;/url-pattern&amp;gt;&lt;br&gt;&lt;br&gt;if a request came, &amp;quot;/system/watch&amp;quot; for example, Tomcat will pass the request to the jsp container,&lt;br&gt;since jsp container cannot found any jsp fit this request, an http 404 would be returned.&lt;br&gt;  &lt;br&gt;I spent 3 hours and worked it out. here i list out some related resource :&lt;br&gt;1. the request process diagram &lt;br&gt;&lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/architecture/requestProcess.html" target="_blank"&gt;http://tomcat.apache.org/tomcat-6.0-doc/architecture/requestProcess.html&lt;/a&gt;&lt;br&gt;  2. org.apache.catalina.core.StandardContext&amp;nbsp; : how the war context was loaded.&lt;br&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-1728328270988549185?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/1728328270988549185/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=1728328270988549185' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/1728328270988549185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/1728328270988549185'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2008/07/jsp-config-trap.html' title='the jsp-config trap'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-6135859596006467094</id><published>2008-05-23T16:59:00.001+08:00</published><updated>2008-05-23T16:59:45.707+08:00</updated><title type='text'>控制Bundle的启动</title><content type='html'>在开放RCP程序时, 由于ActivationPolicy的存在(这是个优点, 保证OSGi只加载需要的Bundle), spring的osgi-extender并不能自动start, 这导致所有基于spring-osgi的bundle只能愣在那起不了作用. &lt;br&gt;&lt;br&gt;启动osgi-extender的方法是: 在config.ini里的osgi.bundles项里, 加入&lt;br&gt;&lt;br&gt;&lt;b&gt;org.springframework.bundle.osgi.extender@start&lt;/b&gt;&lt;br&gt; &lt;br&gt;这个OSGi能识别并且确保会执行Activator.start()方法.&lt;br&gt;目前, 俺仅找到这么一个方式被证明是正确的, 之前也尝试过写另一个Bundle来激活它, 可那个bundle本身都没被激活...&lt;br&gt;小发现: osgi.extender被start过一次后(通过console), 之后每次都会自动启动.&lt;br&gt;小小发现: org.eclipse.update.configurator不依赖于org.eclipse.update.core, 并且, 是它负责启动plugins/目录下的所有插件, 这就是为啥它的启动顺序排第三:&lt;br&gt; &lt;b&gt;&lt;br&gt;org.eclipse.update.configurator@3:start&lt;/b&gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-6135859596006467094?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/6135859596006467094/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=6135859596006467094' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6135859596006467094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6135859596006467094'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2008/05/bundle.html' title='控制Bundle的启动'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-7345914398876697087</id><published>2008-05-16T22:09:00.001+08:00</published><updated>2008-05-16T22:09:21.438+08:00</updated><title type='text'>Eclipse Monkey -- Eclipse 的脚本</title><content type='html'>Eclipse Monkey 是Dash下的兴趣项目， 由Aptana贡献，提供给Eclipse插件开发者使用。&lt;br&gt;&lt;br&gt;它是用javascript书写的, 用来支持在Eclipse运行时期执行一些操作， 就像可以通过Firebug提供的JS输入接口可以窥探页面DOM信息,&amp;nbsp; Eclipse Monkey可以访问整个运行时的上下文,&amp;nbsp; 比如获得当前选中的Editor并插入一段数字,&amp;nbsp; 激活/停止某个bundle/plugin. &lt;br&gt; &lt;br&gt;1.安装与运行&lt;br&gt;通过&lt;a href="http://download.eclipse.org/technology/dash/update/"&gt;update site&lt;/a&gt; , 安装后重启. 在菜单栏会出现&amp;quot;script&amp;quot;项, 选sample, 会自动在生成出一些sample脚本. 然后再看菜单栏的&amp;quot;script&amp;quot;项, 就会看到sample脚本已经可以执行了.如果想写自己的脚本, 就复制任意一个sample, 然后选&amp;quot;script&amp;quot;项下的&amp;quot;paste new script&amp;quot;&lt;br&gt; 2.语法与规则&lt;br&gt;注意文件最上几行的注释是元数据, 譬如Menu, Listener, DOM等, 不能省略.一般情况下main方法是执行入口, 如果是listener, 则依赖所触发的事件去调用相应的方法.&lt;br&gt;DOM里有已经定义好的对象, 比如editors, views等. 如获得当前激活的Editor的代码就是:&lt;br&gt;var ae = editors.activEditor;&lt;br&gt;这个不好用, 限制太多. 通过Packages就非常灵活了.Packages后面跟类的全限定名, 就能访问到这个类, 俺的喜好, 从Packages.org.eclipse.core.runtime.Platform基本上什么都能访问到.&lt;br&gt; Listener可以监听并执行脚本, 比如键盘监听, Editor/View被选中的监听.&lt;br&gt;3.延伸阅读&lt;br&gt;&lt;a href="http://aptana.com/monkey/"&gt;Aptana&lt;/a&gt;在EclipseCon的PPT以及Demo代码&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-7345914398876697087?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/7345914398876697087/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=7345914398876697087' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7345914398876697087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7345914398876697087'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2008/05/eclipse-monkey-eclipse.html' title='Eclipse Monkey -- Eclipse 的脚本'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-3281623782433001302</id><published>2008-04-03T12:07:00.001+08:00</published><updated>2008-04-03T12:07:47.058+08:00</updated><title type='text'>通过电脑收发短信</title><content type='html'>基本结构是, 用电脑控制手机收发短信.&lt;br&gt;&lt;br&gt;手机收发短信, 就象电脑上网需要一个猫一样, 也有一个&amp;quot;GSM-modem&amp;quot;. 插入SIM卡后, 就相当于给猫输入了用户名, 密码, 然后就可以打电话/发短信了.&lt;br&gt;&lt;br&gt;电脑与手机的数据传输, GSM在这方面有个规范, 叫做&amp;quot;AT&amp;quot;, 所有与&amp;quot;GSM-modem&amp;quot;的交互都是在这个协议上进行的. 在编程层次上, 这属于&lt;a href="http://dev.csdn.net/article/17/17465.shtm" target="_blank"&gt;串口编程&lt;/a&gt;&lt;br&gt; &lt;br&gt;大概流程是&lt;a href="http://blog.csdn.net/devercn/archive/2004/09/21/111809.aspx"&gt;这样的&lt;/a&gt;&lt;br&gt;&lt;br&gt;Nokia的手机除了早期出品的外, 基本上都可以通过pc suite实现这个功能, 它封装了这些交互细节. 我用的nokia 1116, 不被pc suite支持, 接口规范用的是FBUS, 在nokia官方网站上找不到相应的驱动程序, 不过有第三方的, 叫做&amp;quot;mobiMB&amp;quot;.&lt;a href="http://bbs.blueshow.net/read.php?tid=408116"&gt;这&lt;/a&gt;有破解版.&lt;br&gt; &lt;br&gt;市面上, 有种东西叫做&amp;quot;短信猫&amp;quot; , 基本上就是这个意思. 不用自己去diy了 :)&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-3281623782433001302?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/3281623782433001302/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=3281623782433001302' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3281623782433001302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3281623782433001302'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2008/04/blog-post.html' title='通过电脑收发短信'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-4845346371546171285</id><published>2008-01-07T14:37:00.001+08:00</published><updated>2008-01-07T14:37:05.788+08:00</updated><title type='text'>TPTP agent-controller 配置</title><content type='html'>&amp;nbsp;配置AgentController以profilejava程序.(用eclipse callisto版本的tptp)&lt;br&gt; 先设置AGENT_HOME=D:\dev\eclipseCallisto\plugins\org.eclipse.hyades.execution.win32.x86_4.2.2.v200701141614&lt;br&gt; 然后在jboss启动里加上下面的参数:&lt;br&gt; -XrunpiAgent:server=standalone,filters=tptp.profile.filters.txt,file=profilejboss.trcxml&lt;br&gt; 启动程序, 然后打开eclipse, 通过远程方式连1002端口就可以了.&lt;br&gt; &lt;br&gt; 其中tptp.profile.filters.txt是用来过滤profile的对象的, 内容/格式如下:&lt;br&gt; com.eha.*&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; include&lt;br&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; exclude&lt;br&gt; 包名&amp;nbsp;&amp;nbsp; 函数名&amp;nbsp; 过滤掉/包含&lt;br&gt; &lt;br&gt; 其中profilejboss.trcxml是在&amp;quot;standalone&amp;quot;模式下, 收集的数据, 这个可以被eclipse tptp打开.&lt;br&gt; &lt;br&gt; 最后说一下agent:server的4种模式:&lt;strong&gt;standalone&lt;/strong&gt;, &lt;strong&gt;enabled&lt;/strong&gt;, &lt;strong&gt;controlled&lt;/strong&gt;, &lt;strong&gt;application&lt;/strong&gt;&lt;br&gt; stantalone, 不需要通过eclipse做什么事, 完全独立运行, 最后会得出一个*.trcxml文件, 保存了profile的数据.&lt;br&gt; enabled, 默认的, 只有客户端请求时才采集数据, 否则什么也不做.&lt;br&gt; controlled, 加载agent的时候会暂停正常的java程序, 直到有客户端连上agent:server为止才恢复java程序运行.&lt;br&gt; application, 跟enabled没啥区别.&lt;br&gt; 除了standalone模式外, 其它的都只根据请求产生xml片断(fragment). &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-4845346371546171285?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/4845346371546171285/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=4845346371546171285' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/4845346371546171285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/4845346371546171285'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2008/01/tptp-agent-controller.html' title='TPTP agent-controller 配置'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-798098713907382908</id><published>2007-12-18T16:49:00.001+08:00</published><updated>2007-12-18T16:49:51.166+08:00</updated><title type='text'>ejb环境下的org.hibernate.TransientObjectException</title><content type='html'>网站上用户注册的同时还要给用户加分.&lt;br&gt;&lt;br&gt;以前ear部署时CallByValue设置的是false(ear-deployer.xml), 后来改成了true, 然后就不能加分了, 注册还是可以的, 就是一直报org.hibernate.TransientObjectException的异常.&lt;br&gt;&lt;br&gt;代码大概是这样的:&lt;br&gt;Consumer c = new Consumer();&lt;br&gt;c.setUsername(&amp;quot;uname001&amp;quot;); &lt;br&gt;c.setPassword(&amp;quot;pwordddd&amp;quot;);&lt;br&gt;service.save(c);//1&lt;br&gt;service.addPoints(c, 300);//2&lt;br&gt;&lt;br&gt;service是对EJB的引用(Stateless)&lt;br&gt;故事就是由EJB引起的.如果CallByValue=false, 在执行&amp;quot;1&amp;quot;后执行&lt;br&gt;System.out.println(c.getId());//841 &lt;br&gt;返回值不是空, 如果CallByValue=true, 返回值就是空.&lt;br&gt;&lt;br&gt;分析一下 : CallByValue时, Hibernate不能同步c的id.&lt;br&gt;&lt;br&gt;POJO有3种状态, Transient, Persistent, Detached, Transient是用&amp;quot;new&amp;quot; 实例化的, 执行hibernate的save操作, 会存储到数据库的同时更新这个对象, 变成Persistent.而在CallByValue=true 的情况下, hibernate无法更新到这个对象, 也就是说, 在上面1步骤执行的时候, hibernate没有办法更新c这个变量.&lt;br&gt;&lt;br&gt;废话多了, 好像也没大说明白....&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-798098713907382908?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/798098713907382908/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=798098713907382908' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/798098713907382908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/798098713907382908'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/12/ejborghibernatetransientobjectexception.html' title='ejb环境下的org.hibernate.TransientObjectException'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-6620819220176831637</id><published>2007-11-20T00:46:00.001+08:00</published><updated>2007-11-20T00:46:25.657+08:00</updated><title type='text'>访问EJB</title><content type='html'>Local的是不能在EJB外访问的, 否则会报这样的异常:&lt;br&gt; javax.ejb.EJBException: Invalid invocation of local interface (null container)&lt;br&gt;如果想独立启动junit测试访问ejb, 需要把ejb声明为Remote.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-6620819220176831637?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/6620819220176831637/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=6620819220176831637' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6620819220176831637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6620819220176831637'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/11/ejb.html' title='访问EJB'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-149775038300962472</id><published>2007-11-19T11:55:00.001+08:00</published><updated>2007-11-19T11:55:14.534+08:00</updated><title type='text'>jms定时发送</title><content type='html'>需求说在23:00至10:00这个区间不准向用户发短信, 如果有的话, 时间顺延.&lt;br&gt;jms标准并未提供定时发送的规范, 所以根据各实现的不同, 有不同处理方法, 在jboss中, 设置如下:&lt;br&gt;&lt;br&gt;//....&lt;br&gt;Message msg = session.createObjectMessage();&lt;br&gt;msg.setLongProperty(&amp;quot;JMS_JBOSS_SCHEDULED_DELIVERY&amp;quot;, time()); &lt;br&gt;//....&lt;br&gt;sender.send(msg);&lt;br&gt;其中time()返回的是msg发送的时间点, long类型. 如果是想立即发送的话, 值应该是&lt;br&gt;System.currentTimeMillis()&lt;br&gt;&lt;br&gt;&lt;a href="http://www.theserverside.com/discussions/thread.tss?thread_id=41364"&gt;tss讨论帖&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-149775038300962472?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/149775038300962472/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=149775038300962472' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/149775038300962472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/149775038300962472'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/11/jms.html' title='jms定时发送'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-5936570545448119059</id><published>2007-11-16T17:56:00.001+08:00</published><updated>2007-11-16T17:56:35.254+08:00</updated><title type='text'>今儿总算是明白了, 为什么那么多人追着学xml</title><content type='html'>&lt;a href="http://www.w3schools.com/xml/xml_xsl.asp"&gt;http://www.w3schools.com/xml/xml_xsl.asp&lt;/a&gt;&lt;br&gt;&lt;br&gt;非常清晰直观的sample.&lt;br&gt;&lt;br&gt;我觉得非常突出的一个优点是, 强制web designer更标准化地去做xsl.&lt;br&gt;&lt;br&gt;用html的话, 就很随便了, 可以拼凑出页面来.&lt;br&gt;&lt;br&gt;xml数据是独立出来的, 也方便供其它接口调用(ws?, 采集数据?) &lt;br&gt;&lt;br&gt;终于发觉它值得学了.....&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-5936570545448119059?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/5936570545448119059/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=5936570545448119059' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/5936570545448119059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/5936570545448119059'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/11/xml.html' title='今儿总算是明白了, 为什么那么多人追着学xml'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-4597968422804590223</id><published>2007-11-01T16:19:00.001+08:00</published><updated>2007-11-01T16:19:25.589+08:00</updated><title type='text'>函数式编程</title><content type='html'>适合做DSL.&lt;br&gt;包括回调(callback)这样的技巧.&lt;br&gt;感觉象一种&amp;quot;操作注入&amp;quot; , 相对&amp;quot;依赖注入&amp;quot;来说.&lt;br&gt;实现有Erlang和Haskell等, 高并发, 据说Erlang的http服务器比apache快15倍&lt;br&gt;&lt;br&gt;复杂的系统倾向于用这种语言, 代码比较优美, 相对较少. ref=&amp;gt;越少的代码越不容易出错&lt;br&gt;&lt;br&gt;少废话, 来几个链接&lt;br&gt;&lt;br&gt;&lt;a href="http://www.ibm.com/developerworks/cn/web/wa-javascript.html"&gt; http://www.ibm.com/developerworks/cn/web/wa-javascript.html&lt;/a&gt;&lt;br&gt;developerWorks上用js解释的&lt;br&gt;&lt;br&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-fp.html"&gt;http://www.ibm.com/developerworks/java/library/j-fp.html&lt;/a&gt; &lt;br&gt;java中的函数式编程&lt;br&gt;&lt;br&gt;&lt;a href="http://code.google.com/p/pure-functional-java/"&gt;http://code.google.com/p/pure-functional-java/&lt;/a&gt;&lt;br&gt;一个小项目, 大致实现了函数式编程.&lt;br&gt;&lt;br&gt;&lt;a href="http://chn.blogbeta.com/232.html"&gt;http://chn.blogbeta.com/232.html &lt;/a&gt;&lt;br&gt;一个从几千年开始讲起的函数式编程的历史.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-4597968422804590223?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/4597968422804590223/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=4597968422804590223' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/4597968422804590223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/4597968422804590223'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/11/blog-post.html' title='函数式编程'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-6364518154971654609</id><published>2007-09-24T10:58:00.001+08:00</published><updated>2007-09-24T10:58:44.256+08:00</updated><title type='text'>慎用System.exit()</title><content type='html'>写个程序, 给邮件列表里每个人都发封邮件.&lt;br&gt;&lt;br&gt;用main启动spring, 然后main就一直等, 一直等...spring就嘿咻嘿咻地启动线程, 发邮件, 启动线程, 发邮件.....&lt;br&gt;&lt;br&gt;然后就完成任务了~~~ :).&lt;br&gt;&lt;br&gt;后来, 又给了我一个邮件列表, 这次要带附件发送...&lt;br&gt;&lt;br&gt;问题来了, 程序还没等邮件发完, 就终止了....&lt;br&gt;&lt;br&gt;然后发现, 在读邮件列表时, 是一行一行地读的, 每读一个, 就发送给spring, 让spring去嘿咻嘿咻, 如果读到最后一行, 就执行 &lt;br&gt;System.exit(0);&lt;br&gt;问题就是这段代码了, 把它修改成&lt;br&gt;return;&lt;br&gt;OK了, 阳光明媚 :D&lt;br&gt;&lt;br&gt;虽然读到了最后一行, 但是, 后台的发送程序还没结束.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-6364518154971654609?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/6364518154971654609/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=6364518154971654609' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6364518154971654609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6364518154971654609'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/09/systemexit.html' title='慎用System.exit()'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-3167924993567438801</id><published>2007-09-06T17:32:00.001+08:00</published><updated>2007-09-06T17:32:46.844+08:00</updated><title type='text'>发现spring写的代码跟我的一样, 偷乐.....</title><content type='html'>我写了个StringArrayEditor, 后来发现spring有一个StringArrayPropertyEditor, 名字差不多, 看内容, 完全一样的, 呵呵.&lt;br&gt;&lt;br&gt;不过, 最后还是把我的代码删除掉了.....&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-3167924993567438801?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/3167924993567438801/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=3167924993567438801' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3167924993567438801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3167924993567438801'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/09/spring.html' title='发现spring写的代码跟我的一样, 偷乐.....'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-828967199536887114</id><published>2007-09-06T16:39:00.001+08:00</published><updated>2007-09-06T16:43:27.850+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spring bean propertyEditor'/><title type='text'>这是一个bug么?Spring.BeanWrapper</title><content type='html'>spring的BeanWrapper会存放属性值.&lt;br /&gt;&lt;p&gt;class A{&lt;br /&gt; BeanWrapper bw = new BeanWrapper(this);&lt;br /&gt; private String[] sa;&lt;br /&gt; //setter/getter....&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;给sa属性加了个属性编辑器StringArrayPropertyEditor&lt;br /&gt;我觉得, 这么调用, 应该不会出问题:&lt;br /&gt;&lt;br /&gt;A a = new A();&lt;br /&gt;a.setSa(new String[]{"a", "b", "c"});&lt;br /&gt;//我期望它的结果应该是   "a,b,c"&lt;br /&gt;a.bw.findCustomEditor(String[].class, "sa").getAsText();&lt;br /&gt;&lt;br /&gt;结果, 却是空, 不是找不到属性编辑器, 当你通过属性编辑器去获取属性值时, spring不会真正地去a这个类里面实时查找.只有当执行这句,&lt;br /&gt;上面的代码才能得到预期的结果:&lt;br /&gt;a.bw.setPropertyValue("sa", new String[]{"a", "b", "c"});&lt;/p&gt;&lt;p&gt;令人失望....咋就不去inspect一下'a'这个类捏?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-828967199536887114?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/828967199536887114/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=828967199536887114' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/828967199536887114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/828967199536887114'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/09/bug.html' title='这是一个bug么?Spring.BeanWrapper'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-1426955596595872282</id><published>2007-09-05T09:29:00.001+08:00</published><updated>2007-09-05T09:29:13.614+08:00</updated><title type='text'>老婆, 今天我又迟到鸟</title><content type='html'>车好堵啊, 一动也不动的, 我走到加工区那边, 还等了老半天才座上车的, 其实司机是往石化那边开的, 近一个小时一动也不动, 受不了了, 就掉头去莲花了, 哈哈.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-1426955596595872282?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/1426955596595872282/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=1426955596595872282' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/1426955596595872282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/1426955596595872282'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/09/blog-post.html' title='老婆, 今天我又迟到鸟'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-9166860480630345925</id><published>2007-08-31T17:24:00.001+08:00</published><updated>2007-08-31T17:24:10.202+08:00</updated><title type='text'>又一次谈classloading--java.lang.VerifyError</title><content type='html'>事情是这样的, ear里的war老部署不上去, war里的一个filter(确切的应该是acegi的filter, 托管给spring的)加载不了, 问题出在spring给它的doFilter方法注入属性被检测到verifyError.&lt;br&gt;&lt;br&gt;后来, 修改jbossweb-tomcat55.sar/META-INF/jboss-service.xml, 把Java2ClassLoadingCompliance属性设置为true, 就OK了. &lt;br&gt;&lt;br&gt;这个属性是jboss集成tomcat用的, 它的意思是, 是否把java2的&amp;quot;父类优先&amp;quot;加载模型替换为servlet 2.3的&amp;quot;web容器优先&amp;quot;&lt;br clear="all"&gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-9166860480630345925?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/9166860480630345925/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=9166860480630345925' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/9166860480630345925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/9166860480630345925'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/08/classloading-javalangverifyerror.html' title='又一次谈classloading--java.lang.VerifyError'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-3728113683778820855</id><published>2007-08-29T13:21:00.001+08:00</published><updated>2007-08-29T13:21:22.997+08:00</updated><title type='text'>jobss类加载</title><content type='html'>一般来说, 象httpclient, logging等, 不会从ear包内加载, 而是用jboss现有的.如果想加载, 要在meta-inf/下加个jboss-app.xml文件, 内容大概是:&lt;br&gt;&lt;pre class="programlisting"&gt;&amp;lt;jboss-app&amp;gt;&lt;br&gt;    &amp;lt;loader-repository&amp;gt;some.dot.com:loader=webtest.ear&amp;lt;/loader-repository&amp;gt; &lt;br&gt;&amp;lt;/jboss-app&amp;gt;&lt;/pre&gt;&lt;a href="http://docs.jboss.org/jbossas/jboss4guide/r5/html/ch2.chapter.html#ch2.scopedapp.ex"&gt;原文&lt;/a&gt;&lt;br&gt;&lt;br&gt;然后我就照这个办了, 后来发现还不行, 说是mdb(部署了一个message-driven bean)不合规范:&lt;br&gt;section:15.7.4&lt;br&gt;The message driven bean must declare one onMessage method  &lt;br&gt;&lt;br&gt;后来才发现, 不知道哪个傻X把geronimo-j2ee-spec.jar放到ear包里来了, NND, 估计是geronimo与jboss验证方法不一样吧.&lt;br&gt;&lt;br&gt;去掉就OK了. 还有个关于logging的, 不加jboss-app.xml的话, 会自动把你自己ear内的logging.jar忽略掉(而用jboss服务器的), 加了jboss-app.xml, ear的classLoader也会把ear里面的logging.jar加载上 , 然后Log对象就发现它有两个版本(一个jboss的, 一个ear载的).就会报错(检查的还挺仔细)&lt;br&gt;&lt;br&gt;再这么下去, 快成jboss专家了....&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it… &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-3728113683778820855?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/3728113683778820855/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=3728113683778820855' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3728113683778820855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3728113683778820855'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/08/jobss.html' title='jobss类加载'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-7580419567868813162</id><published>2007-08-28T17:51:00.001+08:00</published><updated>2007-08-28T17:51:36.753+08:00</updated><title type='text'>class 版本</title><content type='html'>Unsupported major.minor version 49.0&lt;br&gt;部署ejb的时候就出这问题, 也会出classNotFoundException. 原因是jdk5编译出来的class在jdk4上面不能.&lt;br&gt;这种问题...真让人无奈....&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it… &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-7580419567868813162?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/7580419567868813162/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=7580419567868813162' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7580419567868813162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7580419567868813162'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/08/class.html' title='class 版本'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-8773979631629623152</id><published>2007-07-25T14:39:00.001+08:00</published><updated>2007-07-25T14:39:02.178+08:00</updated><title type='text'>因无索引导致的性能问题</title><content type='html'>测试那边说, 页面打开很慢, 自己跑去试了下, 果然, 一个搜索结果页面, 大概要30s~60s, 查看了下代码, 发现是段hql执行问题, 就抽取出来单独测试, 这个查询类似这样的结构:&lt;br&gt;select count(*) from a, b where a.bid = b.bid;&lt;br&gt;&lt;br&gt;其中a表中的bid是b表的id外键. 每个表大概有7k条记录.这个查询每次都耗时30s, 后来把a表中的bid字段建立个属性, 速度就快多了, 大概是300ms~1s. &lt;br&gt;&lt;br&gt;以前一直没觉得索引有这么神奇的效果.....&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it… &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-8773979631629623152?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/8773979631629623152/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=8773979631629623152' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/8773979631629623152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/8773979631629623152'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/07/blog-post_25.html' title='因无索引导致的性能问题'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-6976633934192987986</id><published>2007-07-24T11:28:00.001+08:00</published><updated>2007-07-24T11:28:06.684+08:00</updated><title type='text'>接口参数类型</title><content type='html'>之前写过一个接口, 目的是更新FriendLink对象到数据库.形式如下:&lt;br&gt;&lt;br&gt;update(FriendLink link);&lt;br&gt;&lt;br&gt;接口的实现是这么写的:&lt;br&gt;update(FriendLink link){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dao.update(link);&lt;br&gt;}&lt;br&gt;&lt;br&gt;后来, 发现有弊病在: 这个接口依赖这样的事实: &lt;span style="font-weight: bold;"&gt;link已经存在于数据库中 &lt;/span&gt;.这样很容易产生潜在的不安全性, 外部的任何程序都可以随意构造一个FriendLink实例(而不是从数据库中取然后稍加修改而成的), 然后传入到这个接口, 然后产生异常. 还有个问题就是, 它限制了访问媒介为java对象(须先构造出FriendLink对象来, 才能访问到这个接口), 不利于其它形式的访问(如webServices, REST等---虽然可以, 但是须对FriendLink中accessor信息了然于胸). 所以应修改如下: &lt;br&gt;&lt;br&gt;update(long friendLinkId);&lt;br&gt;&lt;br&gt;传入基本类型(long), 声明说会对这个(id为friendLinkId的FriendLInk)作更新, 这样, &lt;span style="font-weight: bold;"&gt;link已经存在于数据库中&lt;/span&gt;&amp;nbsp; 这样的谓词是由接口内部来判断处理的. 对于其它形式的访问, 基本类型都是被支持的. 至于update的信息, 可以以参数形式, 或函数名形式展现, 如下: &lt;br&gt;update(long frindLinkId, Date accessDate); ①&lt;br&gt;或&lt;br&gt;updateAccessDate(long friendLinkId);②&lt;br&gt;&lt;br&gt;象②这样的只传入id的接口, 依赖于&amp;quot;执行更新所需信息可以从接口上下文得到&amp;quot;, 比如当前时间等.所以应用面比较狭窄, 不知道具体应该怎么处理(map参数?) &lt;span style="font-weight: bold;"&gt; :(&lt;/span&gt; (还是动态语言比较好, 象js的arguments参数很灵活)&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it… &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-6976633934192987986?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/6976633934192987986/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=6976633934192987986' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6976633934192987986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6976633934192987986'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/07/blog-post.html' title='接口参数类型'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-7759022110666772606</id><published>2007-07-24T10:26:00.001+08:00</published><updated>2007-07-24T10:26:44.362+08:00</updated><title type='text'>date 与 timestamp 类型</title><content type='html'>用一句话说就是:&lt;br&gt;timestamp比date精确.&lt;br&gt;用date只能搞到日期, 时间得不到, 所以在sql里面进行alter时, 只有timestamp=&amp;gt;date的转换, 如果想执行相反的转换会报异常.&lt;br&gt;&lt;br&gt;如果用hibernate进行映射, 一般来说是 java.util.Date=&amp;gt;timestamp.否则, 标志性的异常信息是batch update exception (不过有个有趣的现象是, 如果你设置hibernate.jdbc.batch_size 为0的话, 就能顺利执行, 应该是hibernate的bug)&lt;br&gt;P.S. 如果是用xdoclet映射字段, 不要这么写:&lt;br&gt;@hibernate.property column=&amp;quot;createDate&amp;quot; type=&amp;quot;date&amp;quot;&amp;nbsp; &lt;br&gt;把type写全:java.util.Date. 否则会引来不必要的麻烦: hibernate会把它错当成java.sql.Date :(&lt;br clear="all"&gt; &lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it… &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-7759022110666772606?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/7759022110666772606/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=7759022110666772606' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7759022110666772606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7759022110666772606'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/07/date-timestamp.html' title='date 与 timestamp 类型'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-4678697524244870045</id><published>2007-06-28T14:14:00.001+08:00</published><updated>2007-06-28T14:14:58.006+08:00</updated><title type='text'>将unicode转成中文及其它</title><content type='html'>找不到源文件了, 只好把.properties反转换成中文了&lt;br&gt;原理就是把.properties中的所有&amp;quot;\uxxxx&amp;quot;形式的转成对应的中文.&lt;br&gt;&lt;br&gt;String r = FileUtils.readFileToString(new File(&amp;quot;d:/aa.TXT&amp;quot;), &amp;quot;utf-8&amp;quot;);&lt;br&gt;Pattern p = Pattern.compile(&amp;quot;\\\\u([a-zA-Z0-9]{4})&amp;quot;); &lt;br&gt;String t = &amp;quot;&amp;quot;;&lt;br&gt;Matcher m = p.matcher(r);&lt;br&gt;while(m.find())&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t = m.group(1);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = r.replaceFirst(&amp;quot;\\\\u([a-zA-Z0-9]{4})&amp;quot;, String.valueOf(Character.toChars(Integer.parseInt(t, 16)))); &lt;br&gt;}&lt;br&gt;System.out.println(r);&lt;br&gt;&lt;br&gt;那个parseInt中的参数16表示t是16进制的字符串.&lt;br&gt;感觉还比较简洁的说~~~&lt;br&gt;&lt;br&gt;P.S. FileUtils是jakarta commons.io里的&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it… &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-4678697524244870045?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/4678697524244870045/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=4678697524244870045' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/4678697524244870045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/4678697524244870045'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/06/unicode.html' title='将unicode转成中文及其它'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-7970550982542866658</id><published>2007-06-14T17:01:00.001+08:00</published><updated>2007-06-14T17:01:26.709+08:00</updated><title type='text'>httpclient提交中文的问题.</title><content type='html'>提交的时候老出错, 把我的中文全给搞成问号, 后来看服务器上有个encodingfilter, 貌似只接收utf-8的.&lt;br&gt;&lt;br&gt;本来想的是看看httpclient里面哪里编码不对了, 改成utf-8,如此的思路.&lt;br&gt;&lt;br&gt;后来, 发现给http head加个meta就成了:&lt;br&gt;post.addRequestHeader(&amp;quot;Content-Type&amp;quot;,&amp;quot;application/x-www-form-urlencoded; charset=UTF-8&amp;quot;); &lt;br&gt;&lt;br&gt;真的是不能想太复杂鸟...&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it… &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-7970550982542866658?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/7970550982542866658/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=7970550982542866658' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7970550982542866658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7970550982542866658'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/06/httpclient.html' title='httpclient提交中文的问题.'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-8364735145839404610</id><published>2007-06-07T17:21:00.001+08:00</published><updated>2007-06-07T17:21:27.439+08:00</updated><title type='text'>其实, 除了actionForm还有更简便的方式的~</title><content type='html'>Spring的这个databinder真是好用:&lt;br&gt;&lt;br&gt;FriendLink bean = new FriendLink();&lt;br&gt;ServletRequestDataBinder binder = new ServletRequestDataBinder(bean, &amp;quot;link&amp;quot;);&lt;br&gt;CustomDateEditor editor = new CustomDateEditor(new SimpleDateFormat(&amp;quot;yyyy-M-d&amp;quot;), true); &lt;br&gt;binder.registerCustomEditor(Date.class, editor);&lt;br&gt;binder.bind(request);&lt;br&gt;&lt;br&gt;这样就自动给bean注入值了, 而且它已经自动拥有了处理multipart的能力, 真是不错. 只是没有处理日期格式的能力, 但是象上面的代码就可以了.&lt;br&gt;&lt;br&gt;顺便贴几个链接:&lt;br&gt;&lt;a href="http://www.java114.com/content26/content2563.html"&gt; link&lt;/a&gt; 用spring做项目时的一些设计上的技巧.&lt;br&gt;&lt;a href="http://www.springframework.org/docs/api/org/springframework/web/bind/ServletRequestDataBinder.html"&gt;link&lt;/a&gt;  ServletRequestDataBinder的官方文档.&lt;br&gt;&lt;a href="http://wayne.xmu.edu.cn/blog/?p=153"&gt; link&lt;/a&gt; 处理日期格式的方法就是从他这抄袭来的, 呵呵.&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it… &lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-8364735145839404610?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/8364735145839404610/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=8364735145839404610' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/8364735145839404610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/8364735145839404610'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/06/actionform.html' title='其实, 除了actionForm还有更简便的方式的~'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-7249367762522999475</id><published>2007-05-13T11:35:00.000+08:00</published><updated>2007-05-13T11:39:45.339+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lang'/><title type='text'>补: autoboxing</title><content type='html'>网上搜NPE，发现了&lt;a href="http://www.theserverside.com/blogs/thread.tss?thread_id=41731"&gt;别人&lt;/a&gt;跟&lt;a href="http://considerjava.blogspot.com/2007/03/autoboxingbug.html"&gt;我&lt;/a&gt;碰到同样的问题.&lt;a href="http://www.artima.com/forums/flat.jsp?forum=276&amp;thread=205261"&gt;这些人&lt;/a&gt;还建议不要用autoboxing. 有句倒说的很到位：The root cause of the NPE-related weirdness is that Java doesn't distinguish between pointers and "pointers that can be null". 这也应该是autoboxing问题的根源。&lt;br /&gt;&lt;br /&gt;P.S.  NPE=NullPointerException(看来这个异常很常见呢)&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-7249367762522999475?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/7249367762522999475/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=7249367762522999475' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7249367762522999475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7249367762522999475'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/05/autoboxing.html' title='补: autoboxing'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-2802793971573321252</id><published>2007-03-25T03:55:00.000+08:00</published><updated>2007-03-25T04:28:23.265+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='exception'/><title type='text'>java.sql.SQLException: java.lang.NegativeArraySizeException</title><content type='html'>有段java程序, 通过jdbc调用mysql的&lt;br /&gt;在执行分页查询的时候, 如果是这么写:&lt;br /&gt;select * from orders limit 1, 30;//第一页的30条&lt;br /&gt;没有任何问题.但是把它放到存储过程里(参见前一篇文章), 就会出那个exception,只要是页不满的情况都会报exception.但是有个特别的现象, 如果你把orders表清空, 然后执行java, 不会报错, 只有当行数大于某个值并且页不满才会报Exception.&lt;br /&gt;&lt;br /&gt;非常不明白....&lt;br /&gt;相对详细的代码在这:&lt;a href="http://lakemove.googlepages.com/negativearraysizeexception"&gt;link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-2802793971573321252?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/2802793971573321252/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=2802793971573321252' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/2802793971573321252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/2802793971573321252'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/03/javasqlsqlexception-javalangnegativearr.html' title='java.sql.SQLException: java.lang.NegativeArraySizeException'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-6576064616196059284</id><published>2007-03-24T06:54:00.000+08:00</published><updated>2007-03-24T07:00:29.146+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myeclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='评价'/><title type='text'>myeclipse差劲</title><content type='html'>除了它集成的那几个Eclipse Foundation的项目外, 基本上都很差.&lt;br /&gt;特别是UML, 当初看着感觉还不错, 用着问题就出来了: 不能识别泛型, 不能导入类, 删除类/关系删不干净, 生成的代码错误百出.最要命的是它还搞罢工, 本来就是serialize的object, 出点问题就死翘翘了.慎用....非常不稳定&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-6576064616196059284?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/6576064616196059284/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=6576064616196059284' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6576064616196059284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6576064616196059284'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/03/myeclipse.html' title='myeclipse差劲'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-7327481490329919740</id><published>2007-03-24T01:14:00.000+08:00</published><updated>2007-03-24T01:30:08.292+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='pager'/><category scheme='http://www.blogger.com/atom/ns#' term='stored procedure'/><title type='text'>mysql的分页存储过程</title><content type='html'>一般的分页面可以这样直接写在sql里面:&lt;br /&gt;&lt;code lang="sql"&gt;&lt;br /&gt;select * from test limit 3, 20;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;表示每页显示20个, 第3页.这种写法不能通过PreparedStatement执行, 因为它是编译过的, 存储过程同理.所以这样写不会成功:&lt;br /&gt;&lt;code lang="sql"&gt;&lt;br /&gt;create procedure pager (in pno int, in psize int)&lt;br /&gt;begin&lt;br /&gt;  declare pp int default 0;&lt;br /&gt;  set pp = (pno - 1) * psize;&lt;br /&gt;  select * from pager limit pp, psize;&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;应该算是mysql的&lt;a href="http://bugs.mysql.com/bug.php?id=11918"&gt;bug&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;有个折衷的办法:&lt;br /&gt;&lt;code lang="mysql"&gt;&lt;br /&gt;create procedure pager (in _pno int, in _psize int)&lt;br /&gt;begin&lt;br /&gt;  prepare stmt from "select * from test limit ?,?";&lt;br /&gt;  set @pno = (_pno - 1) * _psize;&lt;br /&gt;  set @psize = _psize;&lt;br /&gt;  execute stmt using @pno, @psize;&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;a href="http://forums.mysql.com/read.php?98,28212,28212#msg-28212"&gt;link&lt;/a&gt;, &lt;a href="http://bugs.mysql.com/bug.php?id=7306"&gt;link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-7327481490329919740?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/7327481490329919740/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=7327481490329919740' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7327481490329919740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7327481490329919740'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/03/mysql.html' title='mysql的分页存储过程'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-4129051906668697956</id><published>2007-03-22T23:50:00.000+08:00</published><updated>2007-03-23T01:49:39.237+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='auto boxing'/><title type='text'>autoboxing的bug么?</title><content type='html'>碰到这么个问题:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Double d = null;&lt;br /&gt;double e = d;&lt;br /&gt;System.out.println(e);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;这会出问题, d不能自动autounboxing为double.会报nullPointer异常.&lt;br /&gt;所以在做ibatis映射的时候, bean的属性需要是Double类型的.否则会有不必要的问题.&lt;br /&gt;失望....&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-4129051906668697956?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/4129051906668697956/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=4129051906668697956' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/4129051906668697956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/4129051906668697956'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/03/autoboxingbug.html' title='autoboxing的bug么?'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-8190659122770984254</id><published>2007-03-15T18:36:00.000+08:00</published><updated>2007-03-15T18:52:57.780+08:00</updated><title type='text'>dbdesigner不能连mysql的问题.</title><content type='html'>dbdesigner连mysql老报错:&lt;br /&gt;cannot connect to mysql : invalid username/password&lt;br /&gt;&lt;br /&gt;把password在mysql中更新一下就好了:&lt;br /&gt;&lt;span class="postbody"&gt;mysql&gt; set password for 'root'@'localhost' =OLD_PASSWORD('newpassword');&lt;br /&gt;一个与老版本兼容的问题,&lt;a href="http://www.mysqltalk.org/dbdesigner-4-connection-problem-with-mysql-db-vt86174.html"&gt; link&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-8190659122770984254?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/8190659122770984254/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=8190659122770984254' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/8190659122770984254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/8190659122770984254'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/03/dbdesignermysql.html' title='dbdesigner不能连mysql的问题.'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-3579146484710791682</id><published>2007-03-13T01:57:00.000+08:00</published><updated>2007-03-13T01:58:41.434+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax js'/><title type='text'>目前Ajax主要存在的问题</title><content type='html'>&lt;ul&gt;&lt;li&gt;Accessibility问题。&lt;/li&gt;&lt;li&gt;主要开源框架(prototype和dojo)文档不足。&lt;/li&gt;&lt;li&gt;缺乏好的跨域机制。XMLHttpRequest不行，Doug Crockford的JSONRequest不错，但是很难被微软采纳。&lt;/li&gt;&lt;li&gt;跨浏览器编程仍然非常麻烦。&lt;/li&gt;&lt;li&gt;对Comet (HTTP Streaming) 的重要性仍然认识不足。&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-3579146484710791682?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/3579146484710791682/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=3579146484710791682' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3579146484710791682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3579146484710791682'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/03/ajax.html' title='目前Ajax主要存在的问题'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-667795479733022681</id><published>2007-03-09T18:24:00.000+08:00</published><updated>2007-03-09T18:31:04.299+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='算法 全排列'/><title type='text'>全排列算法</title><content type='html'>题目大致是这样滴:&lt;br /&gt;有1, 2, 2, 3, 4, 5, 这六个字符, 打印出它们的所有排列顺序.&lt;br /&gt;想了老半天, 结果就是这样滴:&lt;br /&gt;&lt;br /&gt;public class SnippetTest&lt;br /&gt;{   &lt;br /&gt;    private void perm(char[] a, boolean[] f, String r)&lt;br /&gt;    {&lt;br /&gt;        for(int i = 0; i &lt; f.length; i++)&lt;br /&gt;        {&lt;br /&gt;            if(!f[i])&lt;br /&gt;            {&lt;br /&gt;                f[i] = true;&lt;br /&gt;                if(r.length() == 5)System.out.println(r + a[i]);&lt;br /&gt;                perm(a, f, r + a[i]);&lt;br /&gt;                f[i] = false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    public static void main(String[] args)&lt;br /&gt;    {&lt;br /&gt;        char[] a = new char[]{'1', '2', '2', '3', '4', '5'};&lt;br /&gt;        boolean[] f = new boolean[6];//default is false&lt;br /&gt;        String r = "";&lt;br /&gt;        new SnippetTest().perm(a, f, r);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;嗯....相当简洁的说.而且也是可以扩展的, 赞自己一个, 太TNND牛了&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-667795479733022681?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/667795479733022681/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=667795479733022681' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/667795479733022681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/667795479733022681'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/03/blog-post.html' title='全排列算法'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-6614259787032652730</id><published>2007-02-27T10:01:00.000+08:00</published><updated>2007-02-27T10:06:40.635+08:00</updated><title type='text'>今天这几篇都是转移过来的</title><content type='html'>因为有段时间blogger并不好用, 然后我就自己搭建了个wordpress, 写了些日志.&lt;br /&gt;&lt;br /&gt;现在要离开公司了, 就把这些日志整理出来, 重新发布到blogspot上来了.&lt;br /&gt;&lt;br /&gt;其实很长段时间以来都没很好得写过日志了. 感觉总是抽不出时间来.&lt;br /&gt;&lt;br /&gt;以后会多多写了 :)&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-6614259787032652730?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/6614259787032652730/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=6614259787032652730' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6614259787032652730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/6614259787032652730'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/02/blog-post_27.html' title='今天这几篇都是转移过来的'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-424651135882016716</id><published>2007-02-27T10:00:00.000+08:00</published><updated>2007-02-27T10:01:07.575+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='skill'/><title type='text'>从editplus编译/运行java</title><content type='html'>&lt;div class="entry"&gt;      &lt;p&gt;天天对着editplus也米好好研究过, 原来它还有这个能力&lt;/p&gt; &lt;p&gt;在给editplus设置参数时发现user tools这个选项, 就想到了java的编译和运行命令.虽然有了eclipse方便了很多, 但是有时还是有命令行的需要.不扯废话, 正题:&lt;/p&gt; &lt;p&gt;在user tools选项里选择add tools&gt;&gt;Program.把javac.exe加进去. Argument设置为$(FilePath), Initial Directory设置为$(FileDir).最好把”capture output”也选上, 这样的话就能看到控制台的输出信息了.&lt;/p&gt; &lt;p&gt;类似的, java命令也这么搞:&lt;/p&gt; &lt;p&gt;Argument : -classpath $(FileDir) $(FileNameNoExt)&lt;/p&gt; &lt;p&gt;Initial Directory : $(FileDir)&lt;/p&gt; &lt;p&gt;保存, 然后新建个java文件, 从tools菜单里选择”编译” 然后再”运行”, 嗯.OK啦, yeah~ &lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-424651135882016716?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/424651135882016716/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=424651135882016716' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/424651135882016716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/424651135882016716'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/02/editplusjava.html' title='从editplus编译/运行java'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-2870548116654776918</id><published>2007-02-27T09:59:00.000+08:00</published><updated>2007-02-27T10:00:30.524+08:00</updated><title type='text'>在eclipse中搜索中文</title><content type='html'>&lt;div class="entry"&gt;      &lt;p&gt;一般都是修改别个的代码, 自己会手动加些注释在上面, 但是时间长了就忘记了哪里修改过了, 又米有cvs.&lt;/p&gt; &lt;p&gt;还好, eclipse的search功能还真是强大, p服p服&lt;/p&gt; &lt;p&gt;[\u0100-\uffff]+&lt;/p&gt; &lt;p&gt;这段regexp可以查找出所有的中文来, 如果想只在java文件里搜索, 就加个”*.java”就好了 &lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-2870548116654776918?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/2870548116654776918/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=2870548116654776918' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/2870548116654776918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/2870548116654776918'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/02/eclipse.html' title='在eclipse中搜索中文'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-3714357460212195636</id><published>2007-02-27T09:58:00.000+08:00</published><updated>2007-02-27T09:59:33.142+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools skill'/><title type='text'>察看端口冲突</title><content type='html'>&lt;div class="entry"&gt;      &lt;p&gt;机器上开着好多程序, 几个web服务器, 还有cvs,还有其它的msn, gtalk等, 有时候要想再启动服务会出现错误说端口已经被占用, 一开始的时候不知道是哪个程序占用的, 就一个一个关掉试, 后来找到个好办法:&lt;/p&gt; &lt;p&gt;netstat -b&lt;/p&gt; &lt;p&gt;这个命令可以察看已经打开的端口是由谁打开的.看了觉得MSN开了N多的端口, 真是… &lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-3714357460212195636?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/3714357460212195636/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=3714357460212195636' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3714357460212195636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/3714357460212195636'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/02/blog-post.html' title='察看端口冲突'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-8383050016391218639</id><published>2007-02-27T09:56:00.002+08:00</published><updated>2007-02-27T09:58:16.828+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='yourkit&apos; jvm'/><title type='text'>yourkit 连到jvm</title><content type='html'>&lt;div class="entry"&gt;      &lt;p&gt;jdk1.4:&lt;/p&gt; &lt;p&gt;-Xrunyjpagent:port=10010,dir=d:\dev\yourkit\snapshots&lt;/p&gt; &lt;p&gt;jdk5.0:&lt;/p&gt; &lt;p&gt;-agentlib:yjpagent=port=10010,dir=d:\dev\yourkit\snapshots&lt;/p&gt; &lt;p&gt;我的yourkit版本是5.5, 在jdk6.0上试运行了下, 不行, 查了下, 好像yourkit6.0才支持jdk6的.&lt;/p&gt; &lt;p&gt;不好…. &lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-8383050016391218639?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/8383050016391218639/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=8383050016391218639' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/8383050016391218639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/8383050016391218639'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/02/yourkit-jvm.html' title='yourkit 连到jvm'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-7623634447724865241</id><published>2007-02-27T09:56:00.001+08:00</published><updated>2007-02-27T09:56:49.543+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ant'/><title type='text'>将ant输出日志redirect</title><content type='html'>&lt;div class="entry"&gt;      &lt;p&gt;ant -logfile ant.log mytarget&lt;/p&gt; &lt;p&gt;这样就OK了, 还有其它的listener&amp;logger等, 可以参看ant的manual, Loggers &amp;amp; Listeners 目录 &lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-7623634447724865241?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/7623634447724865241/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=7623634447724865241' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7623634447724865241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7623634447724865241'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/02/antredirect.html' title='将ant输出日志redirect'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-688133970195836690</id><published>2007-02-27T09:53:00.000+08:00</published><updated>2007-02-27T09:55:30.444+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordpress install'/><title type='text'>安装wordpress</title><content type='html'>&lt;p&gt;问题就在php-mysql.dll没有安装, 但是俺是下载的标准的php安装文件装的吖, 怎么还会这样捏?原来它默认好像是不安装的, 倒….&lt;/p&gt; &lt;p&gt; 回顾一下具体的安装步骤吧, 要不又忘记鸟:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;安装apache_2.2.2-win32-x86-no_ssl.msi&lt;/li&gt;&lt;li&gt;安装mysql,好像是5点几的,  建个db名字为wordpress&lt;/li&gt;&lt;li&gt;安装php-5.2.0-win32-installer.msi&lt;/li&gt;&lt;li&gt;修改{php.home}/php.ini文件, 将 ;extension=php_mysql.dll取消注释, 然后设置下对应mysql的host, username, password就成啦&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-688133970195836690?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/688133970195836690/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=688133970195836690' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/688133970195836690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/688133970195836690'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/02/wordpress.html' title='安装wordpress'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-7035916619243611968</id><published>2007-01-30T14:37:00.000+08:00</published><updated>2007-01-30T14:37:47.096+08:00</updated><title type='text'>jquery配合firebug修改网页</title><content type='html'>&lt;a href="http://developer.mozilla.org/presentations/screencasts/"&gt;digg-firebug-jquery&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;这个真有意思, jquery很好玩哩&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-7035916619243611968?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://developer.mozilla.org/presentations/screencasts/' title='jquery配合firebug修改网页'/><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/7035916619243611968/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=7035916619243611968' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7035916619243611968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/7035916619243611968'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/01/jqueryfirebug.html' title='jquery配合firebug修改网页'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-237588573682639866</id><published>2007-01-30T11:02:00.000+08:00</published><updated>2007-01-30T11:02:41.049+08:00</updated><title type='text'>Web 服务提示与技巧: JAX-RPC 与 JAX-WS 的比较</title><content type='html'>&lt;a href="http://www.ibm.com/developerworks/cn/webservices/ws-tip-jaxwsrpc.html?S_TACT=105AGX52&amp;amp;S_CMP=techcsdn"&gt;Web 服务提示与技巧: JAX-RPC 与 JAX-WS 的比较&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;jax-rpc 1.1后就升级成了jax-ws.&lt;br /&gt;jax-ws通过jaxb实现java与xml的交互.&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-237588573682639866?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.ibm.com/developerworks/cn/webservices/ws-tip-jaxwsrpc.html?S_TACT=105AGX52&amp;S_CMP=techcsdn' title='Web 服务提示与技巧: JAX-RPC 与 JAX-WS 的比较'/><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/237588573682639866/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=237588573682639866' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/237588573682639866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/237588573682639866'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2007/01/web-jax-rpc-jax-ws.html' title='Web 服务提示与技巧: JAX-RPC 与 JAX-WS 的比较'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116605696770782466</id><published>2006-12-14T08:42:00.000+08:00</published><updated>2006-12-14T08:42:47.810+08:00</updated><title type='text'>xslt</title><content type='html'>XSLT是xsl的一部分, 用来表示输出template.它的输入是xml格式的数据, 通过xpath浏览, 如果遇到满足template的matcher就产生templa&lt;div id="mb_0"&gt;te:&lt;br&gt;&lt;br&gt;&amp;lt;xsl:template match=&amp;quot;/book/author&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;/xsl:template&amp;gt;&lt;br&gt;&lt;br&gt;match就是xpath表达式, 它会把输入xml数据中所有满足这个expression的items全传到template里面来, 在里面可以进行一些控制流, 如foreach, if-else等. &lt;br&gt;&lt;a href="http://cocoon.apache.org/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;cocoon&lt;/a&gt;处理的核心就是xml, 而xslt是标准的处理手段&lt;br&gt;参考 : &lt;a href="http://www.w3schools.com/xsl/default.asp" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; link&lt;/a&gt;&lt;br clear="all"&gt;&lt;span class="sg"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it…&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116605696770782466?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116605696770782466/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116605696770782466' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116605696770782466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116605696770782466'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/12/xslt.html' title='xslt'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116604587956537712</id><published>2006-12-14T05:37:00.000+08:00</published><updated>2006-12-14T05:38:00.026+08:00</updated><title type='text'>jmx architecture</title><content type='html'>jmx强调2个方面: management和remote.&amp;nbsp; app, device, service, resource 都是可以被管理的instrumentation. MBean通过agent来管理它所代表的instrumentation. MBean Server也是一个agent(现在明白了,Server也是个instrumentation,&amp;nbsp; 以前看到的时候总有些糊涂 :(&amp;nbsp; ).&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;  It's Hard to Define, But I Know it When I See it…&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116604587956537712?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116604587956537712/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116604587956537712' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116604587956537712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116604587956537712'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/12/jmx-architecture.html' title='jmx architecture'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116556552688205684</id><published>2006-12-08T16:12:00.000+08:00</published><updated>2006-12-08T16:12:07.016+08:00</updated><title type='text'>JET--生成java代码的模板</title><content type='html'>跟JSP差不多的东西, 它根据你传进来的参数通过模板方法生成结果数据.为什么会有这个能力呢? 因为它把你定义的template转成java对象. 有2个重要的概念:&lt;br&gt;&lt;ol&gt;&lt;li&gt;argument, 不仅仅是字符串, 可以是任何java对象, 是与template打交道的入口&lt;/li&gt;&lt;li&gt;generate(), 实际上这个方法的内容就是你的模板, argument参数是传给它的.&lt;/li&gt;&lt;/ol&gt;比如我有个模板定义如下:&lt;br&gt; &amp;lt;%@ jet package=&amp;quot;hello&amp;quot; class=&amp;quot;HelloWorldTemplate&amp;quot; %&amp;gt;&lt;br&gt;hello &amp;lt;%=argument%&amp;gt;!&lt;br&gt;那么保存后会自动生成HelloWorldTemplate类, 调用看看:&lt;br&gt;HelloWorldTemplate template = new HelloWorldTemplate();&lt;br&gt;String result =  template.generate(&amp;quot;lakemove&amp;quot;);&lt;br&gt;System.out.println(result);&lt;br&gt;输出结果为:&lt;br&gt;hello lakemove!&lt;br&gt;&lt;br&gt;除了这, 还有模板的模板--skeleton, 比如你想定义temlate要继承什么方法, generate的返回类型等.&lt;br&gt;&lt;br&gt;具体参考 : &lt;a href="http://www.eclipse.org/articles/Article-JET/jet_tutorial1.html"&gt; link&lt;/a&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it…&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116556552688205684?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116556552688205684/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116556552688205684' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116556552688205684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116556552688205684'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/12/jet-java.html' title='JET--生成java代码的模板'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116549290679756702</id><published>2006-12-07T20:01:00.000+08:00</published><updated>2006-12-07T20:01:47.060+08:00</updated><title type='text'>mysql数据库备份</title><content type='html'>查了半天doc也没找到, 有个例子,不过产生出来的是一大堆文件, 我只想一个数据库一个文件, 而不是一个表...后来google一下就全出来了, 晕死....&lt;br&gt;&lt;br&gt;mysqldump -uroot -ppassword --database mydb &amp;gt; mydbfile.sql&lt;br&gt;&lt;br&gt;还有一种是&lt;br&gt;mysql -uroot -ppassword --database mydb &amp;gt; mydbfile.sql &lt;br&gt;不过好像不管用,它会backup整个mysql所有数据库.&lt;br&gt;&lt;br&gt;&lt;a href="http://www.pantz.org/database/mysql/mysqlcommands.shtml"&gt;link&lt;/a&gt;, &lt;a href="http://php.about.com/od/learnmysql/ss/mysql_backup.htm"&gt;link2&lt;/a&gt;&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it…&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116549290679756702?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116549290679756702/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116549290679756702' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116549290679756702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116549290679756702'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/12/mysql.html' title='mysql数据库备份'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116540196835871431</id><published>2006-12-06T18:46:00.000+08:00</published><updated>2006-12-06T18:46:08.416+08:00</updated><title type='text'>JVM集群</title><content type='html'>谈java通常说的集群基本都是server上的集群, 也就是app级别的.比如tomcat. 性能差异来自session.setAttribute的处理策略. 今天这个&lt;a href="http://www.terracotta.org"&gt;terracotta&lt;/a&gt; 就比较强了, &lt;a href="http://www.terracottatech.com/TC_container.html"&gt;看看&lt;/a&gt;, 居然能做到JVM级别的cluster,  POJO也可以在集群环境中应用而不必须实现Serializable.而且不用修改代码.&lt;br&gt;还不太清楚它具体是如何实现的, 估计是比较龌龊的策略(优美的别人也能想到, 在google上查, 找不到alternative).今天把代码下载回来了, 研究去....&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it…&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116540196835871431?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116540196835871431/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116540196835871431' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116540196835871431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116540196835871431'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/12/jvm.html' title='JVM集群'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116537046641425145</id><published>2006-12-06T10:01:00.000+08:00</published><updated>2006-12-06T10:01:11.000+08:00</updated><title type='text'>test</title><content type='html'> &lt;div class="java" align="left"&gt; &lt;table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="0"&gt;    &lt;tbody&gt;&lt;tr&gt;       &lt;td align="left" nowrap="nowrap" valign="top"&gt;     &lt;code&gt; &lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//actions&lt;/font&gt;&lt;br&gt; &lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Action&amp;nbsp;backAction&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt; &lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Action&amp;nbsp;forwardAction&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt; &lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Action&amp;nbsp;refreshAction&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt; &lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Action&amp;nbsp;stopAction&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt; &lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Action&amp;nbsp;goAction&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/code&gt;         &lt;/td&gt;       &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;br&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it…&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116537046641425145?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116537046641425145/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116537046641425145' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116537046641425145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116537046641425145'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/12/test.html' title='test'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116398852895282573</id><published>2006-11-20T10:08:00.000+08:00</published><updated>2006-11-20T10:11:31.273+08:00</updated><title type='text'>MapList</title><content type='html'>一直希望有个MapList这样的东西, 有k/v对,但是却是list形式存放的,可以排序.&lt;br&gt;&lt;br&gt;List&amp;lt;String, String&amp;gt; maplist = new ArrayList&amp;lt;String, String&amp;gt;();&lt;br&gt;&lt;br&gt;找过.没找到.今天写程序就突然想起来了,其实挺简单:&lt;br&gt;&lt;br&gt;List&amp;lt;String[]&amp;gt; maplist = new ArrayList&amp;lt;String[]&amp;gt;(); &lt;br&gt;String[] item = new String[2];&lt;br&gt;&lt;br&gt;然后就是排序:&lt;br&gt;&lt;br&gt;Arrays.sort(maplist, new Comparator(String[])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp; public int compare(String[] src, String des)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return src[0].compareTo(des[0]);&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }); &lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it…&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116398852895282573?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116398852895282573/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116398852895282573' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116398852895282573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116398852895282573'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/11/maplist.html' title='MapList'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116349671401182848</id><published>2006-11-14T17:31:00.000+08:00</published><updated>2006-11-14T17:37:11.856+08:00</updated><title type='text'>xpath用法</title><content type='html'>有如下的xml文件nodes.xml :&lt;br&gt;&amp;lt;library&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;book sum=&amp;quot;22&amp;quot;&amp;gt;helloworld&lt;br&gt;&amp;nbsp; &amp;lt;/book&amp;gt;&lt;br&gt;&amp;lt;/library&amp;gt;&lt;br&gt;&lt;br&gt;提取 &amp;quot;helloworld&amp;quot; 这个字符串 :&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String filePath = &amp;quot;nodes.xml&amp;quot;;&lt;br&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InputSource inputSource = new InputSource(filePath);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; XPath xpath = XPathFactory.newInstance().newXPath();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String expression = &amp;quot;/library/book[@sum='22']&amp;quot;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String nodes = xpath.evaluate (expression, inputSource);&lt;br&gt;&lt;br&gt;参考 : &lt;a href="http://www.w3schools.com/xpath/xpath_syntax.asp"&gt;xpath语法&lt;/a&gt;, &lt;a href="http://java.sun.com/developer/technicalArticles/xml/validationxpath/index.html"&gt;xpath validation&lt;/a&gt; ,  &lt;a href="http://java.sun.com/developer/technicalArticles/xml/jaxp1-3/index.html"&gt;easy and efficient xml&lt;/a&gt;&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it…&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116349671401182848?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116349671401182848/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116349671401182848' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116349671401182848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116349671401182848'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/11/xpath.html' title='xpath用法'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116314888077188035</id><published>2006-11-10T16:54:00.000+08:00</published><updated>2006-11-14T17:36:36.723+08:00</updated><title type='text'>nsIHTMLEditor的获取</title><content type='html'>代码大概是这样的:&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; final nsIWebBrowser webBrowser = browser.getWebBrowser();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nsIInterfaceRequestor requestor = (nsIInterfaceRequestor) webBrowser.queryInterface(nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID );&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; final nsIEditingSession session = (nsIEditingSession)requestor.getInterface(nsIEditingSession.NS_IEDITINGSESSION_IID);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nsIDOMWindow window = webBrowser.getContentDOMWindow();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; session.makeWindowEditable (window, null, true);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nsIEditor editor = session.getEditorForWindow(window);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; htmlEditor = (nsIHTMLEditor) editor.queryInterface(nsIHTMLEditor.NS_IHTMLEDITOR_IID);&lt;br&gt;&lt;br&gt;本来是把他加在mozEditor的createPartControl里的, 这样运行出来editor一直是null.后来想到editor的获取应该在browser加载完document之后才能进行的罢? 于是就把代码加到ProgressListener的onCompleted()里面.运行,OK. &lt;br&gt;我觉得那个session应该也是在这个里面的,不过它在前面的代码里也能正确获取.&lt;br&gt;browser的加载一直都是异步的,新建线程?以前好像也有过一次因为加载顺序的原因而导致的错误.嗯..幸亏有个onCompleted方法 &lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it…&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116314888077188035?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116314888077188035/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116314888077188035' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116314888077188035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116314888077188035'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/11/nsihtmleditor.html' title='nsIHTMLEditor的获取'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116288028576517442</id><published>2006-11-07T14:15:00.000+08:00</published><updated>2006-11-07T14:18:06.320+08:00</updated><title type='text'>比较2种技术</title><content type='html'>在&lt;a href="http://www.javaeye.com/topic/32853"&gt;javaeye&lt;/a&gt;上看到的,感觉分类还挺全面的:&lt;br /&gt;- Cost, including Developing, Migration, Maintenance, Fee, Performance Tuning etc.&lt;br /&gt;- Tool Support, including what tool/component could be used etc.&lt;br /&gt;- Performance&lt;br /&gt;- Extensibility&lt;br /&gt;- Integrability&lt;br /&gt;- Technical Support, including vendor support, 3d support&lt;br /&gt;- Technical Resources&lt;br /&gt;- Stability&lt;br /&gt;- Challenge&lt;br /&gt;- Technical Trend&lt;br /&gt;- Migration&lt;br /&gt;- Special Language Features&lt;br /&gt;- Security&lt;br /&gt;- Applying domain&lt;br /&gt;- Technical Background&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116288028576517442?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116288028576517442/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116288028576517442' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116288028576517442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116288028576517442'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/11/2.html' title='比较2种技术'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116253028289722955</id><published>2006-11-03T13:04:00.000+08:00</published><updated>2006-11-03T13:06:56.060+08:00</updated><title type='text'>原来这样也可以写blog</title><content type='html'>通过gmail发送邮件到&lt;a href="mailto:lakemove.____@blogger.com.真是个不错的想法"&gt;lakemove.____@blogger.com&lt;/a&gt;.真是个不错的想法 :D&lt;br clear="all"&gt;&lt;br&gt;-- &lt;br&gt;It's Hard to Define, But I Know it When I See it…&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116253028289722955?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116253028289722955/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116253028289722955' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116253028289722955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116253028289722955'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/11/blog.html' title='原来这样也可以写blog'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116252293355686458</id><published>2006-11-03T11:02:00.000+08:00</published><updated>2006-11-03T11:02:14.006+08:00</updated><title type='text'>加载插件</title><content type='html'>俺这有三个plugin projects:&lt;br /&gt;org.eclipse.atf.mozilla.ide.core&lt;br /&gt;org.eclipse.atf.mozilla.ide.ui&lt;br /&gt;org.jbpm.ui&lt;br /&gt;其中org.jbpm.ui依赖于前2个plugins.  构建工程org.jbpm.ui不成功,然后在configure buildpath里把其它2个plugins引用进来,OK. 以RCP方式运行org.jbpm.ui的时候,报错说找不到那两个plugins里的类,郁闷了好久,后来在plugin.xml里把对那2个plugins 的depedencies加进来就OK了.从buildpath里删除之前加的内容也可以构建了.开始没仔细考虑这个问题,只胡乱的试.今天看下osgi的规范,感觉类加载还是满重要的方面,然后就从这个角度解决了.&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116252293355686458?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116252293355686458/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116252293355686458' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116252293355686458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116252293355686458'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/11/blog-post.html' title='加载插件'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116176435368336646</id><published>2006-10-25T15:52:00.000+08:00</published><updated>2006-10-25T16:19:13.913+08:00</updated><title type='text'>使用JAXB</title><content type='html'>看着xml格式的数据,就在想能不能自动把它变成java对象呢? 找了下,很多的说,就选了JAXB(java api for xml binding).&lt;br /&gt;&lt;a href="http://java.sun.com/javaee/downloads/index.jsp"&gt;javaEE5&lt;/a&gt;里面有sample,在${javaee.home}/samples/javaee5/webservices/simple-jaxb下面.直接ant就可以了.不过俺是把它放到eclipse里,碰到几个问题:&lt;br /&gt;1.${basedir}属性被eclipse覆盖了,就是说在build.xml定义的basedir无效.&lt;br /&gt;2.xsd定义的时候根elements需要与其子element连接起来,在types页那个不管用.&lt;br /&gt;使用过程为:&lt;br /&gt;1.写个dtd&lt;br /&gt;2.生成javabeans&lt;br /&gt;3.提供一个顺从dtd的xml文件,把它传给JAXBContext.嗯...可以直接使用了.&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116176435368336646?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116176435368336646/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116176435368336646' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116176435368336646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116176435368336646'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/10/jaxb.html' title='使用JAXB'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116134933379842066</id><published>2006-10-20T21:01:00.000+08:00</published><updated>2006-10-20T21:02:17.126+08:00</updated><title type='text'>接触rails</title><content type='html'>看10月份的程序员杂志,又见rails,心里痒.就试了下.&lt;br /&gt;&lt;br /&gt;先是熟悉了下&lt;a href="http://tryruby.hobix.com/"&gt;语法&lt;/a&gt;.挺猛的啊.简单且强大.&lt;br /&gt;&lt;br /&gt;不过到rails的时候就特麻烦了.&lt;br /&gt;去配置apache和fastcgi,整了半天,也没出个眉目.估计到现象fastcgi也没装上,因为页面显示好慢好慢.后来才发现rails自带了一个webserver&lt;br /&gt;ruby script/server&lt;br /&gt;就可以启动了.日.发现一点不好就是连数据库它可能进行缓存了.所以修改database.yml的时候它不起变化.就一直报错.用apache就没那情况,不过速度N慢N慢.比webrick慢很多.&lt;br /&gt;连数据库时也挺郁闷的,用root账户连不了,老报错:&lt;br /&gt;Lost connection to MySQL server during query: SHOW FIELDS FROM ...&lt;br /&gt;后来新建立个用户就连进去了.&lt;br /&gt;w:\&gt;ruby script/generate model category&lt;br /&gt;w:\&gt;ruby script/generate controller category&lt;br /&gt;class CategoryController &lt; ApplicationController&lt;br /&gt;  model :category&lt;br /&gt;  scaffold :category&lt;br /&gt;end&lt;br /&gt;然后打开http://localhost/category&lt;br /&gt;丫的真是简单.靠&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116134933379842066?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116134933379842066/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116134933379842066' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116134933379842066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116134933379842066'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/10/rails.html' title='接触rails'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-116048478726603169</id><published>2006-10-10T20:49:00.000+08:00</published><updated>2006-10-10T20:53:12.386+08:00</updated><title type='text'>垃圾问题</title><content type='html'>用&lt;a href="http://www.fabforce.net"&gt;dbdesigner&lt;/a&gt;老连不上数据库.试了N次.后来在网上查到:&lt;a href="http://forums.mysql.com/read.php?113,32121,57081#msg-57081"&gt;link&lt;/a&gt;&lt;br /&gt;只要重置一下密码就可以了:&lt;br /&gt;mysql&gt;SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd'); &lt;br /&gt;真的是郁闷了.连上后试用了下.感觉也不太好,不稳定,老出错,看样子免费的还是不行啊&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-116048478726603169?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/116048478726603169/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=116048478726603169' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116048478726603169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/116048478726603169'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/10/blog-post.html' title='垃圾问题'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115934932267538278</id><published>2006-09-27T17:28:00.000+08:00</published><updated>2006-09-28T09:06:57.386+08:00</updated><title type='text'>json是什么样的</title><content type='html'>var MyJson=&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; name:"myjson",&lt;br /&gt;&amp;nbsp; description:"it is my json",&lt;br /&gt;&amp;nbsp; display:function(arg){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(arg);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;MyJson.display("json很简单");&lt;br /&gt;&lt;a href="http://www.sergiopereira.com/articles/advjs.html"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="poweredbyperformancing"&gt;powered by &lt;a href="http://performancing.com/firefox"&gt;performancing firefox&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115934932267538278?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115934932267538278/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115934932267538278' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115934932267538278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115934932267538278'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/09/json.html' title='json是什么样的'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115925081634685242</id><published>2006-09-26T14:05:00.000+08:00</published><updated>2006-09-26T14:06:56.700+08:00</updated><title type='text'>判断myfunc是否存在</title><content type='html'>判断myfunc是否存在&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function myfunc(){&lt;br /&gt;alert("helloworld");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;try{&lt;br /&gt;  if(myfunc)myfunc();&lt;br /&gt;  }catch(e)&lt;br /&gt;  {alert("exception");}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115925081634685242?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115925081634685242/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115925081634685242' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115925081634685242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115925081634685242'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/09/myfunc.html' title='判断myfunc是否存在'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115875353119444170</id><published>2006-09-20T19:54:00.000+08:00</published><updated>2006-09-20T19:58:52.333+08:00</updated><title type='text'>问题</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;两个完全相同的类,JVM会如何加载呢? &lt;br /&gt;&lt;br /&gt;同时加,还是随机性的选择一个,抑或根据版本号选择版本较高的?&lt;br /&gt;&lt;br /&gt;&lt;li&gt;如果两个类只是版本不同,JVM又会如何加载呢?&lt;br /&gt;&lt;br /&gt;在tomcat启动的时候,如果你的webapp里有较低版本的servlet-api.jar,会自动报告说版本过低然后不再加载它.但是,这可能只是jar....&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115875353119444170?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115875353119444170/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115875353119444170' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115875353119444170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115875353119444170'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/09/blog-post_20.html' title='问题'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115873141806832109</id><published>2006-09-20T13:49:00.000+08:00</published><updated>2006-09-20T13:50:18.150+08:00</updated><title type='text'>getResourceAsStream</title><content type='html'>&lt;a href="http://www.theserverside.com/discussions/thread.tss?thread_id=33721"&gt;getClassLoader().getResourceAsStream &amp;&amp; .getResourceAsStream()&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package jay.home.test.comm;&lt;br /&gt;&lt;br /&gt;import static org.junit.Assert.*;&lt;br /&gt;&lt;br /&gt;import java.io.InputStream;&lt;br /&gt;import jay.home.test.dbunit.DBUnitUsage;&lt;br /&gt;import org.junit.Test;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @author Jay&lt;br /&gt; * @since 2006-9-20 下午12:02:15&lt;br /&gt; */&lt;br /&gt;public class GetResourceAsStream&lt;br /&gt;{&lt;br /&gt; @Test&lt;br /&gt; public void getResourceByClass()throws Exception&lt;br /&gt; {  &lt;br /&gt;//  如果不是在同一目录下,不可访问到&lt;br /&gt;  InputStream stream2 = DBUnitUsage.class.getResourceAsStream("resource.file");&lt;br /&gt;  assertNull(stream2);&lt;br /&gt;//  可以访问,需要加全限定名&lt;br /&gt;  InputStream stream3 = DBUnitUsage.class.getResourceAsStream("/jay/home/test/comm/resource.file");&lt;br /&gt;  assertNotNull(stream3);&lt;br /&gt;//  可以访问,如果在同一个目录下就可以直接访问&lt;br /&gt;  InputStream stream4 = GetResourceAsStream.class.getResourceAsStream("resource.file");&lt;br /&gt;  assertNotNull(stream4);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; @Test&lt;br /&gt; public void getResourceByClassLoader() throws Exception&lt;br /&gt; {&lt;br /&gt;  ClassLoader loader = GetResourceAsStream.class.getClassLoader();&lt;br /&gt;  &lt;br /&gt;  InputStream stream1 = loader.getResourceAsStream("resource.file");&lt;br /&gt;  assertNull(stream1);&lt;br /&gt;//  可以访问,加包名&lt;br /&gt;  InputStream stream2 = loader.getResourceAsStream("jay/home/test/comm/resource.file");&lt;br /&gt;  assertNotNull(stream2);&lt;br /&gt;//  不可以访问,不需要最前的/&lt;br /&gt;  InputStream stream3 = loader.getResourceAsStream("/jay/home/test/comm/resource.file");&lt;br /&gt;  assertNull(stream3);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115873141806832109?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115873141806832109/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115873141806832109' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115873141806832109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115873141806832109'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/09/getresourceasstream.html' title='getResourceAsStream'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115863225242523301</id><published>2006-09-19T10:15:00.000+08:00</published><updated>2006-09-19T10:17:44.250+08:00</updated><title type='text'>运行applet</title><content type='html'>以前一直以为网页内的applet需要用sun的activex才能运行,今天试了一手,原来这样也可以的:&lt;br /&gt;&lt;br /&gt;d:/&gt;appletviewer http://www.meterware.com/evdemo/index.html&lt;br /&gt;&lt;br /&gt;看来,虽然麻烦,以后在重装系统的时候真的不需要重装JDK了&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115863225242523301?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115863225242523301/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115863225242523301' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115863225242523301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115863225242523301'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/09/applet.html' title='运行applet'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115854186439872122</id><published>2006-09-18T09:09:00.000+08:00</published><updated>2006-09-18T09:11:04.966+08:00</updated><title type='text'></title><content type='html'>&lt;a href="http://www-03.ibm.com/developerworks/wikis/display/woolf/Registry+vs.+Repository"&gt;Registry vs. Repository&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A registry is a list of items with pointers for where to find the items, like the index on a database table or the card catalog for a library. A repository stores the actual items, like a database table itself or a library's shelves of books. If you lose a registry, the items still exist; you just may need to reindex them. If you lose a repository, the items are gone.&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115854186439872122?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115854186439872122/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115854186439872122' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115854186439872122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115854186439872122'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/09/registry-vs.html' title=''/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115744711806547376</id><published>2006-09-05T17:04:00.000+08:00</published><updated>2006-09-05T17:05:18.150+08:00</updated><title type='text'>布局</title><content type='html'>GEF的布局全仰仗org.eclipse.draw2d下的布局类，gef有种挺迷惑人的LayoutEditPolicy，其实它跟布局没关联，是用来产生command的：&lt;br /&gt;public Command getCommand();&lt;br /&gt;像什么getCreateCommand()、getDeleteCommand()等都是由它统一送出去的。&lt;br /&gt;如果硬要说有什么关系的话，那么就是command所接收的context是LayoutEditPolicy从Layout等地方获取的。Layout准确得应该叫做是LayoutManager，有个核心方法大概表达的这个意思：&lt;br /&gt;public void layout(IFigure parent)&lt;br /&gt;{&lt;br /&gt;  List&lt;IFigure&gt; children = parent.getChildren();&lt;br /&gt;  for(IFigure item: children)item.setBounds(/**new Rectangle(...)*/);&lt;br /&gt;}&lt;br /&gt;它会管理其属下的Figure,当放一个元素到Figure pane的时候会自动调用pane的layout方法来重新布局。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115744711806547376?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115744711806547376/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115744711806547376' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115744711806547376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115744711806547376'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/09/blog-post_05.html' title='布局'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115744557884972276</id><published>2006-09-05T16:38:00.000+08:00</published><updated>2006-09-05T16:39:39.596+08:00</updated><title type='text'>static变量生存期</title><content type='html'>formEditor有一个奇怪的现象：&lt;br /&gt;第一次打开它运行正常，比如创建新element等操作皆可。但是你把这个editor关闭然后再打开就会出问题，图形化的操作再不会产生反应了，model的数据也不再有变化。后来才发现，原来是在段代码出错：&lt;br /&gt;private static IDOMDocument document = DocumentTransferer.getDocument();&lt;br /&gt;把static去掉就OK了，其实就是一static变量生存期的问题。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115744557884972276?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115744557884972276/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115744557884972276' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115744557884972276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115744557884972276'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/09/static.html' title='static变量生存期'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115743836927972690</id><published>2006-09-05T14:36:00.000+08:00</published><updated>2006-09-05T14:39:47.966+08:00</updated><title type='text'>java.util.Timer vs javax.swing.Timer</title><content type='html'>javax.swing.Timer.start()这个方法跟Thread.start()的方法含义是不一样的。前者的作用是把这个timer放到一个TimerQueue里去。这个TimerQueue是一个独立的进程，可以循环执行它所管辖的timer的post方法，post的意思就是这个timer到期了，可以通知以使事件发生。所以，如果想让你注册进来的actionlistener执行的话需要的不是timer.start(), 而是timer.post(),但是你不会有这个执行权利，因为它的访问权限是package。&lt;br /&gt;你可能想了，那我能不能新建立一个thread来执行TimerQueue呢？也不可以。同样受访问权限限制。所以，惟一可能的办法就是把它放到swing的运行环境中,让swing来维护这个TimerQueue:&lt;br /&gt;//javax.swing.Timer&lt;br /&gt;public class SwingTimer extends JFrame&lt;br /&gt;{&lt;br /&gt;  private ActionListener listener = new ActionListener(){&lt;br /&gt;    public void actionPerformed(ActionEvent e){&lt;br /&gt;      System.out.println("^^^^^^^^^^^");&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt; &lt;br /&gt;  public SwingTimer(){&lt;br /&gt;  super();&lt;br /&gt;  new Timer(1000, listener).start();&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  public static void main(String[] args){&lt;br /&gt;    //怪事，如果不设visible或设为false就不会循环执行，闷！&lt;br /&gt;    new SwingTimer().setVisible(true);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;或者，你找的是这个东西：&lt;br /&gt;//java.util.Timer&lt;br /&gt;public static void main(String[] args)&lt;br /&gt;{&lt;br /&gt;  TimerTask task = new TimerTask(){&lt;br /&gt;    public void run(){&lt;br /&gt;      System.out.println("^^^^^^^^^^");&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;  Timer timer = new Timer();&lt;br /&gt;  //0millisecond后开始执行，每1000milliseconds执行一次&lt;br /&gt;  timer.schedule(task, 0, 1000);&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115743836927972690?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115743836927972690/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115743836927972690' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115743836927972690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115743836927972690'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/09/javautiltimer-vs-javaxswingtimer.html' title='java.util.Timer vs javax.swing.Timer'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115716689572731887</id><published>2006-09-02T11:10:00.000+08:00</published><updated>2006-09-02T11:22:15.950+08:00</updated><title type='text'>正则表达式的应用</title><content type='html'>最近有点喜欢帮人了:)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;问题：&lt;/strong&gt;&lt;br /&gt;有一个文本文件如下&lt;br /&gt;&lt;br /&gt;A,1&lt;br /&gt;A,2&lt;br /&gt;A,3&lt;br /&gt;B,4&lt;br /&gt;B,5&lt;br /&gt;C,6&lt;br /&gt;C,7&lt;br /&gt;C,8&lt;br /&gt;&lt;br /&gt;每行有两个元素，以逗号分隔，例如（A和1），文件的行数未知第一个元素都是连续相同的（如AAABBCCC），没有混乱现象(如AABABCCC)逐行读这个文件需要要把第一个元素相同的第二元素抽出来，放在一个新new出来的ArrayList里面例如读前面三行，第一个元素都是A,那么就new一个ArrayList，把第二元素1，2，3放进去然后接着读，第一个元素变成B了，这个时候需要重新new一个新的ArrayList，把第二元素4，5放进去再读，第一个元素变成C，再new一个新的ArrayList，把第二元素6，7，8放进去&lt;br /&gt;请教算法，谢谢了！&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;解决&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//这个字符串代表你的文件内容&lt;br /&gt;String input = "A,1\nA,2\nA,3\nB,1\nB,2\nB,3\nB,4";&lt;br /&gt;public void testCSDN()&lt;br /&gt;{&lt;br /&gt; Pattern pattern = Pattern.compile("[\n]+");&lt;br /&gt; String[] results = pattern.split(input);&lt;br /&gt; Map&lt;String, ArrayList&gt; target = new HashMap&lt;String, ArrayList&gt;();&lt;br /&gt; //这里设置一个开始字符，也可以修改成察看文件获取&lt;br /&gt; String current = "A";&lt;br /&gt; ArrayList&lt;String&gt; currentList = new ArrayList&lt;String&gt;();&lt;br /&gt; for(String item : results)&lt;br /&gt; {&lt;br /&gt;  String[] currentLine = Pattern.compile("[,| ]+").split(item);&lt;br /&gt;  if(!current.equals(currentLine[0]))&lt;br /&gt;  {&lt;br /&gt;   target.put(current, currentList);&lt;br /&gt;   current = currentLine[0];&lt;br /&gt;   currentList = new ArrayList&lt;String&gt;();&lt;br /&gt;  }&lt;br /&gt;  currentList.add(currentLine[1]);  &lt;br /&gt; }&lt;br /&gt; target.put(current, currentList);&lt;br /&gt; System.out.println(target);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115716689572731887?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115716689572731887/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115716689572731887' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115716689572731887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115716689572731887'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/09/blog-post.html' title='正则表达式的应用'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115691076938649826</id><published>2006-08-30T12:05:00.000+08:00</published><updated>2006-08-30T12:06:09.713+08:00</updated><title type='text'>将一个branch更新到head</title><content type='html'>之前把从cvs上checkout出来的代码改了又改，面目全非的，怕出什么问题，就把它当作一个branch提交了。现在想把branch扶正为head。&lt;br /&gt;先将这个branch”replace with”head，然后这个工程就变成head了，然后让它跟cvs上的branch比较(”compare with another branch or version”)，然后”override and update” ―― 米有”commit and update”因为不是一样的存储分支。最后得到的就是head的分支却是branch的内容，接下来？commit呗～&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115691076938649826?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115691076938649826/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115691076938649826' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115691076938649826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115691076938649826'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/08/branchhead.html' title='将一个branch更新到head'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115682189431588993</id><published>2006-08-29T11:19:00.000+08:00</published><updated>2006-08-29T11:24:54.666+08:00</updated><title type='text'>getAdapter</title><content type='html'>public Object getAdapter(Class key) {&lt;br /&gt; if (IPropertySource.class == key) {&lt;br /&gt;  if (getModel() instanceof IPropertySource)&lt;br /&gt;   return getModel();&lt;br /&gt;  if (getModel() instanceof IAdaptable)&lt;br /&gt;   return ((IAdaptable)getModel()).getAdapter(key);&lt;br /&gt; }&lt;br /&gt; if (AccessibleEditPart.class == key)&lt;br /&gt;  return getAccessibleEditPart();&lt;br /&gt; return null;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;这就是为什么model只要继承IPropertySource并写好PropertyDescriptor就可以在属性页显示出model的属性。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115682189431588993?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115682189431588993/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115682189431588993' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115682189431588993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115682189431588993'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/08/getadapter.html' title='getAdapter'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115633259302019147</id><published>2006-08-23T19:29:00.000+08:00</published><updated>2006-08-23T19:29:53.146+08:00</updated><title type='text'>多线程环境下访问同步方法</title><content type='html'>public class ThreadTest&lt;br /&gt;{&lt;br /&gt; static ThreadTest tt = new ThreadTest();&lt;br /&gt; class Thread1 extends Thread&lt;br /&gt; {&lt;br /&gt;  public void run()&lt;br /&gt;  {&lt;br /&gt;   while(true)&lt;br /&gt;   tt.read();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; class Thread2 extends Thread&lt;br /&gt; {&lt;br /&gt;  public void run()&lt;br /&gt;  {&lt;br /&gt;   while(true)&lt;br /&gt;   tt.write();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; private int count;&lt;br /&gt; &lt;br /&gt; public synchronized void read()&lt;br /&gt; {&lt;br /&gt;  System.out.println("read " + count);&lt;br /&gt;  try&lt;br /&gt;  {&lt;br /&gt;   Thread.sleep(3000L);&lt;br /&gt;  } catch (InterruptedException e)&lt;br /&gt;  {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;  System.out.println("read " + count);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public synchronized void write()&lt;br /&gt; {&lt;br /&gt;  System.out.println("write " + count++);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public static void main(String[] args)&lt;br /&gt; {&lt;br /&gt;  ThreadTest test = new ThreadTest();&lt;br /&gt;  test.new Thread1().start();&lt;br /&gt;  test.new Thread2().start();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;“锁”是指对象锁，没有“成员锁”或“函数锁”。访问一般函数(unsynchronized)时不用获取对象锁。访问同步函数时须获取函数所在对象的对象锁，这时其它同步函数、方法皆不可访问，而非同步的成员可以。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115633259302019147?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115633259302019147/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115633259302019147' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115633259302019147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115633259302019147'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/08/blog-post_23.html' title='多线程环境下访问同步方法'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115633085790171614</id><published>2006-08-23T18:28:00.000+08:00</published><updated>2006-08-23T19:00:58.566+08:00</updated><title type='text'>让2个div在同一行显示</title><content type='html'>在css style里这么写就OK了：&lt;br /&gt;  div&lt;br /&gt;  {&lt;br /&gt;    display:inline&lt;br /&gt;  }&lt;br /&gt;可能会出现中英文对齐问题，加一个vertical-align:text-bottom就好了&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115633085790171614?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115633085790171614/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115633085790171614' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115633085790171614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115633085790171614'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/08/2div.html' title='让2个div在同一行显示'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115629624814041083</id><published>2006-08-23T09:22:00.000+08:00</published><updated>2006-08-23T09:24:08.903+08:00</updated><title type='text'>思考</title><content type='html'>一、传输给controller(EditPart)的model应该是谁？&lt;br /&gt;这里的model目前有2个类别：IDOMNode和ElementBase。IDOMNode是纯DOM结构的一种实现，来自wtp，主要添加了INodeAdapter的接口方便扩展(请理解一下adapter的概念)。提供了所有关于DOM的操作，比如createElement, getChild, removeChild。而ElementBase则是IDOMNode的一个扩展(即继承了INodeAdapter)，它拥有一个IDOMNode的成员，以及作为model的PropertySource描述实现(对应model属性的切实描述的定义)和属性变更事件支持(PropertyChangeSupport)。问题是我传给controller的model应该是IDOMNode还是ElementBase呢？我倾向于IDOMNode，它可以更清晰地表明ElementBase只是用来描述属性（这种情况下，属性等数据全存储在IDOMNode里，ElementBase只负责对属性的更改操作及描述这个属性-是list还是文本形式全由自己控制）。但是起初的设计是model面向ElementBase的(IDOMNode是后来加进来的)，更改起来会有一定的麻烦。而且如何将IDOMNode的属性变更事件支持添加进来也是个待解决的问题(或许是很简单的设计哲学，不过在搞清楚具体问题领域前似乎很难，adapter能做到的事想像不到尽头的J)。&lt;br /&gt;所以controller所能看到的依然是ElementBase。&lt;br /&gt;二、关于model的初始化。&lt;br /&gt;在上个问题结论的基础上，还有个ElementBase的成员初始化的问题。ElementBase里有个IDOMNode成员，存储node应有属性，它可以是在运行form定义程序的过程中动态产生的（类似工厂），也可以是从form定义程序加载时生成的（类似反序列化）。这两种方式怎么统一起来呢？感觉上应该跟ElementCreationFactory有关系的说～&lt;br /&gt;&lt;br /&gt;顺带描述一下DOM  Document的产生过程：&lt;br /&gt;首先需要提供一个xml文件(由来请参看FormDesignEditor.getEditorInput()的注释)，这个文件会先由StructuredTextEditorXML解读(来自wtp的xml editor)，它会生成一个IDOMDocument对象并保存在DocumentTransferer里，然后form图形定义editor会从DocumentTransferer获取这个对象作相应的初始化：&lt;br /&gt;初始化children à生成model的Element(ElementCreationFactory)à生成EditPart(controller,是由rooteditpart根据EditPartFactory生成的)à生成figure&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115629624814041083?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115629624814041083/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115629624814041083' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115629624814041083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115629624814041083'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/08/blog-post.html' title='思考'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115578650043350322</id><published>2006-08-17T11:47:00.000+08:00</published><updated>2006-08-17T11:48:20.943+08:00</updated><title type='text'>Adapter</title><content type='html'>Adapter实际上在eclipse以前的版本里是叫做extension。是用来扩展功能的。因为你实现的类可能是多功能的复合体，但是某个请求者只需要它其中的一种功能或者叫做某一方面，你怎样展示给请求者呢？你可以象下面这样写函数：&lt;br /&gt;Public Object getAdapter(Object key);&lt;br /&gt;这个函数会根据输入的key来返回对应的对象（功能/方面）。比如一个属性视图想从你的类中抽取属性信息，而你的类里刚好有一个PropertyDescriptor的成员，这样，在判断出对方意向后就可以把成员送出去：&lt;br /&gt;If(key == PropertyDescriptor)&lt;br /&gt;  Return myPropertyDescriptor;&lt;br /&gt;有个小要点需要注意的是，你需要在getAdapter最后添上&lt;br /&gt;Super.getAdapter()；&lt;br /&gt;这么一来保证了实现你想要的能力而不损失父类默认拥有的能力。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115578650043350322?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115578650043350322/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115578650043350322' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115578650043350322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115578650043350322'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/08/adapter.html' title='Adapter'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115520188355663387</id><published>2006-08-10T16:22:00.000+08:00</published><updated>2006-08-10T17:24:44.016+08:00</updated><title type='text'>dom相关概念</title><content type='html'>org.w3c.dom.*&lt;br /&gt;有根元素，文本，属性，标签节点四种，还有个Node 接口是整个文档对象模型的主要数据类型。它表示该文档树中的单个节点。当实现 Node 接口的所有对象公开处理子节点的方法时，不是实现 Node 接口的所有对象都有子节点。例如，Text 节点可能没有子节点，且将子节点添加到这样的节点将导致引发 DOMException。 &lt;br /&gt;今天写代码的时候碰到个小问题&lt;br /&gt;IDOMDocument document = getDocument();&lt;br /&gt;document.createElement("myelement");&lt;br /&gt;debug发现这个元素根本添加不到document上去，后来改了下&lt;br /&gt;document.getDocumentElement.appendChild("myelement");&lt;br /&gt;就添加上去了=_=#! , 不知道是它API名字误解了我还是我理解能力有问题....&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115520188355663387?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115520188355663387/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115520188355663387' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115520188355663387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115520188355663387'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/08/dom.html' title='dom相关概念'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115450928870663660</id><published>2006-08-02T16:53:00.000+08:00</published><updated>2006-08-02T17:01:28.956+08:00</updated><title type='text'>添加Jar</title><content type='html'>添加jar到buildPath和plugin depedencies是不一样的，buildPath就是很简单的构造路径，而后一个就需要声明bundle，也就是plugin.xml文件，在启动/调试eclipse application的时候会将声明的插件先安装上去。如果你只把一个jar添加到 plugin depedencies里eclipse会发现它不能安装这个插件从而导致eclipse application不能启动/调试。&lt;br /&gt;&lt;br /&gt;以前一直以为这两种形式是一样滴。。。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115450928870663660?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115450928870663660/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115450928870663660' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115450928870663660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115450928870663660'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/08/jar.html' title='添加Jar'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115434289547883239</id><published>2006-07-31T18:47:00.000+08:00</published><updated>2006-07-31T18:48:15.730+08:00</updated><title type='text'>过滤eclipse中的problem</title><content type='html'>eclipse中的problem默认是显示所有project里的所有problem，但是我只想看我所选中的包或者java文件的错误，可以这么做：在problems页创建一个新filter，在右面的select项里选“on selected element and its children”就OK了&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115434289547883239?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115434289547883239/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115434289547883239' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115434289547883239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115434289547883239'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/07/eclipseproblem.html' title='过滤eclipse中的problem'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115331075919657274</id><published>2006-07-19T19:55:00.000+08:00</published><updated>2006-07-19T20:05:59.590+08:00</updated><title type='text'>MVC中的controller</title><content type='html'>今天看gef代码头疼，就跟刘紫高探讨了下MVC的概念，其实里面的controller是比较突出的，view和model没有什么联系，全靠controller进行交流，跟controller联系比较紧的有个概念叫EventListener，这个可以引起view和model的状态的改变，而改变都是由controller来执行的，EventListener是对Event的监听，Event有这么几种:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;用户参与的 比如鼠标事件，键盘事件等也可以归为IO一类罢，当时没想到&lt;br /&gt;&lt;li&gt;程序性的  即事件是由程序触发&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Event里面有个list，列出当事件发生时需要通知的对象s，而这些对象都是EventListener的子类。在GEF中，controller负责代理更新view和model。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115331075919657274?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115331075919657274/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115331075919657274' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115331075919657274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115331075919657274'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/07/mvccontroller.html' title='MVC中的controller'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115278671358879907</id><published>2006-07-13T18:31:00.000+08:00</published><updated>2006-07-13T18:31:53.923+08:00</updated><title type='text'>serialVersionUID作用</title><content type='html'>&lt;a href="http://www.j2medev.com/Article/Class3/Class5/200501/180.html"&gt;serialVersionUID&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;serialVersionUID作用：&lt;br /&gt;序列化时为了保持版本的兼容性，即在版本升级时反序列化仍保持对象的唯一性。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115278671358879907?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115278671358879907/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115278671358879907' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115278671358879907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115278671358879907'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/07/serialversionuid.html' title='serialVersionUID作用'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115251373650420893</id><published>2006-07-10T14:34:00.000+08:00</published><updated>2006-07-10T14:42:26.950+08:00</updated><title type='text'>draw2d 中的figure概念</title><content type='html'>figure有“外形, 轮廓, 体形, 图形, 画像”的意思，在draw2d中的概念就相当于swing中的panel。可以：&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;注册/取消注册监听器&lt;br /&gt;&lt;li&gt;事件管理&lt;br /&gt;&lt;li&gt;定位鼠标位置&lt;br /&gt;&lt;li&gt;添加删除子figure&lt;br /&gt;&lt;li&gt;访问 layoutManager, figure坐标、大小，工具集&lt;br /&gt;&lt;li&gt;焦点设置与获取&lt;br /&gt;&lt;li&gt;透明度与可见性&lt;br /&gt;&lt;li&gt;绘画&lt;br /&gt;&lt;li&gt;validate&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115251373650420893?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115251373650420893/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115251373650420893' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115251373650420893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115251373650420893'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/07/draw2d-figure.html' title='draw2d 中的figure概念'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115182907559296805</id><published>2006-07-02T16:27:00.000+08:00</published><updated>2006-07-02T16:31:15.860+08:00</updated><title type='text'>redeploy is out of date due to change in the ....</title><content type='html'>用myeclipse布署到tomcat老报这个错，改了老半天，后来发现我的资源管理器正打开着我的那个web app的目录，然后把它关掉，就可以成功布署了，真是晕，以前也碰到过，糊涂乱搞就过去了，原来是因为有程序占着文件导致myeclipse不能重新布署的时候替换造成的。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115182907559296805?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115182907559296805/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115182907559296805' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115182907559296805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115182907559296805'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/07/redeploy-is-out-of-date-due-to-change.html' title='redeploy is out of date due to change in the ....'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115137764028133096</id><published>2006-06-27T10:57:00.000+08:00</published><updated>2006-06-27T11:07:20.933+08:00</updated><title type='text'>form提交</title><content type='html'>用httpclient提交数据时碰到个问题：&lt;br /&gt;&lt;input type="checkbox" checked name="name1" value="value2" /&gt;&lt;br /&gt;这个好像不是值对的关系了，有个checked，三个值怎么处理呢？&lt;br /&gt;后来查了下&lt;a href="http://www.w3.org/TR/html4/interact/forms.html#h-17.13"&gt;html spec&lt;/a&gt;，按它的说法，不是所有的form数据都会被提交上去，只有"successfull controls"才可以，也就是说，当checkbox为checked时，它的name/value才会被提交，否则在提交时将会忽略这项。&lt;br /&gt;&lt;br /&gt;还有一点没解决就是好几个checkbox有相同名字时，并且全是"successful controls"，那提交时怎么区分name/value呢？liuzg说需要通过js处理然后动态地修改name值使其不一样后再提交。8过httpcliet能执行js嘛？ 留着问题。。。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115137764028133096?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115137764028133096/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115137764028133096' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115137764028133096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115137764028133096'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/06/form.html' title='form提交'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-115025099731112512</id><published>2006-06-14T10:08:00.000+08:00</published><updated>2006-06-14T10:09:58.083+08:00</updated><title type='text'>类布署不到服务器上的问题</title><content type='html'>用myeclipse开发的时候，写了一个action类，却总也布署不上去，执行的时候老说找不到这个action的instance，后来偶然发现我写的类并没有编译成class文件从而布署，然后察看了一下buildpath，原来有一个jar系统找不到，所以在正确配置这个包前它不会编译任何添加进来的文件。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-115025099731112512?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/115025099731112512/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=115025099731112512' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115025099731112512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/115025099731112512'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/06/blog-post.html' title='类布署不到服务器上的问题'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114914913298802339</id><published>2006-06-01T16:05:00.000+08:00</published><updated>2006-06-01T16:05:33.250+08:00</updated><title type='text'>http上传文件</title><content type='html'>&lt;a href="http://www.matrix.org.cn:8080/resource/article/155.html"&gt;通用上载组件的原理及实现&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;原来文件的上传不是单独线程执行的，而是和一般的form元素一样进行统一编码后以流的形式传给server。至于从服务器端的解析，因为上传的form是结构性数据，所以...&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114914913298802339?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114914913298802339/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114914913298802339' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114914913298802339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114914913298802339'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/06/http.html' title='http上传文件'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114872896673508626</id><published>2006-05-27T19:22:00.000+08:00</published><updated>2006-05-27T19:30:38.723+08:00</updated><title type='text'>DWR是个好东西</title><content type='html'>&lt;a href="http://getahead.ltd.uk/dwr"&gt;DWR&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;如果你有个POJO写成下面的格式：&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public class DwrMagic&lt;br /&gt;{&lt;br /&gt;public String reply()&lt;br /&gt;{&lt;br /&gt;  return "oh, dwr magic !";&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;你需要通过javascript访问到这个方法并展示在页面中，容易么？DWR告诉你，相当容易：&lt;br /&gt;&lt;code&gt;DwrMagic.reply(function(replycontent){alert(replycontent);}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Woo~ Cool~&lt;br /&gt;&lt;br /&gt;下面讲一下具体实施办法：&lt;br /&gt;下载一个dwr.jar放到WEB-INF/lib目录下，然后修改web.xml，添加个servlet：&lt;br /&gt;不贴代码了，用blogger的编辑器编辑的时候有些麻烦，它自动处理代码，即使你不愿意它处理，看dwr上的getstart吧&lt;br /&gt;然后再创建个dwr.xml放在web.xml同目录下，并把自己创建的类的信息写进来：&lt;br /&gt;不贴代码了，用blogger的编辑器编辑的时候有些麻烦，它自动处理代码，即使你不愿意它处理，看dwr上的getstart吧&lt;br /&gt;然后建立个testdwr.html文件：&lt;br /&gt;把这几个script文件连接进来：&lt;br /&gt;/dwr/dwr/interface/Demo.js&lt;br /&gt;/dwr/dwr/engine.js&lt;br /&gt;然后再写个javascript脚本函数：&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function getData(str)&lt;br /&gt;{&lt;br /&gt;alert(str);&lt;br /&gt;}&lt;br /&gt;function getReply()&lt;br /&gt;{&lt;br /&gt;Demo.reply(getData);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;然后随便找个地方调用getReply()就可以看到效果了，非常cool～&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114872896673508626?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114872896673508626/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114872896673508626' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114872896673508626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114872896673508626'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/dwr.html' title='DWR是个好东西'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114855902496230567</id><published>2006-05-25T20:10:00.000+08:00</published><updated>2006-05-25T20:10:25.373+08:00</updated><title type='text'>代用户与server交互</title><content type='html'>Cookie怎么保存&lt;br /&gt;&lt;br /&gt;JDK里没有参考实现，只有一个CookieHandler，而且是全局的，也就是说在一个JVM内你只能代表一个用户，后来找到个JCookie，不过操作起来挺麻烦的，后来感觉好像还和IE有关联，因为我没开IE的时候它就运行出错，开着就一切OK =_=#!&lt;br /&gt;&lt;br /&gt;最后找到一个很好的：HttpClient，是apache的，早找到就好了，T_T，挺好用的，而且还带了些sample，常用的功能基本都能展示出来，暂时先不贴代码....&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114855902496230567?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114855902496230567/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114855902496230567' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114855902496230567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114855902496230567'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/server.html' title='代用户与server交互'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114843195319362227</id><published>2006-05-24T08:52:00.000+08:00</published><updated>2006-05-24T08:54:41.610+08:00</updated><title type='text'>建立ssl连接并通过BASIC认证</title><content type='html'>贴段代码了，没啥好说的哦&lt;br /&gt;&lt;code&gt;&lt;br /&gt; public void testHttpsConnection() throws Exception&lt;br /&gt; {&lt;br /&gt;  URL url = new URL("https://www.blogger.com/atom");&lt;br /&gt;  X509TrustManager xtm = new X509TrustManager()&lt;br /&gt;  {&lt;br /&gt;   public void checkClientTrusted(X509Certificate chain[], String authType)throws CertificateException{}&lt;br /&gt;   public void checkServerTrusted(X509Certificate chain[], String authType)throws CertificateException{}&lt;br /&gt;   public X509Certificate[] getAcceptedIssuers()&lt;br /&gt;   {&lt;br /&gt;    X509Certificate[] cert = {};&lt;br /&gt;    return cert;&lt;br /&gt;   }&lt;br /&gt;  };&lt;br /&gt;  TrustManager mytm[] = {xtm};&lt;br /&gt;  SSLContext ctx = SSLContext.getInstance("SSL");&lt;br /&gt;  ctx.init(null,mytm, null );&lt;br /&gt;  SSLSocketFactory sf = ctx.getSocketFactory();&lt;br /&gt;  HttpsURLConnection.setDefaultSSLSocketFactory(sf);&lt;br /&gt;  HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();&lt;br /&gt;  String usernamePassword = "username" + ":" + "password";&lt;br /&gt;  String encoding = new BASE64Encoder().encode(usernamePassword.getBytes());&lt;br /&gt;  conn.setRequestProperty("Authorization", "BASIC " + encoding);&lt;br /&gt;  InputStream in = conn.getInputStream();&lt;br /&gt;  ByteArrayOutputStream out = new ByteArrayOutputStream();&lt;br /&gt;  IoUtil.transfer(in, out);&lt;br /&gt;  System.out.println(new String(out.toByteArray()));&lt;br /&gt; }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;把用户名和密码改掉了，嘿。只要你注册一个blogger的账号就可以顺利获得结果 :)&lt;br /&gt;&lt;br /&gt;还有，blogger的atom API在&lt;a href="http://code.blogspot.com/archives/atom-docs.html"&gt;这&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114843195319362227?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114843195319362227/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114843195319362227' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114843195319362227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114843195319362227'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/sslbasic.html' title='建立ssl连接并通过BASIC认证'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114836364092023048</id><published>2006-05-23T13:54:00.000+08:00</published><updated>2006-05-23T13:54:01.006+08:00</updated><title type='text'>从群里偷偷瞄来的，收藏下～</title><content type='html'>Re: SSLHandshakeException: could not find trusted certificate    &lt;br /&gt;Sep 2, 2002 6:40 AM (reply 1 of 12) &lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;  if you work in windows in control panel you have java plugin -&lt;br /&gt;there is column certificates then you click on secure site and import public key.&lt;br /&gt;&lt;br /&gt;in unix execute ControlPanel from your java direcotry and makes the same.&lt;br /&gt;it could help.&lt;br /&gt;   &lt;br /&gt; l33t0n3 &lt;br /&gt;Posts:5 &lt;br /&gt;Registered: 9/3/02  Re: SSLHandshakeException: could not find trusted certificate    &lt;br /&gt;Sep 3, 2002 9:31 AM (reply 2 of 12) &lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;  There are two ways to fix your problem. The first is add the certificate(s) of the target site to your TrustStore.&lt;br /&gt;&lt;br /&gt;In the JSSE, the TrustStore object is a Keystore file which contains the public key(s) and any Root keys for a server certificate. You can add the key to your truststore by using keytool. (read JSSE documentation http://java.sun.com/products/jsse/doc/guide/API_users_guide.html to learn more about keytool):&lt;br /&gt;&lt;br /&gt;In order to do this you will need to get the servers public (not private) key and any root certificates and then use the keytool.&lt;br /&gt;&lt;br /&gt;Unfortunately, most of the time this is way too much of a pain in the butt to do for every ssl connection. For this reason, you can actually create your own TrustManager implementaiton and assign it to the SSLSocketFactory. The SSLSocketFactory can either be used by you directly, or you can let the java.net.URL connection factory handle the fetching and reading of sockets for you. I highly recommend using java.net.URL because it will load the https handler and you won't have to worry about writing the http requests properly.&lt;br /&gt;&lt;br /&gt;First, you must create an implementation of the TrustManager factory. I recommend that for your first go you just trust everything (i.e. the isServerTrusted(X509Certificate[] Servers) method should always return true).&lt;br /&gt;&lt;br /&gt;Make sure you have specified your provider (system property or dynamically as shown (this is jdk1.3 w/ JSSE 1.0.3, with jdk 1.4 it s bit different)...&lt;br /&gt;&lt;br /&gt;java.security.Security.addProvider(&lt;br /&gt;new com.sun.net.ssl.internal.ssl.Provider());&lt;br /&gt;&lt;br /&gt;get your ssl context...&lt;br /&gt;ctx = SSLContext.getInstance("TLS");&lt;br /&gt;&lt;br /&gt;create an array of 1 object containing your TrustManager...&lt;br /&gt;TrustManager[] _trustm = {new your.BogusX509TrustManager()};&lt;br /&gt;&lt;br /&gt;And then tell the context to init using your trust manager...&lt;br /&gt;ctx.init(null, _trustm, null);&lt;br /&gt;&lt;br /&gt;make that your default socket factory for ssl connections...&lt;br /&gt;HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory());&lt;br /&gt;&lt;br /&gt;Now your SocketFactory (and TrustManager) will be used for any new https connection you open in this instance. Since you set isServerTrusted to always return true, you will trust all certificates. You can also go a bit farther and validate certificates and store certificates in your TrustStore...&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114836364092023048?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114836364092023048/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114836364092023048' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114836364092023048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114836364092023048'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/blog-post_22.html' title='从群里偷偷瞄来的，收藏下～'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114828013951086819</id><published>2006-05-22T14:42:00.000+08:00</published><updated>2006-05-22T14:42:27.843+08:00</updated><title type='text'>dom4j解析的时候乱码</title><content type='html'>&lt;a href="http://tech.163.com/06/0518/09/2HD6OPIV0009159T.html"&gt;link&lt;/a&gt;: "java中文乱码解决方案和经验"&lt;br /&gt;&lt;br /&gt;用DOM4J读节点数据的时候老出现中文乱码，我开始以为是DOM4J的问题，然后就查，最后看到一个&lt;a href="http://www1.sinodc.com/CSDN_Document/2616/2616746.asp"&gt;解决方案&lt;/a&gt;,感觉不太爽，然后就接着找，后来不知道怎么就发现原来错误不在DOM4J。&lt;br /&gt;&lt;br /&gt;主要是我读文件后把它存成byte[]格式的了，然后直接&lt;br /&gt;&lt;code&gt;byte[] gdpBytes = retrieveBytes();&lt;br /&gt;String text = new String(gdpBytes);&lt;br /&gt;Document doc = DocumentHelper.parseText(text);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;这样是不对滴，就在第二行出的问题，这个时候还需要作一下编码声明处理：&lt;br /&gt;&lt;code&gt;String text = new String(gdpBytes,"utf-8");&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;这样就OK了。还有几个连接，虽然没用到，但是以后可能有用：&lt;br /&gt;&lt;a href="http://www.matrix.org.cn/resource/article/1/1090.html"&gt;1 &lt;/a&gt;  &lt;a href="http://www.dom4j.org/guide.html"&gt;2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114828013951086819?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114828013951086819/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114828013951086819' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114828013951086819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114828013951086819'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/dom4j.html' title='dom4j解析的时候乱码'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114797363848433895</id><published>2006-05-19T01:33:00.000+08:00</published><updated>2006-05-19T01:33:58.700+08:00</updated><title type='text'>hibernate中的binary</title><content type='html'>在mapping文件中声明了一项用来存储文件的属性“bytes”：&lt;br /&gt;&lt;hibernate-mapping&gt;&lt;br /&gt;  &lt;class name=".." table=".."&gt;&lt;br /&gt;    &lt;property name="bytes" type="binary" /&gt;&lt;br /&gt;  &lt;/class&gt;&lt;br /&gt;&lt;/hibernate-mapping&gt;&lt;br /&gt;实际上是把bytes映射成数据库表中的varchar,然后看了一下mysql的文档，varchar和binary是一样的属性，但是为什么是varchar而不直接binary就不明白了。但是varchar显然不够用于存储文件，执行存储的时候报错说&lt;code&gt;&lt;br /&gt;Data truncation: Data too long for column 'bytes' at row 1&lt;br /&gt;&lt;/code&gt;后来就把它改成varbinary,顺便把最大值设为55535，然后就通过了。&lt;br /&gt;&lt;br /&gt;没错，不是65535,如果那样的话会报错说需要把字段类型转换为BLOB。&lt;br /&gt;&lt;br /&gt;用的是hibernate2.1, mysqlconnector5, mysql5.0&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114797363848433895?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114797363848433895/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114797363848433895' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114797363848433895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114797363848433895'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/hibernatebinary.html' title='hibernate中的binary'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114792313336485984</id><published>2006-05-18T11:32:00.000+08:00</published><updated>2006-05-18T11:32:13.450+08:00</updated><title type='text'>瞎忙活了</title><content type='html'>鼓捣了半天，虽然没明白怎么回事，但是还是出了结果了。&lt;br /&gt;&lt;br /&gt;就是想通过hbm.xml产生.sql文件，目的就是产生数据库表。然后就使劲地看build.xml文件，愣没看出来啥错，但是编译就是不通过，后来把build.properties改了一下，还是有错，然后把我添加到buildpath的一些包啊什么的去掉，然后就一切OK了。&lt;br /&gt;&lt;br /&gt;见鬼&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114792313336485984?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114792313336485984/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114792313336485984' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114792313336485984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114792313336485984'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/blog-post.html' title='瞎忙活了'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114777415126913000</id><published>2006-05-16T18:09:00.000+08:00</published><updated>2006-05-16T18:09:11.316+08:00</updated><title type='text'>Unbound classpath variable</title><content type='html'>&lt;a href="http://www-128.ibm.com/developerworks/cn/websphere/library/techarticles/0412_mazzara/0412_mazzara1.html?ca=dwcn-newsletter-wsdd"&gt;在线教程&lt;/a&gt;: "Unbound classpath variable"&lt;br /&gt;&lt;br /&gt;是变量没定义或定义的不对，可以在java Build Path里更改或增加variable。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114777415126913000?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114777415126913000/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114777415126913000' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114777415126913000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114777415126913000'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/unbound-classpath-variable.html' title='Unbound classpath variable'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114776582729751227</id><published>2006-05-16T15:50:00.000+08:00</published><updated>2006-05-16T15:50:27.346+08:00</updated><title type='text'>swimlane</title><content type='html'>&lt;a href="http://docs.jboss.com/jbpm/v3/userguide/taskmanagement.html#swimlanes"&gt;swimlane&lt;/a&gt;: "A swimlane therefore has one assignment and all tasks that reference a swimlane should not specify an assignment."&lt;br /&gt;&lt;br /&gt;如果在一个任务中声明了swimlane,就表示你也把需要做的任务也移交给它了，所以不能再在task声明里另声明assignment.&lt;br /&gt;&lt;br /&gt;现在才明白，wfe是把所有的操作（人工&amp;自动）都分门别类交给swimlane来处理，这样，只要把swimlane声明好了，操作也就固定了，剩下的问题就是这些swimlane的执行顺序是什么样的？&lt;br /&gt;&lt;br /&gt;当然，还有一个decision，需要写script或代理等，这里应该可以和规则引擎联系起来吧。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114776582729751227?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114776582729751227/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114776582729751227' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114776582729751227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114776582729751227'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/swimlane.html' title='swimlane'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114775935966058094</id><published>2006-05-16T14:02:00.000+08:00</published><updated>2006-05-16T14:02:39.706+08:00</updated><title type='text'>Integer.parseInt()</title><content type='html'>在org.jbpm.webapp.tag.ProcessImageTag看到这个代码：&lt;br /&gt;result[0] = Integer.valueOf(node.attribute("x").getValue()).intValue();&lt;br /&gt;看着不怎么舒服，其实有个更简洁的途径：&lt;br /&gt;result[0] = Integer.parseInt(node.attribute("x").getValue());&lt;br /&gt;这个是好久以前就知道的，现在看到代码就突然想起来了，先记一下，嘿&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114775935966058094?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114775935966058094/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114775935966058094' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114775935966058094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114775935966058094'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/integerparseint.html' title='Integer.parseInt()'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114733889031437857</id><published>2006-05-11T17:14:00.000+08:00</published><updated>2006-05-11T17:14:50.330+08:00</updated><title type='text'>jbpm里的Authorization</title><content type='html'>&lt;a href="http://docs.jboss.com/jbpm/v3/userguide/security.html"&gt;Chapter 17. Security&lt;/a&gt;:"Authorization is optional, and there is no authorization implementation yet. "&lt;br /&gt;找了半天，原来授权部分还没实现，只有个identity包，是实现认证部分的，记得在jbpm.cfg.xml里有个服务好像叫"authentication",得去看看那个starter-kit里是如何进行授权的了，应该是很简陋的那种吧，比如执行某个task的时候，预先查下数据库，看有没定义这个用户的可以执行，行就通过（本来就应该是这么回事儿嘛，有什么简陋的丫）：&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114733889031437857?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114733889031437857/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114733889031437857' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114733889031437857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114733889031437857'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/jbpmauthorization.html' title='jbpm里的Authorization'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114733468359756133</id><published>2006-05-11T16:04:00.000+08:00</published><updated>2006-05-11T16:04:43.676+08:00</updated><title type='text'>Token 的概念</title><content type='html'>&lt;a href="http://docs.jboss.com/jbpm/v3/javadoc/"&gt;Token &lt;/a&gt;&lt;br /&gt;Token这个概念，现在有点糊涂了，按胡工说的，就是标识流程所处的状态，而我理解的是流程当前流到节点的标识，嗯，差不多的概念。。。&lt;br /&gt;哦，找到了，在javadoc里：&lt;br /&gt;represents one path of execution and maintains a pointer to a node in the ProcessDefinition. Most common way to get a hold of the token objects is with ProcessInstance.getRootToken()  or ProcessInstance.findToken(String).&lt;br /&gt;意思就是说一个token代表一条执行路径而且维护一个指针用来标识一个节点(就是我所理解的那层意思，不过我没理解到“代表一条执行路径”).这么说的话token的在流程定义的时候就已经确定了，按照图论......&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114733468359756133?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114733468359756133/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114733468359756133' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114733468359756133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114733468359756133'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/token.html' title='Token 的概念'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114723650202828918</id><published>2006-05-10T12:48:00.000+08:00</published><updated>2006-05-10T12:48:22.093+08:00</updated><title type='text'>知道怎么访问hsqldb的数据文件了</title><content type='html'>首先下载hsqldb.然后把要查看的数据文件(总共五个)copy到hsqldb_home/demo目录下,然后运行runManager.bat,然后在出现的选择框里选stand alone模式,在url里象这么写:&lt;br /&gt;jdbc:hsqldb:file:d:/java/hsqldb/demo/localDB&lt;br /&gt;其中的"d:/java/hsqldb/demo/localDB"就是文件的全路径.最后把用户名密码输入就OK了.&lt;br /&gt;&lt;br /&gt;stand alone 模式的意思是hsqldb运行在应用程序所再JVM内,这样可以使性能得到最优化,因为数据传输不再需要通过网络.但是这也限制了它不能通过外部程序访问.&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114723650202828918?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114723650202828918/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114723650202828918' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114723650202828918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114723650202828918'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/hsqldb.html' title='知道怎么访问hsqldb的数据文件了'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114718898043531030</id><published>2006-05-09T23:36:00.000+08:00</published><updated>2006-05-09T23:36:20.486+08:00</updated><title type='text'>将JBPM数据库改为MySQL</title><content type='html'>其实挺简单的,不知道开始的时候不行,后来看自己代码太乱整理了一下然后就好了,奇怪了 @_@ :&lt;br /&gt;&lt;br /&gt;环境就是jbpm的GPD, 新建立个工程后会自动产生一些结构性的文件和目录,把src/config.files下的hibernate.cfg.xml作下修改,大致就类似这个:&lt;br /&gt;hibernate.dialect=org.hibernate.dialect.MySQLDialect&lt;br /&gt;hibernate.connection.driver_class=com.mysql.jdbc.Driver&lt;br /&gt;hibernate.connection.url=jdbc:mysql://localhost:3306/jbpm&lt;br /&gt;hibernate.connection.username=root&lt;br /&gt;hibernate.connection.password=rootpassword&lt;br /&gt;然后就是设置数据库了,得先找到ddl的脚本,我查了半天,最后终于在jbpm-starter-kit-3.1里找到了,是在/jbpm-db/build/mysql/目录下面的,有个mysql.create.sql,执行它,打开MySQL看就会看到一大堆的表,嗯,这部分工作就算完成了.&lt;br /&gt;然后就是写TestCase,在这之前随便用Designer作个工作流图.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public class JayTestProcess extends TestCase&lt;br /&gt;{&lt;br /&gt;  public void testSimplePersistence()&lt;br /&gt;  {&lt;br /&gt;    JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();&lt;br /&gt;    ProcessDefinition definition = ProcessDefinition.parseXmlResource("qqq.par/processdefinition.xml");&lt;br /&gt;  &lt;br /&gt;//do deploy process definition to database :&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;      jbpmContext.deployProcessDefinition(definition);&lt;br /&gt;    }finally&lt;br /&gt;    {&lt;br /&gt;      jbpmContext.close();&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;回去再看一下MySQL里面就有数据了,大概就是这么回事吧.还有个问题没解决就是在执行过程中会有WARN 说&lt;br /&gt;&lt;cite&gt;22:16:21,638 [main] WARN  EhCacheProvider : Could not find configuration [org.jbpm.graph.def.Node]; using defaults.&lt;/cite&gt;&lt;br /&gt;等等一大堆的找不到configuration,不知道它是不是在找用户自定义的configuration?&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114718898043531030?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114718898043531030/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114718898043531030' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114718898043531030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114718898043531030'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/jbpmmysql.html' title='将JBPM数据库改为MySQL'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114716816766343808</id><published>2006-05-09T17:49:00.000+08:00</published><updated>2006-05-09T17:49:28.180+08:00</updated><title type='text'>.sql脚本文件的执行</title><content type='html'>&lt;p&gt; shell&gt;&lt;span style="font-weight: bold;"&gt; mysql -h host -u user -p &lt;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Enter password: ********&lt;br /&gt;&lt;/p&gt;&lt;p&gt;哦，挺简单的嘛，以前怎么就不想去查捏&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114716816766343808?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114716816766343808/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114716816766343808' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114716816766343808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114716816766343808'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/sql.html' title='.sql脚本文件的执行'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114716125200014291</id><published>2006-05-09T15:54:00.000+08:00</published><updated>2006-05-09T15:54:12.013+08:00</updated><title type='text'>Task的访问权限</title><content type='html'>user就是单一用户，而actor是指角色。&lt;br /&gt;Task的执行通过assignment来实现：&lt;br /&gt;public interface AssignmentHandler extends Serializable&lt;br /&gt;{&lt;br /&gt;void assign( Assignable assignable, ExecutionContext executionContext );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;其中的Assignable就是拥有此任务执行权限的人或角色的列表：&lt;br /&gt;public interface Assignable&lt;br /&gt;{&lt;br /&gt;public void setActorId(String actorId);&lt;br /&gt;public void setPooledActors(String[] pooledActors);&lt;br /&gt;}&lt;br /&gt;你可以通过二个函数来声明这个task是只某个人能执行还是一些角色都可以执行。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114716125200014291?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114716125200014291/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114716125200014291' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114716125200014291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114716125200014291'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/05/task.html' title='Task的访问权限'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114638245812695941</id><published>2006-04-30T15:34:00.000+08:00</published><updated>2006-04-30T15:34:18.186+08:00</updated><title type='text'>ActionHandler与异常</title><content type='html'>JBPM中的ActionHandler未实现对异常的处理，也就是说，如果你的ActionHandler出现异常，那么它无奈地只能交给它的上级(Process)处理，这可能导致Process不能继续执行，而这并不是我们期望的，因为一些不重要的异常我们可以忽略。&lt;br /&gt;&lt;br /&gt;runa WFE引入了一个概念叫"bot"，是"robot"的变体，可以将ActionHandler所需要处理的内容全部移交给bot来处理，这个过程是基于消息的，即使bot出了问题也不会影响到ActionHandler。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114638245812695941?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114638245812695941/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114638245812695941' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114638245812695941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114638245812695941'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/04/actionhandler.html' title='ActionHandler与异常'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20653785.post-114629349272804087</id><published>2006-04-29T14:51:00.000+08:00</published><updated>2006-04-29T14:51:33.033+08:00</updated><title type='text'>关于IFile</title><content type='html'>Eclipse中的IFile只是个概念性的东西，它并不与文件系统中的某个文件挂钩，而且IFile只能在workspace里进行定位。&lt;br /&gt;IPath destPath = new Path("/test/processdefinition.xml");&lt;br /&gt;IFile destFile = ResourcesPlugin.getWorkspace().getRoot().getFile(destPath);&lt;br /&gt;如果想把东西输出到IFile所指定的文件上，进行create动作就OK了：&lt;br /&gt;InputStream stream = getClass().getClassLoader().getResourceAsStream(definitionFile);&lt;br /&gt;destFile.create(stream, true, getMonitor());&lt;br /&gt;&lt;br /&gt;这个stream和getMonitor()应该注意一下.以前一直不明白jar文件中的东西是怎么通过路径获得的，呵呵。&lt;br /&gt;还有这个getMonitor():&lt;br /&gt;private IProgressMonitor getMonitor()&lt;br /&gt; {&lt;br /&gt;  return configurer.getStatusLineManager().getProgressMonitor();&lt;br /&gt; }&lt;br /&gt;不是在哪里都可以获得IProgressMonitor的，目前我知道的就是和commands注册的地方有关联的，比如Action,可以通过它的IActionBarConfigurer来查找到。&lt;div class="blogger-post-footer"&gt;&lt;div class='adsense' style='text-align:right; padding: 0px 3px 0.5em 3px;'&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4237997142905800";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20653785-114629349272804087?l=considerjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://considerjava.blogspot.com/feeds/114629349272804087/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20653785&amp;postID=114629349272804087' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114629349272804087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20653785/posts/default/114629349272804087'/><link rel='alternate' type='text/html' href='http://considerjava.blogspot.com/2006/04/ifile.html' title='关于IFile'/><author><name>Jay</name><uri>http://www.blogger.com/profile/17189008591880303664</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/107/301625629_3ee4643809.jpg?v=0'/></author><thr:total>0</thr:total></entry></feed>
