<?xml version="1.0" encoding="UTF-8"?>
<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:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Labs Zsrv Net &#187; Java</title>
	<atom:link href="http://labs.zsrv.net/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.zsrv.net</link>
	<description>About Gadget, iPhone, Android and so on.</description>
	<lastBuildDate>Fri, 18 Feb 2011 09:34:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[Java]Javaでrefrection</title>
		<link>http://labs.zsrv.net/2010/04/javajava%e3%81%a7refrection/</link>
		<comments>http://labs.zsrv.net/2010/04/javajava%e3%81%a7refrection/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 09:44:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://labs.zsrv.net/?p=460</guid>
		<description><![CDATA[忘れないようにメモ. public static Object invoke(final Object target, final String methodName, final Object... params) throws Exception { List&#60;Class&#60;?&#62;&#62; parameterTypes = new ArrayList&#60;Class&#60;?&#62;&#62;(); for (Object o : params) { parameterTypes.add(o.getClass()); } Class&#60;?&#62; targetClass = target.getClass(); Method method = targetClass.getMethod(methodName, parameterTypes .toArray((new Class&#60;?&#62;[] {}))); return method.invoke(target, params); }]]></description>
			<content:encoded><![CDATA[<p>忘れないようにメモ.</p>
<p/>
<pre class="brush:java">
	public static Object invoke(final Object target, final String methodName, final Object... params) throws Exception {

		List&lt;Class&lt;?&gt;&gt; parameterTypes = new ArrayList&lt;Class&lt;?&gt;&gt;();
		for (Object o : params) {
			parameterTypes.add(o.getClass());
		}

		Class&lt;?&gt; targetClass = target.getClass();

		Method method = targetClass.getMethod(methodName, parameterTypes
				.toArray((new Class&lt;?&gt;[] {})));

		return method.invoke(target, params);

	}
</pre>
<img src="http://labs.zsrv.net/?ak_action=api_record_view&id=460&type=feed" alt="" /><p><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F04%2Fjavajava%25e3%2581%25a7refrection%2F&amp;linkname=%5BJava%5DJava%E3%81%A7refrection" title="Digg" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F04%2Fjavajava%25e3%2581%25a7refrection%2F&amp;linkname=%5BJava%5DJava%E3%81%A7refrection" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F04%2Fjavajava%25e3%2581%25a7refrection%2F&amp;linkname=%5BJava%5DJava%E3%81%A7refrection" title="Google Reader" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F04%2Fjavajava%25e3%2581%25a7refrection%2F&amp;linkname=%5BJava%5DJava%E3%81%A7refrection" title="Facebook" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_delicious" href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F04%2Fjavajava%25e3%2581%25a7refrection%2F&amp;linkname=%5BJava%5DJava%E3%81%A7refrection" title="Delicious" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_button_friendfeed" href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F04%2Fjavajava%25e3%2581%25a7refrection%2F&amp;linkname=%5BJava%5DJava%E3%81%A7refrection" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a class="a2a_button_evernote" href="http://www.addtoany.com/add_to/evernote?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F04%2Fjavajava%25e3%2581%25a7refrection%2F&amp;linkname=%5BJava%5DJava%E3%81%A7refrection" title="Evernote" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/evernote.png" width="16" height="16" alt="Evernote"/></a> <a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F04%2Fjavajava%25e3%2581%25a7refrection%2F&amp;linkname=%5BJava%5DJava%E3%81%A7refrection" title="Twitter" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://labs.zsrv.net/2010/04/javajava%e3%81%a7refrection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[struts2]struts2とFreemarkerで、テンプレートの実行時エラー表示を抑制する</title>
		<link>http://labs.zsrv.net/2010/03/struts2struts2%e3%81%a8freemarker%e3%81%a7%e3%80%81%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e3%81%ae%e5%ae%9f%e8%a1%8c%e6%99%82%e3%82%a8%e3%83%a9%e3%83%bc%e8%a1%a8%e7%a4%ba%e3%82%92/</link>
		<comments>http://labs.zsrv.net/2010/03/struts2struts2%e3%81%a8freemarker%e3%81%a7%e3%80%81%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e3%81%ae%e5%ae%9f%e8%a1%8c%e6%99%82%e3%82%a8%e3%83%a9%e3%83%bc%e8%a1%a8%e7%a4%ba%e3%82%92/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 07:27:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Freemarker]]></category>
		<category><![CDATA[Struts2]]></category>

		<guid isPermaLink="false">http://labs.zsrv.net/?p=455</guid>
		<description><![CDATA[struts2でFreemarkerを使っているとそのままでは、テンプレートにエラーが あった場合に、そのまま黄色画面でエラー(StackTrace)が表示されてしまう。 それを出力されないようにするための、FreemarkerManagerを作って設定する。 (これよりもっとスマートな方法はないものか&#8230;) import javax.servlet.ServletContext; import freemarker.template.TemplateException; import freemarker.template.TemplateExceptionHandler; public class FreemarkerManager extends org.apache.struts2.views.freemarker.FreemarkerManager { @Override protected freemarker.template.Configuration createConfiguration(ServletContext servletContext) throws TemplateException { freemarker.template.Configuration configuration = new freemarker.template.Configuration(); configuration.setTemplateLoader(getTemplateLoader(servletContext)); configuration.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); configuration.setObjectWrapper(getObjectWrapper()); if( mruMaxStrongSize > 0 ) { configuration.setSetting(freemarker.template.Configuration.CACHE_STORAGE_KEY, "strong:" + mruMaxStrongSize); } if (encoding != null) { configuration.setDefaultEncoding(encoding); } loadSettings(servletContext, configuration); return configuration; } [...]]]></description>
			<content:encoded><![CDATA[<p>struts2でFreemarkerを使っているとそのままでは、テンプレートにエラーが<br />
あった場合に、そのまま黄色画面でエラー(StackTrace)が表示されてしまう。</p>
<p>それを出力されないようにするための、FreemarkerManagerを作って設定する。<br />
(これよりもっとスマートな方法はないものか&#8230;)</p>
<pre class="brush:java">
import javax.servlet.ServletContext;

import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler;

public class FreemarkerManager extends
		org.apache.struts2.views.freemarker.FreemarkerManager {

	@Override
    protected freemarker.template.Configuration createConfiguration(ServletContext servletContext) throws TemplateException {
        freemarker.template.Configuration configuration = new freemarker.template.Configuration();

        configuration.setTemplateLoader(getTemplateLoader(servletContext));

        configuration.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);

        configuration.setObjectWrapper(getObjectWrapper());

        if( mruMaxStrongSize > 0 ) {
            configuration.setSetting(freemarker.template.Configuration.CACHE_STORAGE_KEY, "strong:" + mruMaxStrongSize);
        }

        if (encoding != null) {
            configuration.setDefaultEncoding(encoding);
        }

        loadSettings(servletContext, configuration);

        return configuration;
    }

}
</pre>
<p>struts.xmlに以下を記述。</p>
<pre class="brush:java">
	&lt;!--  freemarker settings --&gt;
	&lt;constant name="struts.freemarker.manager.classname" value="com.bbt757.ktai.freemarker.FreemarkerManager" /&gt;
</pre>
<img src="http://labs.zsrv.net/?ak_action=api_record_view&id=455&type=feed" alt="" /><p><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Digg" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Google Reader" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Facebook" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_delicious" href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Delicious" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_button_friendfeed" href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a class="a2a_button_evernote" href="http://www.addtoany.com/add_to/evernote?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Evernote" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/evernote.png" width="16" height="16" alt="Evernote"/></a> <a class="a2a_button_twitter" href="http://
