<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/xsl/rss.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:ppp="http://blog.sohu.com/rss/module/ppp/"
	>

	<channel>
		<title>海波无痕</title>
		<link>http://hiok.blog.sohu.com/</link>
		<description><![CDATA[总结/分享--思不得解]]></description>
		<pubDate>Wed, 20 Feb 2008 16:00:34 +0800</pubDate>
		<generator>搜狐博客</generator>
		<ppp:ebi>11d7bb4792</ppp:ebi>
		<image>
			<title>http://blog.sohu.com</title>
			<url>http://js.pp.sohu.com/ppp/blog/images/common/logo_150_60.gif</url>
			<link>http://blog.sohu.com/</link>
			<width>100</width>
			<height>43</height>
			<description>搜狐博客</description>
		</image>
		<item>
			<title>ziki-blog重新写了一遍</title>
			<link>http://hiok.blog.sohu.com/68538014.html</link>
			<comments>http://hiok.blog.sohu.com/68538014.html#comment</comments>
			<dc:creator>海波无痕</dc:creator>
			<pubDate>Sat, 27 Oct 2007 10:37:19 +0800</pubDate>
			<category>PHP</category>
			<guid>http://hiok.blog.sohu.com/68538014.html</guid>
			<description><![CDATA[<p><font face="Georgia">这两天把</font><a href="http://www.ziki.cn/" target="_blank"><font face="Georgia">ziki-blog</font></a><font face="Georgia">&nbsp;重新写了一遍,还是采用 txtdb数据库 和 tinybutstrong 模板引擎来完成,</font></p>
<p><font face="Georgia">目前把代码重新改成了符合mvc结构,index.php充当请求分发,调用不同的控制器来处理请求,控制器来选择模板,并提供模板数据源来显示</font></p>
<p><font face="Georgia">如下结构</font></p>
<p><font face="Georgia">index.php</font></p>
<p><font face="Georgia">&nbsp;controller/login.php</font></p>
<p><font face="Georgia">&nbsp;domain/user.php</font></p>
<p><font face="Georgia">还实现了自定义的urlrwite, 分别对应html_helper-&gt;build_url(),html_helper-&gt;urlrite(),</font></p>
<p><font face="Georgia">用来重新获得index.php后边的query,并重新组装放到$_GET数组中</font></p>
<p><font face="Georgia">如index.php/q=v!uuid=1</font></p>
<p><font face="Georgia">倾我所学的php知识啊</font></p>
<p><font face="Georgia">测试地址 </font><a href="http://www.ziki.cn/q/"><font face="Georgia">http://www.ziki.cn/q/</font></a></p>]]></description>
		</item>
		    
		
		<item>
			<title>'window.top.opener.tinyfck.document' 为空或不是对象</title>
			<link>http://hiok.blog.sohu.com/68424521.html</link>
			<comments>http://hiok.blog.sohu.com/68424521.html#comment</comments>
			<dc:creator>海波无痕</dc:creator>
			<pubDate>Fri, 26 Oct 2007 22:08:17 +0800</pubDate>
			<category>HTML/JS</category>
			<guid>http://hiok.blog.sohu.com/68424521.html</guid>
			<description><![CDATA[<p><a href="http://p4a.crealabsfoundation.org/tinyfck" target="_blank"><font face="Verdana">TinyFCK</font></a><font face="Verdana"> - TinyMCE with FCKEditor file manager,是一个可视化编辑器,我一直在小型的php cms系统中使用其作为在线编辑器，它是 </font><a href="http://p4a.crealabsfoundation.org/" target="_blank"><font face="Verdana">p4a</font></a><font face="Verdana"> 项目下一个子项目，p4a也是一个我比较看好的php快速开发框架<br /><br />最近下载了其最新版</font><a href="http://prdownloads.sourceforge.net/p4a/tinyfck-0.13.zip?download" target="_blank"><font face="Verdana">tinyfck-0.13.zip</font></a></p>
<p><font face="Verdana">发现了一个bug<br />当使用选择图片点击确定时候弹出 'window.top.opener.tinyfck.document'<br />解决办法<br />打开<br />tinyfck-0.13\filemanager\frmresourceslist.html</font></p>
<p><font face="Verdana">function OpenFile( fileUrl )<br />{<br />&nbsp;<br />&nbsp;<br />&nbsp;window.top.opener.tinymcpuk.document.forms[0].elements[window.top.opener.tinyfck_field].value = fileUrl;<br />&nbsp;<br />&nbsp;if (window.top.opener.tinymcpuk.document.forms[0].elements[window.top.opener.tinyfck_field].onchange != null) {<br />&nbsp;&nbsp;window.top.opener.tinymcpuk.document.forms[0].elements[window.top.opener.tinyfck_field].onchange();<br />&nbsp;}<br />&nbsp;<br />&nbsp;window.top.close();<br />&nbsp;window.top.opener.tinymcpuk.focus();<br />&nbsp;<br />}<br />改成<br />function OpenFile( fileUrl )<br />{<br />&nbsp;fileUrl=unescape(fileUrl); <br />&nbsp;window.top.opener.tinymcpuk.document.forms[0].elements[window.top.opener.tinymcpuk_field].value = fileUrl;&nbsp; <br />&nbsp;<br />&nbsp;if (window.top.opener.tinymcpuk.document.forms[0].elements[window.top.opener.tinymcpuk_field].onchange != null) {<br />&nbsp;&nbsp;window.top.opener.tinymcpuk.document.forms[0].elements[window.top.opener.tinymcpuk_field].onchange();&nbsp; <br />&nbsp;}<br />&nbsp;<br />&nbsp;window.top.close();&nbsp; <br />&nbsp;window.top.opener.tinymcpuk.focus(); <br />}<br />此为从旧版拷贝而来,估计是版本升级没有控制好造成的错误</font></p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana">更正</font></p>
<p><font face="Verdana">原来这不是一个bug，是调用的时候声明错了，由于拷贝了旧的声明代码</font></p>
<p><font face="Verdana">&nbsp;function fileBrowserCallBack(field_name, url, type, win) {<br />&nbsp;&nbsp;var connector = &quot;../../filemanager/browser.html?Connector=connectors/php/connector.php&quot;;<br />&nbsp;&nbsp;var enableAutoTypeSelection = true;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;var cType;<br /></font><font face="Verdana"><font color="#ff0000">&nbsp;&nbsp;tinyfck_field = field_name;<br />&nbsp;&nbsp;tinyfck = win;</font><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;switch (type) {<br />&nbsp;&nbsp;&nbsp;case &quot;image&quot;:<br />&nbsp;&nbsp;&nbsp;&nbsp;cType = &quot;Image&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;case &quot;flash&quot;:<br />&nbsp;&nbsp;&nbsp;&nbsp;cType = &quot;Flash&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;case &quot;file&quot;:<br />&nbsp;&nbsp;&nbsp;&nbsp;cType = &quot;File&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;if (enableAutoTypeSelection &amp;&amp; cType) {<br />&nbsp;&nbsp;&nbsp;connector += &quot;&amp;Type=&quot; + cType;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;window.open(connector, &quot;tinyfck&quot;, &quot;modal,width=600,height=400&quot;);<br />&nbsp;}</font></p>
<p><font face="Verdana">下边是新的&nbsp;例子 中的声明方法,是我搞错了<br />&nbsp;</font></p>]]></description>
		</item>
		    
		
		<item>
			<title>WL8:Connectivity to backend database not verified</title>
			<link>http://hiok.blog.sohu.com/68258090.html</link>
			<comments>http://hiok.blog.sohu.com/68258090.html#comment</comments>
			<dc:creator>海波无痕</dc:creator>
			<pubDate>Wed, 24 Oct 2007 17:14:58 +0800</pubDate>
			<category>JavaEE</category>
			<guid>http://hiok.blog.sohu.com/68258090.html</guid>
			<description><![CDATA[<p><font face="Georgia">Warning! Connectivity to backend database not verified. This is either because required connection pool attributes </font><font face="Georgia">&quot;TestConnectionsOnReserve&quot; or &quot;TestConnectionsOnRelease&quot; have not been enabled, or an invalid value has been specified for </font><font face="Georgia">attribute &quot;TestTableName&quot;. Please check the server log for more details..<br />打开<br />服务-&gt;JDBC-&gt;连接缓冲池-&gt;your_cp-&gt;配置-&gt;连接-&gt;高级显示-&gt;<br />选中测试保留的连接<br />测试表名称填写sysobjects<br />应用</font></p>
<p><font face="Georgia"><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://120.img.pp.sohu.com/images/blog/2007/10/24/17/13/1166c8c582b.jpg" border="0" /><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://120.img.pp.sohu.com/images/blog/2007/10/24/17/13/1166c8c578b.jpg" border="0" /><br />&nbsp;</font></p>]]></description>
		</item>
		    
		
		<item>
			<title>#cvs.lock): Permission denied</title>
			<link>http://hiok.blog.sohu.com/68219221.html</link>
			<comments>http://hiok.blog.sohu.com/68219221.html#comment</comments>
			<dc:creator>海波无痕</dc:creator>
			<pubDate>Wed, 24 Oct 2007 11:01:27 +0800</pubDate>
			<category>JavaEE</category>
			<guid>http://hiok.blog.sohu.com/68219221.html</guid>
			<description><![CDATA[<p><font face="Georgia">Problems reported while synchronizing CVS Workspace. 0 of 1 resources were synchronized.<br />&nbsp; An error occurred synchronizing /tapestry411: The server reported an error while performing the &quot;cvs update&quot; command.<br />&nbsp;&nbsp;&nbsp; The server reported an error while performing the &quot;cvs update&quot; command.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tapestry4: cvs server: failed to create lock directory for `/home/cvsroot/tapestry4' (/home/cvsroot/tapestry4/#cvs.lock): Permission denied<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tapestry4: cvs server: failed to obtain dir lock in repository `/home/cvsroot/tapestry4'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tapestry4: cvs [server aborted]: read lock failed - giving up<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
<p><font face="Georgia">其实问题很简单的,如果没猜错的话,你自己的用户权限是7,其它你建的两个用户的权限是5,也就是说你的帐户有写权限,而别人没有.<br />处理方法:修改./CVSROOT/config文件,把#LockDir=/var/lock/cvs前面的#去掉,同时还要用超级用户权限输入 chmod 777 /var/lock/cvs.这样应该就可以了</font></p>
<p><font face="Georgia">应该是chmod 777 /var/lock/cvs -R</font></p>
<p><font face="Georgia">参考<br />http://bbs.chinaunix.net/viewthread.php?tid=360795<br />http://www.scmlife.com/pagetype-bbsthread-and-tid-6159.html</font></p>]]></description>
		</item>
		    
		
		<item>
			<title>spring使用jdbcTemplate调用存储过程</title>
			<link>http://hiok.blog.sohu.com/68015131.html</link>
			<comments>http://hiok.blog.sohu.com/68015131.html#comment</comments>
			<dc:creator>海波无痕</dc:creator>
			<pubDate>Mon, 22 Oct 2007 12:46:25 +0800</pubDate>
			<category>JavaEE</category>
			<guid>http://hiok.blog.sohu.com/68015131.html</guid>
			<description><![CDATA[<p><font face="Georgia">&nbsp;public String executeSP(final String arg0,final String arg1,final String arg2,final String arg3){<br />&nbsp;&nbsp;Object obj = <br />&nbsp;&nbsp;this.getJdbcTemplate().execute(new ConnectionCallback(){<br />&nbsp;&nbsp;&nbsp;public Object doInConnection(Connection conn) throws SQLException, DataAccessException{<br />&nbsp;&nbsp;&nbsp;&nbsp;conn.setAutoCommit(true);<br />&nbsp;&nbsp;&nbsp;&nbsp;CallableStatement cstmt = conn.prepareCall(&quot;{call sp_yoursp ( ?,?,?,?,? ) }&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;cstmt.setString(1, arg0);<br />&nbsp;&nbsp;&nbsp;&nbsp;cstmt.setString(2, arg1);<br />&nbsp;&nbsp;&nbsp;&nbsp;cstmt.setString(3, arg2);<br />&nbsp;&nbsp;&nbsp;&nbsp;cstmt.setString(4, arg3);<br />&nbsp;&nbsp;&nbsp;&nbsp;cstmt.registerOutParameter(5, Types.VARCHAR);<br />&nbsp;&nbsp;&nbsp;&nbsp;cstmt.execute();<br />&nbsp;&nbsp;&nbsp;&nbsp;String out = cstmt.getString(5);<br />&nbsp;&nbsp;&nbsp;&nbsp;cstmt.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;conn.setAutoCommit(false);<br />&nbsp;&nbsp;&nbsp;&nbsp;return out;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;});<br />&nbsp;&nbsp;if(obj !=null &amp;&amp; !obj.toString().trim().equals(&quot;&quot;)){<br />&nbsp;&nbsp;&nbsp;return obj.toString();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return null;<br />&nbsp;}</font></p>
<p><font face="Georgia">&nbsp;private JdbcTemplate jdbcTemplate; //spring inject</font></p>
<p><font face="Georgia">&nbsp;public JdbcTemplate getJdbcTemplate() {<br />&nbsp;&nbsp;return jdbcTemplate;<br />&nbsp;}</font></p>
<p><font face="Georgia">&nbsp;public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {<br />&nbsp;&nbsp;this.jdbcTemplate = jdbcTemplate;<br />&nbsp;}</font></p>
<p><font face="Georgia"></font>&nbsp;</p>
<p><font face="Georgia">application.xml</font></p>
<p><font face="Georgia">&lt;bean id=&quot;jdbcTemplate&quot; class=&quot;org.springframework.jdbc.core.JdbcTemplate&quot;&gt;<br />&nbsp;&nbsp;&lt;property name=&quot;dataSource&quot;&gt;&lt;ref bean=&quot;dataSource&quot; /&gt;&lt;/property&gt;<br />&lt;/bean&gt;</font></p>
<p><font face="Georgia"></font>&nbsp;</p>
<p><font face="Georgia">错误1</font></p>
<p><font face="Georgia">org.springframework.jdbc.UncategorizedSQLException: ConnectionCallback; uncategorized SQLException for SQL []; SQL state [ZZZZZ]; error code [7713]; Stored procedure 'sp_yoursp' may be run only in unchained transaction mode. The 'SET CHAINED OFF' command will cause the current session to use unchained transaction mode.<br />; nested exception is com.sybase.jdbc2.jdbc.SybSQLException: Stored procedure 'sp_yoursp' may be run only in unchained transaction mode. The 'SET CHAINED OFF' command will cause the current session to use unchained transaction mode.</font></p>
<p><font face="Georgia">Caused by: com.sybase.jdbc2.jdbc.SybSQLException: Stored procedure 'sp_yoursp' may be run only in unchained transaction mode. The 'SET CHAINED OFF' command will cause the current session to use unchained transaction mode.</font></p>
<p><font face="Georgia">&nbsp;at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2636)<br />&nbsp;at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:1996)<br />&nbsp;at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69)<br />&nbsp;at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:204)<br />&nbsp;at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:187)<br />&nbsp;at com.sybase.jdbc2.jdbc.SybStatement.executeLoop(SybStatement.java:1698)<br />&nbsp;at com.sybase.jdbc2.jdbc.SybCallableStatement.execute(SybCallableStatement.java:123)<br /></font></p>
<p><font face="Georgia"><font face="Georgia">错误2</font></font></p>
<p><font face="Georgia">org.springframework.jdbc.UncategorizedSQLException: ConnectionCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; Cannot set auto commit to &quot;true&quot; when in distributed transaction.; nested exception is java.sql.SQLException: Cannot set auto commit to &quot;true&quot; when in distributed transaction.<br />Caused by: java.sql.SQLException: Cannot set auto commit to &quot;true&quot; when in distributed transaction.<br />&nbsp;at weblogic.jdbc.wrapper.JTSConnection.setAutoCommit(JTSConnection.java:548)<br />&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />&nbsp;at java.lang.reflect.Method.invoke(Method.java:324)<br />&nbsp;at org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler.invoke(JdbcTemplate.java:1173)<br />&nbsp;at $Proxy9.setAutoCommit(Unknown Source)</font></p>
<p><font face="Georgia">将消息驱动bean中的getMessageDrivenContext().getUserTransaction().begin();取消掉</font></p>
<p><font face="Georgia">参考资料</font><font face="Georgia"><br /><a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=83&t=001056" target="_blank">Spring :Approach to call Stored Procedures</a></font></p>
<p><a href="http://forum.springframework.org/archive/index.php/t-9879.html" target="_blank">JdbcTemplate call with ResultSet</a></p>
<p><a href="http://www.blogjava.net/waterye/archive/2006/01/13/27952.html" target="_blank">JDBC call Stored Procedure</a> <br /><a href="http://blog.csdn.net/zwhfyy/archive/2007/05/19/1616168.aspx" target="_blank">Stored procedure 'zhanghouying' may be run only in unchained transaction mode. The 'SET CHAINED OFF' command will cause the current session to use unchained transaction mode.</a><br />&nbsp;</p>]]></description>
		</item>
		    
		
		<item>
			<title>eclipse3.x +tomcat6.x +jdk6 备忘 tomcatPlugin</title>
			<link>http://hiok.blog.sohu.com/67674083.html</link>
			<comments>http://hiok.blog.sohu.com/67674083.html#comment</comments>
			<dc:creator>海波无痕</dc:creator>
			<pubDate>Sat, 20 Oct 2007 16:20:54 +0800</pubDate>
			<category>JavaEE</category>
			<guid>http://hiok.blog.sohu.com/67674083.html</guid>
			<description><![CDATA[<a href="http://www.eclipsetotale.com/tomcatPlugin.html" target="_blank"></a>
<p><a href="http://www.eclipsetotale.com/tomcatPlugin.html" target="_blank"><font face="Georgia">tomcatPlugin</font></a></p>
<p><font face="Georgia"><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://121.img.pp.sohu.com/images/blog/2007/10/19/9/7/116510fc07f.jpg" border="0" /><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://122.img.pp.sohu.com/images/blog/2007/10/19/9/8/11651107eff.jpg" border="0" /><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://122.img.pp.sohu.com/images/blog/2007/10/19/9/8/11651106189.jpg" border="0" /></font></p>
<p><font face="Georgia"></font>&nbsp;</p>
<p><font face="Georgia">搭建这个环境主要是为了进行JSF1.2的研究</font></p>
<p><font face="Georgia">环境</font></p>
<p><font face="Georgia">&gt;JDK1.5<br />Eclipse3.x<br />Tomcat6.x<br /></font><a href="http://www.eclipsetotale.com/tomcatPlugin.html" target="_blank"><font face="Georgia">tomcatPlugin</font></a></p>
<p><font face="Georgia">#############################################<br />lib库<br />#############################################<br />jsf<br />########<br />jsf-api-1.2_05<br />jsf-impl-1.2_05<br />jstl-1.1.2<br />standard-1.1.2<br />########<br />spring<br />########<br />spring-2.0.7<br />commons-logging-1.1<br />log4j-1.2.14<br />########<br />hibernate<br />########<br />hibernate-3.2.5<br />cglib-nodep-2.1_3<br />commons-collections-3.1<br />dom4j-1.6.1<br />antlr-2.7.6<br />ehcache-1.3.0<br />jta-spec1_0_1</font></p>
<p><font face="Georgia">jsf1.2结合spring变得非常容易</font></p>
<p><font face="Georgia">1)常规的web.xml加载spring配置</font></p>
<p><font face="Georgia">如下</font></p>
<p><font face="Georgia">&lt;context-param&gt;<br />&nbsp;&nbsp;&nbsp; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;param-value&gt;/WEB-INF/applicationContext.xml&lt;/param-value&gt;<br />&lt;/context-param&gt;</font><br /><font face="Georgia">&lt;listener&gt;<br />&nbsp;&lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;<br />&lt;/listener&gt;&lt;listener&gt;<br />&lt;listener-class&gt;org.springframework.web.context.request.RequestContextListener&lt;/listener-class&gt;<br />&lt;/listener&gt;<br />&lt;listener&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;listener-class&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; com.sun.faces.config.ConfigureListener<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/listener-class&gt;<br />&lt;/listener&gt;<br /></font></p>
<p><font face="Georgia">2)faces-config.xml</font></p>
<p><font face="Georgia">&lt;?xml version='1.0' encoding='UTF-8'?&gt;<br />&lt;faces-config xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot;<br />&nbsp;&nbsp;&nbsp; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;<br />&nbsp;&nbsp;&nbsp; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd&quot;<br />&nbsp;&nbsp;&nbsp; version=&quot;1.2&quot;&gt;</font></p>
<p><font face="Georgia" color="#ff0000">&nbsp;&nbsp;&nbsp; &lt;application&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variable-resolver&gt;org.springframework.web.jsf.DelegatingVariableResolver&lt;/variable-resolver&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/application&gt;</font></p>
<p><font face="Georgia">&lt;managed-bean&gt;<br />&nbsp;&nbsp;&nbsp; &lt;description/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;managed-bean-name&gt;yourBean&lt;/managed-bean-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;managed-bean-class&gt;com.corp.YourBean&lt;/managed-bean-class&gt;<br />&nbsp;&nbsp;&nbsp; &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;managed-property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property-name&gt;minimum&lt;/property-name&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property-class&gt;int&lt;/property-class&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;1&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/managed-property&gt;<br />&nbsp;&nbsp;&lt;property-name&gt;yourService&lt;/property-name&gt;<br /><font color="#ffffff"><font color="#ff0000">&nbsp;&nbsp;&lt;value&gt;#{yourService}&lt;/value</font></font><font color="#ff0000">&gt;&nbsp;&lt;!--从spring中获得--&gt;</font><br />&nbsp;&lt;/managed-property&gt;<br />&nbsp; &lt;/managed-bean&gt;</font><br /><font face="Georgia">&lt;/faces-config&gt;</font></p>]]></description>
		</item>
		    
		
		<item>
			<title>ajax 备忘</title>
			<link>http://hiok.blog.sohu.com/67363930.html</link>
			<comments>http://hiok.blog.sohu.com/67363930.html#comment</comments>
			<dc:creator>海波无痕</dc:creator>
			<pubDate>Tue, 16 Oct 2007 12:25:57 +0800</pubDate>
			<category>HTML/JS</category>
			<guid>http://hiok.blog.sohu.com/67363930.html</guid>
			<description><![CDATA[<p><font face="Georgia">记录一段ajax的html代码</font></p>
<p><font face="Georgia">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;<br />&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;zh-CN&quot; lang=&quot;zh-CN&quot;&gt;<br />&lt;head&gt;<br />&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;&gt;<br />&lt;title&gt;&lt;/title&gt;<br />&lt;script language=&quot;JavaScript&quot;&gt;<br />var XMLHttpReq;<br />function createXMLHttpRequest() {<br />&nbsp;if(window.XMLHttpRequest) { //Mozilla<br />&nbsp;&nbsp;XMLHttpReq = new XMLHttpRequest();<br />&nbsp;}else if (window.ActiveXObject) { // IE<br />&nbsp;&nbsp;/**<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;XMLHttpReq = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);<br />&nbsp;&nbsp;} catch (e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XMLHttpReq = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;} catch (e) {}<br />&nbsp;&nbsp;}**/<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;for(vari=5;i;i--){<br />&nbsp;&nbsp;&nbsp; try{<br />&nbsp;&nbsp;&nbsp; &nbsp;if(i==2){<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;XMLHttpReq=newActiveXObject(&quot;Microsoft.XMLHTTP&quot;);<br />&nbsp;&nbsp;&nbsp; &nbsp;}else{<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;XMLHttpReq=newActiveXObject(&quot;Msxml2.XMLHTTP.&quot;+i+&quot;.0&quot;);<br />&nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp;&nbsp; &nbsp;break;<br />&nbsp;&nbsp;&nbsp; }catch(e){ XMLHttpReq=false;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;}<br />}</font></p>
<p><font face="Georgia">function sendRequest(url,params) {<br />&nbsp;&nbsp;createXMLHttpRequest();<br />&nbsp;&nbsp;XMLHttpReq.open(&quot;POST&quot;, url, true);<br />&nbsp;&nbsp;alert (url);<br />&nbsp;&nbsp;XMLHttpReq.onreadystatechange = processResponse;<br />&nbsp;&nbsp;XMLHttpReq.setRequestHeader(&quot;CONTENT-TYPE&quot;,&quot;text/xml;charset=UTF-8&quot;);<br />&nbsp;&nbsp;XMLHttpReq.send(params);<br />}</font></p>
<p><font face="Georgia">function processResponse() {<br />&nbsp;if (XMLHttpReq.readyState == 4) { <br />&nbsp;&nbsp;if (XMLHttpReq.status == 200) {<br />&nbsp;&nbsp;&nbsp;&nbsp;var name = XMLHttpReq.responseText;<br />&nbsp;&nbsp;&nbsp;&nbsp;alert (name);<br />&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;alert(&quot;&quot;);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp; }<br />}</font></p>
<p><font face="Georgia">function login(){<br />&nbsp;var form = document.getElementById(&quot;form&quot;)<br />&nbsp;var username = form.username.value<br />&nbsp;var password = form.password.value<br />&nbsp;var URL&nbsp; = &quot;http://localhost:8080/app/index.jsp&quot;<br />&nbsp;var params = &quot;username=&quot;+username+&quot;&amp;password=&quot;+password<br />&nbsp;sendRequest(URL+&quot;?&quot;+params,null);<br />&nbsp;return false;<br />}&lt;/script&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;form method=&quot;post&quot; id=&quot;form&quot; name=&quot;form&quot;&gt;<br />username:&lt;input type=&quot;text&quot; name=&quot;username&quot;/&gt;&lt;br/&gt;<br />password:&lt;input type=&quot;password&quot; name=&quot;password&quot;/&gt;&lt;br/&gt;<br />&lt;input type=&quot;submit&quot; name=&quot;submit&quot; onclick=&quot;return login()&quot;/&gt;<br />&lt;/form&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</font></p>
<p><font face="Georgia">参考资料 </font><a href="http://www.w3schools.com/dom/dom_http.asp" target="_blank"><font face="Georgia">The HttpRequest Object</font></a><br />&nbsp;</p>
<div style="FONT-WEIGHT: bold"><font face="Georgia">我的相关日志：</font></div>
<p><br /><font face="Georgia">2007-09-30&nbsp;|&nbsp;</font><a title="window.print()打印指定区域[转载]" href="http://hiok.blog.sohu.com/65708596.html" target="_blank"><font face="Georgia">window.print()打印指定区域[转载]</font></a><br /><font face="Georgia">2007-10-11&nbsp;|&nbsp;</font><a title="Tapestry4.12使用Script组件的例子" href="http://hiok.blog.sohu.com/66807966.html" target="_blank"><font face="Georgia">Tapestry4.12使用Script组件的例子</font></a><br /><font face="Georgia">2007-06-07&nbsp;|&nbsp;</font><a title="Javascript拿到当前时间戳" href="http://hiok.blog.sohu.com/49511544.html" target="_blank"><font face="Georgia">Javascript拿到当前时间戳</font></a><br /><br /></p>]]></description>
		</item>
		    
		
		<item>
			<title>各个framework运行时依赖包</title>
			<link>http://hiok.blog.sohu.com/67267844.html</link>
			<comments>http://hiok.blog.sohu.com/67267844.html#comment</comments>
			<dc:creator>海波无痕</dc:creator>
			<pubDate>Fri, 19 Oct 2007 15:06:37 +0800</pubDate>
			<category>JavaEE</category>
			<guid>http://hiok.blog.sohu.com/67267844.html</guid>
			<description><![CDATA[<p><font face="Georgia">spring<br />spring-2.0.7.jar<br />commons-logging-1.1.jar</font></p>
<p><font face="Georgia">hibernate<br />hibernate-3.2.5ga.jar<br />commons-logging-1.1.jar<br />commons-collections-3.1.jar<br />antlr-2.7.7.jar<br />dom4j-1.6.1.jar<br />cglib-nodep-2.1_3.jar<br />jta-spec1_0_1.jar<br />log4j-1.2.14.jar<br />ehcache-1.3.0.jar</font></p>
<p><font face="Georgia">tapestry<br />tapestry-framework-4.1.2.jar<br />tapestry-contrib-4.1.2.jar<br />tapestry-spring-1.0.0.jar<br />ognl-2.7.jar<br />oro-2.0.8.jar<br />javassist.3.4.ga.jar<br />backport-util-concurrent-3.0.jar<br />hivemind-1.1.1.jar<br />hivemind-lib-1.1.1.jar</font></p>
<p><font face="Georgia">JSF1.2&lt;JDK1.5&gt;<br />jsf-api-1.2_05.jar<br />jsf-impl-</font><font face="Georgia">1.2_05</font><font face="Georgia">.jar<br />jstl-1.1.2.jar<br />standard-1.1.2.jar</font><br /></p>]]></description>
		</item>
		    
		
		<item>
			<title>用sstemplates-0.9.jar和POI生成excel文件</title>
			<link>http://hiok.blog.sohu.com/67100054.html</link>
			<comments>http://hiok.blog.sohu.com/67100054.html#comment</comments>
			<dc:creator>海波无痕</dc:creator>
			<pubDate>Sat, 13 Oct 2007 22:21:03 +0800</pubDate>
			<category>JavaEE</category>
			<guid>http://hiok.blog.sohu.com/67100054.html</guid>
			<description><![CDATA[<p><font face="Georgia">SsTemplates Java Spreadsheet Templates for Excel<br /></font><a href="http://carbonfive.sourceforge.net/sstemplates/api/com/carbonfive/sstemplates/package-summary.html#documentation" target="_blank"><font face="Georgia">SsTemplates Java Spreadsheet Templates for Excel </font></a><font face="Georgia">is a simple yet powerful framework for creating Excel documents in a Java environment.&nbsp;&nbsp;</font></p>
<p><font face="Georgia">环境:<br />JDK1.4.2_12</font></p>
<p><font face="Georgia">准备jar包<br />sstemplates-0.9.jar<br />jsp-api-2.0.jar<br />commons-beanutils-1.7.0.jar<br />commons-digester-1.8.jar<br />poi-3.0.1-FINAL-20070705.jar<br />poi-contrib-3.0.1-FINAL-20070705.jar<br />poi-scratchpad-3.0.1-FINAL-20070705.jar<br />commons-el-1.0.jar<br />commons-collections-3.1.jar<br />commons-lang-2.3.jar<br />commons-logging-1.1.jar</font></p>
<p><font face="Georgia">我的测试demo</font></p>
<p><font face="Georgia">文件名:standalone.sstmp</font></p>
<p><font face="Georgia">文件内容:</font></p>
<p><font face="Georgia">&lt;workbook xmlns=&quot;http://carbonfive.com/schema/sstemplates&quot;&gt;<br />&nbsp; &lt;sheet name=&quot;StandAlone Example&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;row&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;cell&gt;Name:&lt;/cell&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;cell&gt;${ stringValue }&lt;/cell&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/row&gt;<br />&nbsp;&nbsp;&nbsp; &lt;row&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;cell&gt;Names:&lt;/cell&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forEach var=&quot;name&quot; items=&quot;${ listValue }&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;cell&gt;${ name }&lt;/cell&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/forEach&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/row&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;forEach var=&quot;map&quot; items=&quot;${ listMap }&quot;&gt;<br />&nbsp;&lt;row&gt;<br />&nbsp;&nbsp;&lt;cell&gt;${ map.a }&lt;/cell&gt;<br />&nbsp;&lt;/row&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/forEach&gt;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp; &lt;row&gt;<br />&nbsp;&nbsp;&nbsp; &lt;cell&gt;${ obj.name }&lt;/cell&gt;<br />&nbsp;&nbsp;&nbsp; &lt;cell&gt;${ obj.standAlone.name }&lt;/cell&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/row&gt;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;row&gt;<br />&nbsp;&nbsp;&nbsp; &lt;forEach var=&quot;listValue&quot; items=&quot;${ listList }&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;cell&gt;${ listValue }&lt;/cell&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/forEach&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/row&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;forEach var=&quot;listValue&quot; items=&quot;${ listList2 }&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;row&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&lt;cell&gt;${ listValue.name }&lt;/cell&gt;&lt;cell&gt;${ listValue.standAlone.name }&lt;/cell&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/row&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/forEach&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp; &lt;/sheet&gt;<br />&lt;/workbook&gt;</font></p>
<p><font face="Georgia">文件名:StandAlone.java</font></p>
<p><font face="Georgia">文件内容:<br /></font></p><font face="Georgia">
<p>import java.io.File;<br />import java.io.FileOutputStream;<br />import java.io.OutputStream;<br />import java.util.ArrayList;<br />import java.util.HashMap;<br />import java.util.List;<br />import java.util.Map;</p>
<p>import org.apache.poi.hssf.usermodel.HSSFWorkbook;</p>
<p>import com.carbonfive.sstemplates.SsTemplateProcessor;</p>
<p>public class StandAlone {<br />&nbsp;private StandAlone standAlone;<br />&nbsp;private String name;</p>
<p>&nbsp;public String getName() {<br />&nbsp;&nbsp;return name;<br />&nbsp;}</p>
<p>&nbsp;public void setName(String name) {<br />&nbsp;&nbsp;this.name = name;<br />&nbsp;}</p>
<p>&nbsp;{<br />&nbsp;&nbsp;setName(&quot;test1&quot;);<br />&nbsp;}</p>
<p>&nbsp;public StandAlone(String name) {<br />&nbsp;&nbsp;this.setName(name);<br />&nbsp;}</p>
<p>&nbsp;public StandAlone() {<br />&nbsp;&nbsp;this.setStandAlone(new StandAlone(&quot;test2&quot;));<br />&nbsp;}</p>
<p>&nbsp;public static void main(String args[]) throws Exception {<br />&nbsp;&nbsp;File template = new File(&quot;standalone.sstmp&quot;);</p>
<p>&nbsp;&nbsp;Map context = new HashMap();<br />&nbsp;&nbsp;context.put(&quot;stringValue&quot;, &quot;Ralph&quot;);<br />&nbsp;&nbsp;context.put(&quot;listValue&quot;, new String[] { &quot;Sue&quot;, &quot;Amy&quot;, &quot;Donna&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&quot;testHaha&quot; });</p>
<p>&nbsp;&nbsp;Map map = new HashMap();<br />&nbsp;&nbsp;map.put(&quot;a&quot;, &quot;asdfasdfadsf&quot;);<br />&nbsp;&nbsp;context.put(&quot;listMap&quot;, new Map[] { map });</p>
<p>&nbsp;&nbsp;context.put(&quot;obj&quot;, new StandAlone());<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;List list = new ArrayList();<br />&nbsp;&nbsp;for(int i=0;i&lt;10;i++){<br />&nbsp;&nbsp;&nbsp;list.add(&quot;list&quot;+i);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;context.put(&quot;listList&quot;, list);</p>
<p>&nbsp;&nbsp;List list2 = new ArrayList();<br />&nbsp;&nbsp;for (int i = 0; i &lt; 10000; i++) {<br />&nbsp;&nbsp;&nbsp;StandAlone obj = new StandAlone(&quot;objName&quot; + i);<br />&nbsp;&nbsp;&nbsp;StandAlone obj2 = new StandAlone();<br />&nbsp;&nbsp;&nbsp;obj.setStandAlone(obj2);<br />&nbsp;&nbsp;&nbsp;list2.add(obj);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;context.put(&quot;listList2&quot;, list2);</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;SsTemplateProcessor processor = SsTemplateProcessor.getInstance();<br />&nbsp;&nbsp;HSSFWorkbook workbook = processor.process(template, context);</p>
<p>&nbsp;&nbsp;File xls = new File(&quot;standalone.xls&quot;);<br />&nbsp;&nbsp;OutputStream out = new FileOutputStream(xls);<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;workbook.write(out);<br />&nbsp;&nbsp;} finally {<br />&nbsp;&nbsp;&nbsp;out.close();<br />&nbsp;&nbsp;}<br />&nbsp;}</p>
<p>&nbsp;public StandAlone getStandAlone() {<br />&nbsp;&nbsp;return standAlone;<br />&nbsp;}</p>
<p>&nbsp;public void setStandAlone(StandAlone standAlone) {<br />&nbsp;&nbsp;this.standAlone = standAlone;<br />&nbsp;}<br />}<br /></p>
<p></p></font><font face="Georgia"><br /></font><p></p>
<p><font face="Georgia">生成结果</font></p>
<p><font face="Georgia"><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://120.img.pp.sohu.com/images/blog/2007/10/13/22/20/11634d1cac2.jpg" border="0" /></font></p>]]></description>
		</item>
		    
		
		<item>
			<title>run RSF helloworld on jdk14</title>
			<link>http://hiok.blog.sohu.com/66914034.html</link>
			<comments>http://hiok.blog.sohu.com/66914034.html#comment</comments>
			<dc:creator>海波无痕</dc:creator>
			<pubDate>Tue, 23 Oct 2007 08:24:43 +0800</pubDate>
			<category>JavaEE</category>
			<guid>http://hiok.blog.sohu.com/66914034.html</guid>
			<description><![CDATA[<p><a style="FONT-FAMILY: Georgia" href="http://www2.caret.cam.ac.uk/rsfwiki/Wiki.jsp?page=Main" target="_blank">Reasonable Server Faces (RSF)</a><span style="FONT-FAMILY: Georgia"> is an open source web programming framework written in Java, and built on the Spring framework. </span><br /><br /><span style="FONT-FAMILY: Georgia">It provides for Pure XHTML templating and complete request lifecycle handling. (more features listed below).</span><br /><span style="FONT-FAMILY: Georgia">This Wiki is the home of the RSF/IKAT framework, and will be used to house all its documentation as <br />well as discussions and </span><span style="FONT-FAMILY: Georgia">planning on its future.</span><br /><span style="FONT-FAMILY: Georgia"><br />主要看中其不引入标签库,而是干净的html template</span><br /><span style="FONT-FAMILY: Georgia">本例运行环境</span><br /><span style="FONT-FAMILY: Georgia">JDK1.4.2_12</span><br /><span style="FONT-FAMILY: Georgia">wl813</span><br /><br /><span style="FONT-FAMILY: Georgia">1、下载Current Release 0.7.2</span><br /><span style="FONT-FAMILY: Georgia">ponderutilcore &nbsp;&nbsp; &nbsp; 1.2.2</span><br /><span style="FONT-FAMILY: Georgia">j-servletutil &nbsp;&nbsp; &nbsp;1.2.2</span><br /><span style="FONT-FAMILY: Georgia">rsfutil &nbsp;&nbsp; &nbsp;0.7.2</span><br /><span style="FONT-FAMILY: Georgia">rsf-swf &nbsp;&nbsp; &nbsp;0.7.2</span><br /><span style="FONT-FAMILY: Georgia">rsfspringmvc &nbsp;&nbsp; &nbsp;0.7.2</span><br /><span style="FONT-FAMILY: Georgia">rsfhibernate3 &nbsp;&nbsp; &nbsp;0.7.2</span><br /><span style="FONT-FAMILY: Georgia">rsfportlet &nbsp;&nbsp; &nbsp;0.7.2</span><br /><span style="FONT-FAMILY: Georgia">2、由于其源代码在JDK5下编译，在JDK1.4.2_12下</span><br /><span style="FONT-FAMILY: Georgia">报错</span><br /><span style="FONT-FAMILY: Georgia">Exception:weblogic.management.ApplicationException: start() failed.</span><br /><span style="FONT-FAMILY: Georgia">&nbsp;&nbsp; &nbsp;Module: web&nbsp;&nbsp; &nbsp;Error: java.lang.UnsupportedClassVersionError: uk/org/ponder/rsac/servlet/RSACFilter (Unsupported </span><br /><br /><span style="FONT-FAMILY: Georgia">major.minor version 49.0)</span><br /><br /><span style="FONT-FAMILY: Georgia">3、使用</span><a style="FONT-FAMILY: Georgia" href="http://retroweaver.sourceforge.net/" target="_blank">retroweaver</a><br /><span style="FONT-FAMILY: Georgia">将7个jar包重新编译向JDK14兼容</span><br /><span style="FONT-FAMILY: Georgia">具体步骤</span><br /><span style="FONT-FAMILY: Georgia">解压缩ponderutilcore-1.2.2.jar包</span><br /><span style="FONT-FAMILY: Georgia">命令</span><br /><span style="FONT-FAMILY: Georgia">java -cp retroweaver-all-2.0.1.jar;j-servletutil-1.2.2.jar net.sourceforge.retroweaver.Weaver -source ponderutilcore-1.2.2</span><br /><span style="FONT-FAMILY: Georgia">然后再重新压缩回jar包并命名为 ponderutilcore-1.2.2-JDK14.jar</span><br /><br /><span style="FONT-FAMILY: Georgia">4、按照其</span><a style="FONT-FAMILY: Georgia" href="http://www2.caret.cam.ac.uk/rsfwiki/Wiki.jsp?page=HelloWorld" target="_blank">helloworld</a><span style="FONT-FAMILY: Georgia">建立所需的</span><br /><span style="FONT-FAMILY: Georgia">context/WEB-INF/web.xml</span><br /><span style="FONT-FAMILY: Georgia">context/WEB-INF/applicationContext.xml</span><br /><span style="FONT-FAMILY: Georgia">context/WEB-INF/requestContext.xml</span><br /><span style="FONT-FAMILY: Georgia">context/content/main.html</span><br /><br /><span style="FONT-FAMILY: Georgia">src/main/java/uk.org.ponder.rsf.helloapp.beans.HelloBean.java</span><br /><span style="FONT-FAMILY: Georgia">src/main/java/uk.org.ponder.rsf.helloapp.producers/MainProducer.java</span><br /><span style="FONT-FAMILY: Georgia">这些都拷贝一下就OK了</span><br /><br /><span style="FONT-FAMILY: Georgia">5、运行时候需要retroweaver-rt-2.0.1.jar</span><br /><span style="FONT-FAMILY: Georgia">6、运行报错<br /></span><span style="FONT-FAMILY: Georgia">2007-10-12 11:06:39,000 INFO (ServletEarlyRequestParser.java:40) - &lt;begin parseRequest for GET /web/faces&gt;<br />2007-10-12 11:06:39,812 WARN (RenderHandlerBracketer.java:114) - &lt;Got target exception of class uk.org.ponder.rsf.flow.errors.SilentRedirectException&gt;<br />2007-10-12 11:06:39,828 INFO (RootHandlerBean.java:165) - &lt;Redirecting to http://localhost:8100/web/faces/main&gt;<br />2007-10-12 11:06:39,828 INFO (RootHandlerBean.java:107) - &lt;Request handled&gt;<br />2007-10-12 11:06:39,859 INFO (ServletEarlyRequestParser.java:40) - &lt;begin parseRequest for GET /web/faces/main&gt;<br />2007-10-12 11:07:06,328 WARN (ViewProcessor.java:96) - &lt;Error processing component uk.org.ponder.rsf.components.UIOutput@1c78f98 with ID messagefield&gt;<br />java.lang.NullPointerException<br />&nbsp;&nbsp;&nbsp; at EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap.hash(Unknown Source)<br />&nbsp;&nbsp;&nbsp; at EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap.get(Unknown Source)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.reflect.ReflectiveCache.getClassMap(ReflectiveCache.java:104)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.reflect.JDKReflectiveCache.construct(JDKReflectiveCache.java:57)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.RSACBeanLocatorImpl.createBean(RSACBeanLocatorImpl.java:500)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.RSACBeanLocatorImpl.getLocalBean(RSACBeanLocatorImpl.java:345)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.RSACBeanLocatorImpl.getBean(RSACBeanLocatorImpl.java:376)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.PerRequestInfo$1.locateBean(PerRequestInfo.java:49)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.beanutil.FallbackCapableBeanLocator.locateBean(FallbackCapableBeanLocator.java:34)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.beanutil.support.BeanLocatorPropertyAccessor.getProperty(BeanLocatorPropertyAccessor.java:44)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.beanutil.BeanUtil.navigateOne(BeanUtil.java:56)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.mapping.DARApplier.fetchShells(DARApplier.java:365)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.componentprocessor.ValueFixer.computeResolver(ValueFixer.java:186)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.componentprocessor.ValueFixer.processComponent(ValueFixer.java:107)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.componentprocessor.ViewProcessor.performFixup(ViewProcessor.java:93)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.componentprocessor.ViewProcessor.getProcessedView(ViewProcessor.java:58)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.processor.RSFRenderHandler$1.run(RSFRenderHandler.java:97)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.util.CollectingRunnableInvoker$1.run(CollectingRunnableInvoker.java:25)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper.invokeRunnable(BasicScopedAlterationWrapper.java:59)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$FastClassByCGLIB$$84f89202.invoke(&lt;generated&gt;)<br />&nbsp;&nbsp;&nbsp; at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)<br />&nbsp;&nbsp;&nbsp; at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$EnhancerByCGLIB$$9392038c.invokeRunnable(&lt;generated&gt;)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$FastClassByCGLIB$$84f89202.invoke(&lt;generated&gt;)<br />&nbsp;&nbsp;&nbsp; at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)<br />&nbsp;&nbsp;&nbsp; at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$EnhancerByCGLIB$$9392038c.invokeRunnable(&lt;generated&gt;)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.util.CollectingRunnableInvoker$1.run(CollectingRunnableInvoker.java:29)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.util.CollectingRunnableInvoker.invokeWrappers(CollectingRunnableInvoker.java:22)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.util.CollectingRunnableInvoker.invokeRunnable(CollectingRunnableInvoker.java:14)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.processor.RSFRenderHandler.handle(RSFRenderHandler.java:85)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.processor.RSFRenderHandler$$FastClassByCGLIB$$8252dcfe.invoke(&lt;generated&gt;)<br />&nbsp;&nbsp;&nbsp; at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)<br />&nbsp;&nbsp;&nbsp; at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.processor.RSFRenderHandler$$EnhancerByCGLIB$$24c1eb60.handle(&lt;generated&gt;)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.processor.RenderHandlerBracketer.handle(RenderHandlerBracketer.java:84)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.processor.RenderHandlerBracketer$$FastClassByCGLIB$$2fdfc810.invoke(&lt;generated&gt;)<br />&nbsp;&nbsp;&nbsp; at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)<br />&nbsp;&nbsp;&nbsp; at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.processor.RenderHandlerBracketer$$EnhancerByCGLIB$$bd2f11a6.handle(&lt;generated&gt;)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.servlet.RootHandlerBean.handleGet(RootHandlerBean.java:121)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.servlet.RootHandlerBean.handle(RootHandlerBean.java:101)<br />&nbsp;&nbsp;&nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />&nbsp;&nbsp;&nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />&nbsp;&nbsp;&nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />&nbsp;&nbsp;&nbsp; at java.lang.reflect.Method.invoke(Method.java:324)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:23)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:17)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:77)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.RSACBeanLocatorImpl.createBean(RSACBeanLocatorImpl.java:550)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.RSACBeanLocatorImpl.access$000(RSACBeanLocatorImpl.java:72)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.RSACBeanLocatorImpl$1.run(RSACBeanLocatorImpl.java:446)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.RSACErrorBridge.invokeRunnable(RSACErrorBridge.java:38)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.RSACBeanLocatorImpl.createBean(RSACBeanLocatorImpl.java:444)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.RSACBeanLocatorImpl.getLocalBean(RSACBeanLocatorImpl.java:345)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.RSACBeanLocatorImpl.getBean(RSACBeanLocatorImpl.java:376)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsac.PerRequestInfo$1.locateBean(PerRequestInfo.java:49)<br />&nbsp;&nbsp;&nbsp; at uk.org.ponder.rsf.servlet.ReasonableSpringServlet.service(ReasonableSpringServlet.java:57)<br />&nbsp;&nbsp;&nbsp; at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)<br />&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)<br />&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)<br />&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)<br />&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6452)<br />&nbsp;&nbsp;&nbsp; at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)<br />&nbsp;&nbsp;&nbsp; at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)<br />&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)<br />&nbsp;&nbsp;&nbsp; at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)<br />&nbsp;&nbsp;&nbsp; at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)<br />&nbsp;&nbsp;&nbsp; at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)<br />2007-10-12 11:07:06,421 INFO (RootHandlerBean.java:107) - &lt;Request handled&gt;<br /></span><span style="FONT-FAMILY: Georgia"></span><br /><br /><span style="FONT-FAMILY: Georgia">把uk.org.ponder.rsf.componentprocessor.ViewProcessor.java 放到src/main/java中重新编译</span><br /><span style="FONT-FAMILY: Georgia">并放到WL启动classpath中,错误消失</span><br /><br /><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://121.img.pp.sohu.com/images/blog/2007/10/12/11/15/1162d44d3c3.jpg" border="0" /><br /><br /><font face="Verdana">JDK14兼容问题已经修复</font></p>
<p><font face="Verdana">http://ponder.org.uk/rsf/posts/list/168.page</font></p>]]></description>
		</item>
		    
		
	</channel>
</rss>
