<?xml version="1.0"?><rss version="2.0">
<channel>
  <title>Java Beans dot Asia - xml category</title>
  <link>http://javabeans.asia/categories/xml/</link>
  <description>Just a few simple tutorials</description>
  <language>en</language>
  <copyright>Alexander Zagniotov</copyright>
  <lastBuildDate>Tue, 23 Feb 2010 11:04:00 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  <image>
    <url>/images/blog-image.jpg</url>
    <title>Java Beans dot Asia (xml category)</title>
    <link>http://javabeans.asia/</link>
  </image>
  <item>
    <title>Redefining web applications with AJAX, Servlets and JSON</title>
    <link>http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html</link>
	 <description>
        In this article I would like to show how JSON (JavaScript Object Notation) and Java servlet can be used together in a little AJAX (Asynchronous JavaScript and XML) application. &lt;br /&gt;
&lt;br /&gt;
To give brief description to those who are not closely familiar with JSON - &lt;br /&gt;
JSON is a lightweight syntax for representing data, which makes working with it much more pleasant than with XML and makes AJAX applications faster. Also, when working with JSON, there is no need for an XML parsing.&lt;br /&gt;
&lt;br /&gt;
In the following example, I am going to create a callback servlet that fetches and parses an RSS feed. Then the parsed feed data is passed to the client side in a form of JSON. The data then formatted and presented to the user. The client uses AJAX call to query the servlet.&lt;br /&gt;
&lt;br /&gt;
For this application, I used three third-party libraries:&lt;br /&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;JSON library&lt;/strong&gt; provided by &lt;a title=&#034;JSON&#034; target=&#034;_new&#034; href=&#034;http://json.org/java/&#034; onclick=&#034;javascript:pageTracker._trackPageview(&#039;/outbound/article/json.org&#039;);&#034; rel=&#034;nofollow&#034;&gt;JSON.org&lt;/a&gt; and extended by &lt;a target=&#034;_blank&#034; href=&#034;http://oss.metaparadigm.com/jsonrpc/index.html&#034;&gt;JSON-RPC-Java&lt;/a&gt; which allows to create and easily parse JSON data through Java code. This library can run in a Servlet container such as Tomcat, JBoss and other J2EE Application servers.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&#034;https://rome.dev.java.net/&#034; target=&#034;_blank&#034; title=&#034;Project ROME&#034;&gt;Project ROME&lt;/a&gt;&lt;br /&gt;
    ROME is an set of open source Java tools for parsing, generating and publishing RSS and Atom feeds.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&#034;http://jdom.org&#034; target=&#034;_blank&#034; title=&#034;JDOM XML parser&#034;&gt;JDOM XML parser&lt;/a&gt;&lt;br /&gt;
    JDOM is a Java-based &amp;quot;document object model&amp;quot; for XML files. JDOM serves the same purpose as DOM, but is easier to use&lt;/li&gt;
&lt;/ol&gt;
The libraries are included in the source code which accompanies this article. This application example is also included as a &lt;a href=&#034;http://javabeans.asia/files/src/json_servlets_ajax_war.zip&#034; title=&#034;WAR archive&#034;&gt;WAR&lt;/a&gt; archive, ready to be deployed on Tomcat.&lt;br /&gt;
&lt;br /&gt;
The following is my servlet implementation. The servlet fetches and parses feed data. The JSON library mentioned previously allows me easily to create and populate JSON object.&lt;br /&gt;
&lt;pre class=&#034;java&#034; name=&#034;code&#034;&gt;package asia.javabeans.json;&lt;br /&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.net.MalformedURLException;&lt;br /&gt;import java.net.URL;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import javax.servlet.ServletConfig;&lt;br /&gt;import javax.servlet.ServletException;&lt;br /&gt;import javax.servlet.http.HttpServlet;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;&lt;br /&gt;import org.json.JSONArray;&lt;br /&gt;import org.json.JSONObject;&lt;br /&gt;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndEntry;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndFeed;&lt;br /&gt;import com.sun.syndication.fetcher.FeedFetcher;&lt;br /&gt;import com.sun.syndication.fetcher.FetcherException;&lt;br /&gt;import com.sun.syndication.fetcher.impl.FeedFetcherCache;&lt;br /&gt;import &lt;br /&gt;com.sun.syndication.fetcher.impl.HashMapFeedInfoCache;&lt;br /&gt;import com.sun.syndication.fetcher.impl.HttpURLFeedFetcher;&lt;br /&gt;import com.sun.syndication.io.FeedException;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @author Alexander Zagniotov (http://javabeans.asia)&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt;public class JsonServlet extends HttpServlet {&lt;br /&gt;&lt;br /&gt;private static final long serialVersionUID = 1L;&lt;br /&gt;private static final String BLOG_URL = &lt;br /&gt;		&amp;quot;http://javabeans.asia/rss.xml&amp;quot;;&lt;br /&gt;private static final String CONTENT_TYPE = &lt;br /&gt;			&amp;quot;application/json&amp;quot;;&lt;br /&gt;private FeedFetcherCache feedInfoCache = null;&lt;br /&gt;private FeedFetcher feedFetcher = null;&lt;br /&gt;&lt;br /&gt;public void init(ServletConfig config) &lt;br /&gt;			throws ServletException {&lt;br /&gt;	super.init(config);&lt;br /&gt;&lt;br /&gt;	feedInfoCache = &lt;br /&gt;		HashMapFeedInfoCache.getInstance();&lt;br /&gt;	feedFetcher = &lt;br /&gt;		new HttpURLFeedFetcher(feedInfoCache);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void doGet(HttpServletRequest request, &lt;br /&gt;			HttpServletResponse response)&lt;br /&gt;		throws ServletException, IOException {&lt;br /&gt;&lt;br /&gt;	SyndFeed feed = this.feedFethcer(BLOG_URL);&lt;br /&gt;&lt;br /&gt;  if (feed != null) {&lt;br /&gt;	String json = this.feedToJSON(feed);&lt;br /&gt;	response.setContentType(CONTENT_TYPE);&lt;br /&gt;	response.setHeader(&amp;quot;Cache-Control&amp;quot;, &amp;quot;no-cache&amp;quot;);&lt;br /&gt;	response.getWriter().write(json);&lt;br /&gt;  } &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private SyndFeed feedFethcer(String url) {&lt;br /&gt;	SyndFeed feed = null;&lt;br /&gt;	try {&lt;br /&gt;		feed = feedFetcher.retrieveFeed(&lt;br /&gt;		new URL(BLOG_URL));&lt;br /&gt;	} catch (IllegalArgumentException e) {&lt;br /&gt;		e.printStackTrace();&lt;br /&gt;	} catch (FeedException e) {&lt;br /&gt;		e.printStackTrace();&lt;br /&gt;	} catch (FetcherException e) {&lt;br /&gt;		e.printStackTrace();&lt;br /&gt;	} catch (MalformedURLException e) {&lt;br /&gt;		e.printStackTrace();&lt;br /&gt;	} catch (IOException e) {&lt;br /&gt;		e.printStackTrace();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	return feed;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private String feedToJSON(SyndFeed feed) {&lt;br /&gt;&lt;br /&gt;	JSONObject jsonObj = new JSONObject();&lt;br /&gt;	JSONArray jsonEntryTitles = new JSONArray();&lt;br /&gt;&lt;br /&gt;	jsonObj.put(&amp;quot;blogtitle&amp;quot;, feed.getTitle());&lt;br /&gt;	jsonObj.put(&amp;quot;blogdescription&amp;quot;, feed.getDescription());&lt;br /&gt;	jsonObj.put(&amp;quot;bloglanguage&amp;quot;, feed.getLanguage());&lt;br /&gt;	jsonObj.put(&amp;quot;bloglink&amp;quot;, feed.getLink());&lt;br /&gt;	jsonObj.put(&amp;quot;author&amp;quot;, feed.getCopyright());&lt;br /&gt;&lt;br /&gt;	List&amp;lt;?&amp;gt; feedEntries = feed.getEntries();&lt;br /&gt;&lt;br /&gt;	for (Object c : feedEntries) {&lt;br /&gt;	     SyndEntry syndicateEntry = (SyndEntry) c;&lt;br /&gt;	     jsonEntryTitles.put(syndicateEntry.getTitle());&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	jsonObj.put(&amp;quot;blogentrytitles&amp;quot;, jsonEntryTitles);&lt;br /&gt;	return jsonObj.toString();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
As you can see it is very easy to construct JSON objects and arrays on the server side and pass them to the client. For the purpose of this example I am getting my data from RSS feed, but the data can also be coming from DB etc. &lt;br /&gt;
&lt;br /&gt;
The following is my client implementation. The client queries the servlet using AJAX call. When an AJAX call returns a response from the servlet in a form of JSON object, the object data is formatted and information about the RSS feed is presented to the client:&lt;br /&gt;
&lt;pre class=&#034;java&#034; name=&#034;code&#034;&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;title&amp;gt;Java Beans dot Asia&amp;lt;/title&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script language=&amp;quot;JavaScript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;		&lt;br /&gt;	var httpRequest = null;&lt;br /&gt;	&lt;br /&gt;function getDescriptionAsJSON() {&lt;br /&gt;&lt;br /&gt;	var description = &lt;br /&gt;		document.getElementById(&#039;description&#039;);&lt;br /&gt;	description.innerHTML = &amp;quot;Loading, please wait ...&amp;quot;;&lt;br /&gt;&lt;br /&gt;	var url = &amp;quot;http://localhost:8080/json/json&amp;quot;;&lt;br /&gt;	if(window.XMLHttpRequest){&lt;br /&gt;		httpRequest = new XMLHttpRequest();&lt;br /&gt;	}&lt;br /&gt;	else if(window.ActiveXObject){&lt;br /&gt;		httpRequest = &lt;br /&gt;			new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	httpRequest.open(&amp;quot;GET&amp;quot;, url, true);&lt;br /&gt;	httpRequest.onreadystatechange = handler;&lt;br /&gt;	httpRequest.send(null);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function handler() {&lt;br /&gt;	if (httpRequest.readyState == 4) {&lt;br /&gt;		if (httpRequest.status == 200) {&lt;br /&gt;		    processJSON(httpRequest.responseText);&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function processJSON(jsonObjectString) {&lt;br /&gt;&lt;br /&gt;	var description = &lt;br /&gt;		document.getElementById(&#039;description&#039;);&lt;br /&gt;	&lt;br /&gt;      //Since JSON is a subset of JavaScript, I am using &lt;br /&gt;      //JavaScript&#039;s own compiler to parse JSON in one line!&lt;br /&gt;      var jsonObject = eval(&#039;(&#039; + jsonObjectString + &#039;)&#039;)&lt;br /&gt;&lt;br /&gt;	var text = &amp;quot;&amp;quot;;&lt;br /&gt;	&lt;br /&gt;	text += &amp;quot;Author: &amp;quot; + jsonObject.author + &amp;quot;&amp;lt; br /&amp;gt;&amp;quot;;&lt;br /&gt;	text += &amp;quot;Blog Name: &amp;quot; + &lt;br /&gt;		jsonObject.blogtitle + &amp;quot;&amp;lt; br /&amp;gt;&amp;quot;;&lt;br /&gt;	text += &amp;quot;Blog URL: &amp;quot; + &lt;br /&gt;		jsonObject.bloglink + &amp;quot;&amp;lt; br /&amp;gt;&amp;quot;;&lt;br /&gt;	text += &amp;quot;Blog Description: &amp;quot; + &lt;br /&gt;		jsonObject.blogdescription + &amp;quot;&amp;lt; br /&amp;gt;&amp;quot;;&lt;br /&gt;	text += &amp;quot;Blog Language: &amp;quot; + &lt;br /&gt;		jsonObject.bloglanguage + &amp;quot;&amp;lt; br /&amp;gt;&amp;quot;;&lt;br /&gt;	&lt;br /&gt;	description.innerHTML = text;&lt;br /&gt;	var entries = &amp;quot;Last &amp;quot; + &lt;br /&gt;                  jsonObject.blogentrytitles.length &lt;br /&gt;	+ &amp;quot; blog entries are:\n\n&amp;quot;;&lt;br /&gt;&lt;br /&gt;	for (var index = 0; &lt;br /&gt;		index &amp;lt; jsonObject.blogentrytitles.length; &lt;br /&gt;							index ++) {&lt;br /&gt;		entries += (index + 1) + &amp;quot;: &amp;quot; + &lt;br /&gt;			jsonObject.blogentrytitles[index] + &amp;quot;\n&amp;quot;;&lt;br /&gt;	} &lt;br /&gt;	alert(entries);&lt;br /&gt;}&lt;br /&gt;	&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;img src=&amp;quot;images/javabeansmugshot_120x120.jpg&amp;quot; border=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt; br /&amp;gt;&lt;br /&gt;&amp;lt; br /&amp;gt;&lt;br /&gt;&amp;lt;div id=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt; br /&amp;gt;&lt;br /&gt;&amp;lt; br /&amp;gt;&lt;br /&gt;&amp;lt;a href=&amp;quot;javascript:void(0)&amp;quot; &lt;br /&gt;             onclick=&amp;quot;return getDescriptionAsJSON();&amp;quot;&amp;gt;&lt;br /&gt;Click to get description!&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;
As you could see, JSON data can be easily parsed on the client side with the help of Java script &lt;em&gt;eval()&lt;/em&gt; function. To remind - JSON is a subset of Java script, therefore&lt;em&gt; eval()&lt;/em&gt; will produce a valid object. &lt;br /&gt;
&lt;br /&gt;
Keep in mind, that there is a need for extra care when using &lt;em&gt;eval&lt;/em&gt;. The problem is that &lt;em&gt;eval&lt;/em&gt; will compile and execute Java script code that coming back from the response. This could cause a security risk if the response data is coming from an untrusted source.&lt;br /&gt;
&lt;br /&gt;
That&#039;s it. I hope this example was clear and helpful :)&lt;br /&gt;
&lt;a href=&#034;http://javabeans.asia/files/src/json_servlets_ajax_war.zip&#034; title=&#034;WAR archive&#034;&gt; &lt;/a&gt;&lt;a href=&#034;http://javabeans.asia/files/src/json_servlets_ajax_war.zip&#034; title=&#034;WAR archive&#034;&gt; &lt;/a&gt;&lt;br /&gt;
Please note that this example was tested by me and its working fine. The source code as mentioned previously is included  as Eclipse project. You can simply create a new Java project from the existing Ant build.xml file. &lt;br /&gt;
&lt;br /&gt;
Comments/flames are appreciated :)&lt;br /&gt;
&lt;br /&gt;
Cheers&lt;br /&gt;
&lt;a href=&#034;http://javabeans.asia/files/src/json_servlets_ajax_war.zip&#034; title=&#034;WAR archive&#034;&gt; &lt;/a&gt;&lt;div class=&#034;tags&#034;&gt;&lt;span&gt;Social Bookmarks : &lt;/span&gt;&amp;nbsp;&lt;a href=&#034;http://slashdot.org/bookmark.pl?url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Slash Dot&#034;&gt;&lt;img src=&#034;common/images/slashdot.png&#034; alt=&#034;Add this post to Slashdot&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://digg.com/submit?url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Digg this post&#034;&gt;&lt;img src=&#034;common/images/digg.png&#034; alt=&#034;Add this post to Digg&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://reddit.com/submit?url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Reddit&#034;&gt;&lt;img src=&#034;common/images/reddit.png&#034; alt=&#034;Add this post to Reddit&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://del.icio.us/post?url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Save this post to Del.icio.us&#034;&gt;&lt;img src=&#034;common/images/delicious.png&#034; alt=&#034;Add this post to Delicious&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.stumbleupon.com/submit?url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Stumble this post&#034;&gt;&lt;img src=&#034;common/images/stumbleupon.png&#034; alt=&#034;Add this post to Stumble it&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Google&#034;&gt;&lt;img src=&#034;common/images/google.png&#034; alt=&#034;Add this post to Google&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://technorati.com/faves?add=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Technorati&#034;&gt;&lt;img src=&#034;common/images/technorati.png&#034; alt=&#034;Add this post to Technorati&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.bloglines.com/sub/http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Bloglines&#034;&gt;&lt;img src=&#034;common/images/bloglines.png&#034; alt=&#034;Add this post to Bloglines&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.facebook.com/share.php?u=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Facebook&#034;&gt;&lt;img src=&#034;common/images/facebook.png&#034; alt=&#034;Add this post to Facebook&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.furl.net/storeIt.jsp?u=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;t=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Furl&#034;&gt;&lt;img src=&#034;common/images/furl.png&#034; alt=&#034;Add this post to Furl&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Windows Live&#034;&gt;&lt;img src=&#034;common/images/windowslive.png&#034; alt=&#034;Add this post to Windows Live&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;t=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Yahoo!&#034;&gt;&lt;img src=&#034;common/images/yahoo.png&#034; alt=&#034;Add this post to Yahoo!&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Related Posts&lt;/b&gt;&lt;br /&gt;&lt;i&gt;There are no related posts for this blog entry&lt;/i&gt;&lt;/p&gt;&lt;br /&gt;</description>
	<!--
    <description>
          In this article I would like to show how JSON (JavaScript Object Notation) and Java servlet can be used together in a little AJAX (Asynchronous JavaScript and XML) application.   To give brief description to those who are not closely familiar with JSON -  JSON is a lightweight syntax for representing data, which ...&lt;p&gt;&lt;a href=&#034;http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&#034;&gt;Read more...&lt;/a&gt;&lt;/p&gt;&lt;div class=&#034;tags&#034;&gt;&lt;span&gt;Social Bookmarks : &lt;/span&gt;&amp;nbsp;&lt;a href=&#034;http://slashdot.org/bookmark.pl?url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Slash Dot&#034;&gt;&lt;img src=&#034;common/images/slashdot.png&#034; alt=&#034;Add this post to Slashdot&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://digg.com/submit?url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Digg this post&#034;&gt;&lt;img src=&#034;common/images/digg.png&#034; alt=&#034;Add this post to Digg&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://reddit.com/submit?url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Reddit&#034;&gt;&lt;img src=&#034;common/images/reddit.png&#034; alt=&#034;Add this post to Reddit&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://del.icio.us/post?url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Save this post to Del.icio.us&#034;&gt;&lt;img src=&#034;common/images/delicious.png&#034; alt=&#034;Add this post to Delicious&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.stumbleupon.com/submit?url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Stumble this post&#034;&gt;&lt;img src=&#034;common/images/stumbleupon.png&#034; alt=&#034;Add this post to Stumble it&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Google&#034;&gt;&lt;img src=&#034;common/images/google.png&#034; alt=&#034;Add this post to Google&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://technorati.com/faves?add=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Technorati&#034;&gt;&lt;img src=&#034;common/images/technorati.png&#034; alt=&#034;Add this post to Technorati&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.bloglines.com/sub/http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Bloglines&#034;&gt;&lt;img src=&#034;common/images/bloglines.png&#034; alt=&#034;Add this post to Bloglines&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.facebook.com/share.php?u=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Facebook&#034;&gt;&lt;img src=&#034;common/images/facebook.png&#034; alt=&#034;Add this post to Facebook&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.furl.net/storeIt.jsp?u=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;t=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Furl&#034;&gt;&lt;img src=&#034;common/images/furl.png&#034; alt=&#034;Add this post to Furl&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;title=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Windows Live&#034;&gt;&lt;img src=&#034;common/images/windowslive.png&#034; alt=&#034;Add this post to Windows Live&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html&amp;amp;t=Redefining web applications with AJAX, Servlets and JSON&#034; target=&#034;_blank&#034; title=&#034;Add this post to Yahoo!&#034;&gt;&lt;img src=&#034;common/images/yahoo.png&#034; alt=&#034;Add this post to Yahoo!&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      
	-->
    <enclosure url="http://javabeans.asia/files/src/json_servlets_ajax_src.zip" length="471648" type="application/zip;charset=ISO-8859-1" />
    <category>ajax</category>
    <category>java</category>
    <category>json</category>
    <category>servlets</category>
    <category>xml</category>
    <category>javascript</category>
    <comments>http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html#comments</comments>
    <guid isPermaLink="true">http://javabeans.asia/2009/09/13/redefining_web_applications_with_ajax_servlets_and_json.html</guid>
    <pubDate>Sun, 13 Sep 2009 04:00:00 GMT</pubDate>
  </item>
  <item>
    <title>JBoss Security - JMX Console</title>
    <link>http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html</link>
	 <description>
        I was reading about JBoss security today, and came across the following page:&lt;br /&gt;
&lt;a title=&#034;Permanent Link to &amp;quot;JBoss Security vulnerability JMX Management Console&amp;quot;&#034; target=&#034;_blank&#034; href=&#034;http://goohackle.com/jboss-security-vulnerability-jmx-management-console/&#034;&gt;JBoss Security vulnerability JMX Management Console&lt;/a&gt;. The guy tells how common is to come across servers on the Internet that run completely unsecured JMX-Console.&lt;br /&gt;
&lt;br /&gt;
I gave it a try, typed few keywords in Google, and voil&amp;agrave; - &lt;br /&gt;
around one third of the Google results on the first page were links to various servers that run completely unsecured JBoss and JMX-console. Having said that, I would like to point out that I did not attempt anything naughty or malicious.&lt;br /&gt;
&lt;br /&gt;
Its still amazes me how careless some people are - leaving an open door for anyone to come in. Come on people, surely in this day and age we all know how important is to keep web applications secured. Don&#039;t be lazy, its not going to take much of your time since &lt;a target=&#034;_blank&#034; href=&#034;http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.2/doc/Server_Configuration_Guide/Inspecting_the_Server___the_JMX_Console_Web_Application-Securing_the_JMX_Console.html&#034;&gt;securing JMX-console&lt;/a&gt; its such a trivial task.&lt;div class=&#034;tags&#034;&gt;&lt;span&gt;Social Bookmarks : &lt;/span&gt;&amp;nbsp;&lt;a href=&#034;http://slashdot.org/bookmark.pl?url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Slash Dot&#034;&gt;&lt;img src=&#034;common/images/slashdot.png&#034; alt=&#034;Add this post to Slashdot&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://digg.com/submit?url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Digg this post&#034;&gt;&lt;img src=&#034;common/images/digg.png&#034; alt=&#034;Add this post to Digg&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://reddit.com/submit?url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Reddit&#034;&gt;&lt;img src=&#034;common/images/reddit.png&#034; alt=&#034;Add this post to Reddit&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://del.icio.us/post?url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Save this post to Del.icio.us&#034;&gt;&lt;img src=&#034;common/images/delicious.png&#034; alt=&#034;Add this post to Delicious&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.stumbleupon.com/submit?url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Stumble this post&#034;&gt;&lt;img src=&#034;common/images/stumbleupon.png&#034; alt=&#034;Add this post to Stumble it&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Google&#034;&gt;&lt;img src=&#034;common/images/google.png&#034; alt=&#034;Add this post to Google&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://technorati.com/faves?add=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Technorati&#034;&gt;&lt;img src=&#034;common/images/technorati.png&#034; alt=&#034;Add this post to Technorati&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.bloglines.com/sub/http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Bloglines&#034;&gt;&lt;img src=&#034;common/images/bloglines.png&#034; alt=&#034;Add this post to Bloglines&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.facebook.com/share.php?u=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Facebook&#034;&gt;&lt;img src=&#034;common/images/facebook.png&#034; alt=&#034;Add this post to Facebook&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.furl.net/storeIt.jsp?u=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;t=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Furl&#034;&gt;&lt;img src=&#034;common/images/furl.png&#034; alt=&#034;Add this post to Furl&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Windows Live&#034;&gt;&lt;img src=&#034;common/images/windowslive.png&#034; alt=&#034;Add this post to Windows Live&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;t=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Yahoo!&#034;&gt;&lt;img src=&#034;common/images/yahoo.png&#034; alt=&#034;Add this post to Yahoo!&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Related Posts&lt;/b&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/10/24/drools_tutorial_on_writing_dsl_template.html&#034; rel=&#034;bookmark&#034; title=&#034;Drools - tutorial on writing DSL template&#034;&gt;Drools - tutorial on writing DSL template&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/06/09/drools_stop_executing_current_agenda_group_and_all_rules.html&#034; rel=&#034;bookmark&#034; title=&#034;Drools - Stop executing current agenda group and all rules&#034;&gt;Drools - Stop executing current agenda group and all rules&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&#034; rel=&#034;bookmark&#034; title=&#034;Using template to deploy a JBoss queue&#034;&gt;Using template to deploy a JBoss queue&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/08/jboss_clustering_hasingleton_service.html&#034; rel=&#034;bookmark&#034; title=&#034;JBoss Clustering - HASingleton service&#034;&gt;JBoss Clustering - HASingleton service&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/11/drools_working_with_stateless_session.html&#034; rel=&#034;bookmark&#034; title=&#034;Drools - working with Stateless session&#034;&gt;Drools - working with Stateless session&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/14/jboss_clustering_how_many_nodes_in_the_cluster.html&#034; rel=&#034;bookmark&#034; title=&#034;JBoss Clustering - How many nodes in the cluster?&#034;&gt;JBoss Clustering - How many nodes in the cluster?&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/16/jboss_clustering_shared_state_across_cluster_partition.html&#034; rel=&#034;bookmark&#034; title=&#034;JBoss Clustering - Shared state across cluster partition&#034;&gt;JBoss Clustering - Shared state across cluster partition&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/31/jboss_clustering_architecture_distributed_replicant_manager.html&#034; rel=&#034;bookmark&#034; title=&#034;JBoss Clustering Architecture - Distributed Replicant Manager&#034;&gt;JBoss Clustering Architecture - Distributed Replicant Manager&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;</description>
	<!--
    <description>
          I was reading about JBoss security today, and came across the following page: JBoss Security vulnerability JMX Management Console. The guy tells how common is to come across servers on the Internet that run completely unsecured JMX-Console.  I gave it a try, typed few keywords in Google, and voil&amp;agrave; -  around ...&lt;p&gt;&lt;a href=&#034;http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&#034;&gt;Read more...&lt;/a&gt;&lt;/p&gt;&lt;div class=&#034;tags&#034;&gt;&lt;span&gt;Social Bookmarks : &lt;/span&gt;&amp;nbsp;&lt;a href=&#034;http://slashdot.org/bookmark.pl?url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Slash Dot&#034;&gt;&lt;img src=&#034;common/images/slashdot.png&#034; alt=&#034;Add this post to Slashdot&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://digg.com/submit?url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Digg this post&#034;&gt;&lt;img src=&#034;common/images/digg.png&#034; alt=&#034;Add this post to Digg&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://reddit.com/submit?url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Reddit&#034;&gt;&lt;img src=&#034;common/images/reddit.png&#034; alt=&#034;Add this post to Reddit&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://del.icio.us/post?url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Save this post to Del.icio.us&#034;&gt;&lt;img src=&#034;common/images/delicious.png&#034; alt=&#034;Add this post to Delicious&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.stumbleupon.com/submit?url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Stumble this post&#034;&gt;&lt;img src=&#034;common/images/stumbleupon.png&#034; alt=&#034;Add this post to Stumble it&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Google&#034;&gt;&lt;img src=&#034;common/images/google.png&#034; alt=&#034;Add this post to Google&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://technorati.com/faves?add=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Technorati&#034;&gt;&lt;img src=&#034;common/images/technorati.png&#034; alt=&#034;Add this post to Technorati&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.bloglines.com/sub/http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Bloglines&#034;&gt;&lt;img src=&#034;common/images/bloglines.png&#034; alt=&#034;Add this post to Bloglines&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.facebook.com/share.php?u=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Facebook&#034;&gt;&lt;img src=&#034;common/images/facebook.png&#034; alt=&#034;Add this post to Facebook&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.furl.net/storeIt.jsp?u=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;t=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Furl&#034;&gt;&lt;img src=&#034;common/images/furl.png&#034; alt=&#034;Add this post to Furl&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;title=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Windows Live&#034;&gt;&lt;img src=&#034;common/images/windowslive.png&#034; alt=&#034;Add this post to Windows Live&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&amp;amp;t=JBoss Security - JMX Console&#034; target=&#034;_blank&#034; title=&#034;Add this post to Yahoo!&#034;&gt;&lt;img src=&#034;common/images/yahoo.png&#034; alt=&#034;Add this post to Yahoo!&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      
	-->
    <category>jboss</category>
    <category>xml</category>
    <comments>http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html#comments</comments>
    <guid isPermaLink="true">http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html</guid>
    <pubDate>Thu, 27 Aug 2009 02:46:00 GMT</pubDate>
  </item>
  <item>
    <title>Hibernate Event Interceptor</title>
    <link>http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html</link>
	 <description>
        Its quite common when you create an application, there is a need to create an audit trail on the application level where all entity insert, update and delete events are logged. &lt;br /&gt;
&lt;br /&gt;
In this post, I would like to describe a simple approach that can help you to avoid littering with unnecessary statements in your application code. The solution is to register a class as a listener on Hibernate events. Once class is triggered, you will be able to write audit information to a database or log file.&lt;br /&gt;
&lt;br /&gt;
The following shows a Hibernate event interceptor class that is triggered when persistent entity is inserted, deleted or updated.
&lt;pre class=&#034;java:firstline[1]&#034; name=&#034;code&#034;&gt;public class HibernateEventInterceptor&lt;br /&gt;	implements	&lt;br /&gt;	        PostInsertEventListener, &lt;br /&gt;		PostUpdateEventListener,&lt;br /&gt;		PostDeleteEventListener, &lt;br /&gt;				Initializable {&lt;br /&gt;&lt;br /&gt;  public HibernateEventInterceptor() {&lt;br /&gt;		&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void initialize(Configuration cfg) {&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;	&lt;br /&gt;  public void onPostInsert(PostInsertEvent event) {&lt;br /&gt;   String entityName = event.getPersister().&lt;br /&gt;                                   getEntityName();&lt;br /&gt;   System.out.println(&amp;quot;Inserted entity: &amp;quot; + entityName);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void onPostUpdate(PostUpdateEvent event) {&lt;br /&gt;   String entityName = event.getPersister().&lt;br /&gt;                                   getEntityName();&lt;br /&gt;   System.out.println(&amp;quot;Updated entity: &amp;quot; + entityName);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void onPostDelete(PostDeleteEvent event) {&lt;br /&gt;    String entityName = event.getPersister().&lt;br /&gt;                                    getEntityName();&lt;br /&gt;    System.out.println(&amp;quot;Deleted entity: &amp;quot; + entityName);&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;
The following shows extra configuration that must be added to &lt;em&gt;persistence.xml&lt;/em&gt;, in order for the interceptor class to be triggered:
&lt;pre class=&#034;xml:firstline[1]&#034; name=&#034;code&#034;&gt;&amp;lt;persistence&amp;gt;&lt;br /&gt;  &amp;lt;persistence-unit name=&amp;quot;org.example.demo&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;jta-data-source&amp;gt;java:/test&amp;lt;/jta-data-source&amp;gt;&lt;br /&gt;      &amp;lt;properties&amp;gt;&lt;br /&gt;	.&lt;br /&gt;	.&lt;br /&gt;	.&lt;br /&gt;	.&lt;br /&gt;	&amp;lt;property name=&amp;quot;hibernate.ejb.event.post-insert&amp;quot;&lt;br /&gt;	value=&amp;quot;org.example.demo.HibernateEventInterceptor&amp;quot;/&amp;gt;&lt;br /&gt;		&lt;br /&gt;	&amp;lt;property name=&amp;quot;hibernate.ejb.event.post-update&amp;quot;&lt;br /&gt;	value=&amp;quot;org.example.demo.HibernateEventInterceptor&amp;quot;/&amp;gt;&lt;br /&gt;		&lt;br /&gt;	&amp;lt;property name=&amp;quot;hibernate.ejb.event.post-delete&amp;quot;&lt;br /&gt;	value=&amp;quot;org.example.demo.HibernateEventInterceptor&amp;quot;/&amp;gt;&lt;br /&gt;			&lt;br /&gt;    &amp;lt;/properties&amp;gt;&lt;br /&gt;  &amp;lt;/persistence-unit&amp;gt;&lt;br /&gt; &amp;lt;/persistence&amp;gt;&lt;/pre&gt;&lt;div class=&#034;tags&#034;&gt;&lt;span&gt;Social Bookmarks : &lt;/span&gt;&amp;nbsp;&lt;a href=&#034;http://slashdot.org/bookmark.pl?url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Slash Dot&#034;&gt;&lt;img src=&#034;common/images/slashdot.png&#034; alt=&#034;Add this post to Slashdot&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://digg.com/submit?url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Digg this post&#034;&gt;&lt;img src=&#034;common/images/digg.png&#034; alt=&#034;Add this post to Digg&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://reddit.com/submit?url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Reddit&#034;&gt;&lt;img src=&#034;common/images/reddit.png&#034; alt=&#034;Add this post to Reddit&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://del.icio.us/post?url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Save this post to Del.icio.us&#034;&gt;&lt;img src=&#034;common/images/delicious.png&#034; alt=&#034;Add this post to Delicious&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.stumbleupon.com/submit?url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Stumble this post&#034;&gt;&lt;img src=&#034;common/images/stumbleupon.png&#034; alt=&#034;Add this post to Stumble it&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Google&#034;&gt;&lt;img src=&#034;common/images/google.png&#034; alt=&#034;Add this post to Google&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://technorati.com/faves?add=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Technorati&#034;&gt;&lt;img src=&#034;common/images/technorati.png&#034; alt=&#034;Add this post to Technorati&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.bloglines.com/sub/http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Bloglines&#034;&gt;&lt;img src=&#034;common/images/bloglines.png&#034; alt=&#034;Add this post to Bloglines&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.facebook.com/share.php?u=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Facebook&#034;&gt;&lt;img src=&#034;common/images/facebook.png&#034; alt=&#034;Add this post to Facebook&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.furl.net/storeIt.jsp?u=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;t=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Furl&#034;&gt;&lt;img src=&#034;common/images/furl.png&#034; alt=&#034;Add this post to Furl&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Windows Live&#034;&gt;&lt;img src=&#034;common/images/windowslive.png&#034; alt=&#034;Add this post to Windows Live&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;t=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Yahoo!&#034;&gt;&lt;img src=&#034;common/images/yahoo.png&#034; alt=&#034;Add this post to Yahoo!&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Related Posts&lt;/b&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2009/09/02/vmware_and_melbourne_it_launch_cloud_service.html&#034; rel=&#034;bookmark&#034; title=&#034;VMware and Melbourne IT launch cloud service&#034;&gt;VMware and Melbourne IT launch cloud service&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/09/14/hibernate_how_to_map_two_collections_of_the_same_type_in_the_same_entity.html&#034; rel=&#034;bookmark&#034; title=&#034;Hibernate - How to map two collections of the same type in the same entity&#034;&gt;Hibernate - How to map two collections of the same type in the same entity&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&#034; rel=&#034;bookmark&#034; title=&#034;Using template to deploy a JBoss queue&#034;&gt;Using template to deploy a JBoss queue&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/06/bitwise_operation_in_hibernate_3.html&#034; rel=&#034;bookmark&#034; title=&#034;Bitwise operation in Hibernate 3&#034;&gt;Bitwise operation in Hibernate 3&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&#034; rel=&#034;bookmark&#034; title=&#034;Serialize POJO to XML&#034;&gt;Serialize POJO to XML&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;</description>
	<!--
    <description>
          Its quite common when you create an application, there is a need to create an audit trail on the application level where all entity insert, update and delete events are logged.   In this post, I would like to describe a simple approach that can help you to avoid littering with unnecessary statements in your ...&lt;p&gt;&lt;a href=&#034;http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&#034;&gt;Read more...&lt;/a&gt;&lt;/p&gt;&lt;div class=&#034;tags&#034;&gt;&lt;span&gt;Social Bookmarks : &lt;/span&gt;&amp;nbsp;&lt;a href=&#034;http://slashdot.org/bookmark.pl?url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Slash Dot&#034;&gt;&lt;img src=&#034;common/images/slashdot.png&#034; alt=&#034;Add this post to Slashdot&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://digg.com/submit?url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Digg this post&#034;&gt;&lt;img src=&#034;common/images/digg.png&#034; alt=&#034;Add this post to Digg&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://reddit.com/submit?url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Reddit&#034;&gt;&lt;img src=&#034;common/images/reddit.png&#034; alt=&#034;Add this post to Reddit&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://del.icio.us/post?url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Save this post to Del.icio.us&#034;&gt;&lt;img src=&#034;common/images/delicious.png&#034; alt=&#034;Add this post to Delicious&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.stumbleupon.com/submit?url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Stumble this post&#034;&gt;&lt;img src=&#034;common/images/stumbleupon.png&#034; alt=&#034;Add this post to Stumble it&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Google&#034;&gt;&lt;img src=&#034;common/images/google.png&#034; alt=&#034;Add this post to Google&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://technorati.com/faves?add=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Technorati&#034;&gt;&lt;img src=&#034;common/images/technorati.png&#034; alt=&#034;Add this post to Technorati&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.bloglines.com/sub/http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Bloglines&#034;&gt;&lt;img src=&#034;common/images/bloglines.png&#034; alt=&#034;Add this post to Bloglines&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.facebook.com/share.php?u=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Facebook&#034;&gt;&lt;img src=&#034;common/images/facebook.png&#034; alt=&#034;Add this post to Facebook&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.furl.net/storeIt.jsp?u=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;t=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Furl&#034;&gt;&lt;img src=&#034;common/images/furl.png&#034; alt=&#034;Add this post to Furl&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;title=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Windows Live&#034;&gt;&lt;img src=&#034;common/images/windowslive.png&#034; alt=&#034;Add this post to Windows Live&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&amp;amp;t=Hibernate Event Interceptor&#034; target=&#034;_blank&#034; title=&#034;Add this post to Yahoo!&#034;&gt;&lt;img src=&#034;common/images/yahoo.png&#034; alt=&#034;Add this post to Yahoo!&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      
	-->
    <category>java</category>
    <category>hibernate</category>
    <category>xml</category>
    <comments>http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html#comments</comments>
    <guid isPermaLink="true">http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html</guid>
    <pubDate>Sun, 08 Mar 2009 05:42:00 GMT</pubDate>
  </item>
  <item>
    <title>Using template to deploy a JBoss queue</title>
    <link>http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html</link>
	 <description>
        Currently I am involved in a project, where I have to use &lt;a target=&#034;_blank&#034; href=&#034;http://velocity.apache.org/engine/devel/&#034;&gt;Velocity&lt;/a&gt; template engine to deploy queues and message-driven beans to JBoss. &lt;a target=&#034;_blank&#034; href=&#034;http://velocity.apache.org/engine/devel/&#034;&gt;Velocity&lt;/a&gt; is a template engine that can be used for many purposes, and in my case I am using it to generate XML descriptor for a JBoss queue, hence: some-queue-name-service.xml. Its a simple scripting language and the XML descriptor template looks quite similar to the resulting XML descriptor.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; Why do we use a template for deployment?&lt;/strong&gt; &lt;br /&gt;
Because some of our deployments occur at runtime, where properties for the queues and MDB&#039;s are generated on the fly and we need a templating engine to be able generate the deployments.&lt;br /&gt;
&lt;br /&gt;
So i decided to describe a process of deploying a JBoss queue. I am hoping that I will be clear enough, since i am quite new to this my self.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;The setup of my system:&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&#034;codeSample&#034;&gt;/opt/mitto/jboss/server/mitto/&lt;/pre&gt;
Root directory for my JBoss instance. (the [.])&lt;br /&gt;
&lt;br /&gt;
My Velocity templates sit under the root, inside &lt;em&gt;dynamic-templates&lt;/em&gt; directory:
&lt;pre class=&#034;codeSample&#034;&gt;./dynamic-templates/&lt;br /&gt;&lt;/pre&gt;
JBoss deployment service will look under the root of my JBoss instance for the &lt;em&gt;dynamic-templates&lt;/em&gt; directory. &lt;br /&gt;
&lt;br /&gt;
JBoss deployment service depends on Velocity library (&lt;em&gt;velocity.jar&lt;/em&gt;) that must be included under the root of:
&lt;pre class=&#034;codeSample&#034;&gt;./deploy/deployment-service.sar/&lt;br /&gt;&lt;/pre&gt;
XML descriptor of JBoss deployment service (&lt;em&gt;jboss-service.xml&lt;/em&gt;) sits under:
&lt;pre class=&#034;codeSample&#034;&gt;./deploy/deployment-service.sar/META-INF/&lt;/pre&gt;
You can see below the &lt;em&gt;jboss-service.xml&lt;/em&gt;:&lt;br /&gt;
&lt;pre class=&#034;xml:nocontrols:firstline[1]&#034; name=&#034;code&#034;&gt;&amp;lt;mbean&lt;br /&gt;   code=&amp;quot;org.jboss.services.deployment.DeploymentService&amp;quot;&lt;br /&gt;     name=&amp;quot;jboss:service=DeploymentService&amp;quot;&amp;gt;&lt;br /&gt;	&amp;lt;attribute name=&amp;quot;TemplateDir&amp;quot;&amp;gt;&lt;br /&gt;		dynamic-templates&lt;br /&gt;	&amp;lt;/attribute&amp;gt;&lt;br /&gt;	&amp;lt;attribute name=&amp;quot;DeployDir&amp;quot;&amp;gt;&lt;br /&gt;		dynamic-deploy&lt;br /&gt;	&amp;lt;/attribute&amp;gt;&lt;br /&gt;	&amp;lt;attribute name=&amp;quot;UndeployDir&amp;quot;&amp;gt;&lt;br /&gt;		dynamic-undeploy&lt;br /&gt;	&amp;lt;/attribute&amp;gt;&lt;br /&gt;&amp;lt;/mbean&amp;gt;&lt;/pre&gt;
The three directories mentioned above in &lt;em&gt;jboss-service.xml&lt;/em&gt;, sit under the root of my JBoss instance. &lt;br /&gt;
&lt;em&gt;TemplateDir&lt;/em&gt; - where my deployment generation templates can be found.&lt;br /&gt;
&lt;em&gt;UndeployDir&lt;/em&gt; - the generated modules go there.&lt;br /&gt;
&lt;em&gt;DeployDir - &lt;/em&gt;the directory to use when I ask to deploy a generated module.&lt;br /&gt;
&lt;br /&gt;
Now, inside the:
&lt;pre class=&#034;codeSample&#034;&gt;./dynamic-templates/&lt;/pre&gt;
I have following structure:&lt;br /&gt;
&lt;pre class=&#034;codeSample&#034;&gt;jbossmessaging-queue/&lt;br /&gt;		    /vm/&lt;br /&gt;		       jbossmessaging-queue.xml.vm&lt;br /&gt;		    template-config.xml&lt;/pre&gt;
&lt;em&gt;jbossmessaging-queue&lt;/em&gt; - directory that contains Velocity XML descriptor template for my queue. Also it represents the name of the deployment template that should be used, when createModule() method of deployment service will be called.&lt;br /&gt;
&lt;br /&gt;
t&lt;em&gt;emplate-config.xml &lt;/em&gt;specifies the properties for Velocity template XML descriptor for our queue. Deployment service will be able to access those properties when rendering the Velocity template and to retrieve the values of &lt;em&gt;&lt;strong&gt;JNDIName&lt;/strong&gt;&lt;/em&gt; and &lt;em&gt;&lt;strong&gt;QueueName &lt;/strong&gt;&lt;/em&gt;properties.&lt;br /&gt;
&lt;br /&gt;
Below you can see the descriptor for the &lt;em&gt;template-config.xml:&lt;/em&gt;
&lt;pre class=&#034;xml:nocontrols:firstline[1]&#034; name=&#034;code&#034;&gt;&amp;lt;template-config&lt;br /&gt;     template=&amp;quot;vm/jbossmessaging-queue.xml.vm&amp;quot;&lt;br /&gt;		       extension=&amp;quot;-service.xml&amp;quot;&amp;gt;&lt;br /&gt;   &amp;lt;property-list&amp;gt;&lt;br /&gt;  	&amp;lt;property name=&amp;quot;QueueName&amp;quot;&lt;br /&gt;	    type=&amp;quot;java.lang.String&amp;quot; optional=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;   &amp;lt;/property-list&amp;gt;&lt;br /&gt;&amp;lt;/template-config&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;em&gt;jbossmessaging-queue.xml.vm&lt;/em&gt; mentioned above, is the name of the actual Velocity template XML descriptor for the queue, which you can see below:&lt;br /&gt;
&lt;pre class=&#034;xml:nocontrols:firstline[1]&#034; name=&#034;code&#034;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;  ==============================================&lt;br /&gt;  QueueName          - $QueueName&lt;br /&gt;  ==============================================&lt;br /&gt;--&amp;gt;&lt;br /&gt;&amp;lt;server&amp;gt;&lt;br /&gt;&amp;lt;mbean&lt;br /&gt;   code=&amp;quot;org.jboss.jms.server.destination.QueueService&amp;quot;&lt;br /&gt;   name=&amp;quot;jboss.messaging.destination:service=Queue,&lt;br /&gt;   name=$QueueName&amp;quot; xmbean-dd=&amp;quot;xmdesc/Queue-xmbean.xml&amp;quot;&amp;gt;&lt;br /&gt;    &lt;br /&gt;   &amp;lt;depends optional-attribute-name=&amp;quot;ServerPeer&amp;quot;&amp;gt;&lt;br /&gt;	jboss.messaging:service=ServerPeer&amp;lt;/depends&amp;gt;&lt;br /&gt;   &amp;lt;attribute name=&amp;quot;Clustered&amp;quot;&amp;gt;true&amp;lt;/attribute&amp;gt;&lt;br /&gt;   &amp;lt;depends&amp;gt;jboss.messaging:service=PostOffice&amp;lt;/depends&amp;gt;     &lt;br /&gt; &lt;br /&gt;&amp;lt;/mbean&amp;gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;strong&gt; Implementation:&lt;/strong&gt;&lt;br /&gt;
I created a service bean that will acquire proxies for the JBoss &lt;em&gt;MainDeployerMBean&lt;/em&gt; and JBoss &lt;em&gt;DeploymentServiceMBean&lt;/em&gt;. I will use JBoss deployment service to construct a queue module in the file system, and I will use JBoss main deployer to deploy the queue, by pointing it to the module in the file system. My implementation of my service bean as follows:
&lt;pre class=&#034;java:nocontrols:firstline[1]&#034; name=&#034;code&#034;&gt;public class DeploymentService &lt;br /&gt;	extends ServiceMBeanSupport &lt;br /&gt;		implements DeploymentServiceMBean {&lt;br /&gt;&lt;br /&gt;private static final String &lt;br /&gt;	JBOSS_MAIN_DEPLOYER_SERVICE = &amp;quot;jboss.system:service=MainDeployer&amp;quot;;&lt;br /&gt;private static final String &lt;br /&gt;	JBOSS_DEPLOYMENT_SERVICE = &amp;quot;jboss:service=DeploymentService&amp;quot;;&lt;br /&gt;&lt;br /&gt;private MainDeployerMBean mainDeployerService = null;&lt;br /&gt;private DeploymentServiceMBean jbossDeploymentService = null;&lt;br /&gt;&lt;br /&gt;public void startService() throws Exception {&lt;br /&gt;&lt;br /&gt;	try {&lt;br /&gt;                //get proxy for main deployer service bean&lt;br /&gt;		mainDeployerService = getJBossMainDeployer();&lt;br /&gt;	}&lt;br /&gt;	catch (MBeanProxyCreationException e)  {&lt;br /&gt;		e.printStackTrace();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	try {&lt;br /&gt;		&lt;br /&gt;		//get proxy for deployemnt service bean		&lt;br /&gt;		jbossDeploymentService = getJBossDeploymentService();&lt;br /&gt;	}&lt;br /&gt;	catch (MBeanProxyCreationException e)  {&lt;br /&gt;		e.printStackTrace();&lt;br /&gt;	}&lt;br /&gt;		&lt;br /&gt;	deploy();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void stopService() {&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;private void deploy()  {&lt;br /&gt;&lt;br /&gt;//hashmap contains properties for the queue template&lt;br /&gt;HashMap&amp;lt;String, Object&amp;gt; properties = new HashMap&amp;lt;String, Object&amp;gt;();&lt;br /&gt;&lt;br /&gt;//short file name of my queue&lt;br /&gt;String destination = &amp;quot;myqueue-service.xml&amp;quot;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//directory name where the queue Velocity template is kept, &lt;br /&gt;//inside &#039;dynamic-templates&#039; dir &lt;br /&gt;String template = &amp;quot;jbossmessaging-queue&amp;quot;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//property that holds a queue name for the Velocity template&lt;br /&gt;properties.put(&amp;quot;QueueName&amp;quot;, &amp;quot;myqueue&amp;quot;);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;String resultingFileName = &amp;quot;&amp;quot;;&lt;br /&gt;&lt;br /&gt;//create a queue module in a filesystem, at this stage queue &lt;br /&gt;//is not deployed yet.&lt;br /&gt;try {&lt;br /&gt;	resultingFileName = jbossDeploymentService&lt;br /&gt;			.createModule(destination, template, properties);&lt;br /&gt;} catch (Exception e) {&lt;br /&gt;		e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;String path = constructPath(destination);&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;	//check whether deployment exists for the given &lt;br /&gt;	//module queue in the file system&lt;br /&gt;	if (!mainDeployerService.isDeployed(path)) {&lt;br /&gt;&lt;br /&gt;		mainDeployerService.deploy(path);&lt;br /&gt;	}&lt;br /&gt;} catch (MalformedURLException e) {&lt;br /&gt;	e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;	&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//construct an absolute path to the queue module in a filesystem &lt;br /&gt;//for a given name.&lt;br /&gt;private String constructPath(String shortName) {&lt;br /&gt;String path = ServerConfigLocator.locate().getServerHomeDir()&lt;br /&gt;			.getAbsolutePath()&lt;br /&gt;			+ &amp;quot;/&amp;quot;&lt;br /&gt;			+ jbossDeploymentService.getUndeployDir()&lt;br /&gt;			+ &amp;quot;/&amp;quot;&lt;br /&gt;			+ shortName;&lt;br /&gt;	return path;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;//Constructs and returns a proxy for MainDeployerMBean&lt;br /&gt;private MainDeployerMBean getJBossMainDeployer() &lt;br /&gt;					throws MBeanProxyCreationException&lt;br /&gt;{&lt;br /&gt;	MBeanServer server = getServer();&lt;br /&gt;&lt;br /&gt;	ObjectName serviceName = new ObjectName(JBOSS_MAIN_DEPLOYER_SERVICE);&lt;br /&gt;&lt;br /&gt;//&#039;false&#039; -&amp;gt; dont make the returned proxy implement NotificationEmitter interface&lt;br /&gt;	MainDeployerMBean mainDeployer =&lt;br /&gt;	(MainDeployerMBean) MBeanServerInvocationHandler&lt;br /&gt;                                .newProxyInstance(server, serviceName,&lt;br /&gt;                                        MainDeployerMBean.class, false);&lt;br /&gt;&lt;br /&gt;  return mainDeployer;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Constructs and returns a proxy for DeploymentServiceMBean&lt;br /&gt;private DeploymentServiceMBean getJBossDeploymentService() &lt;br /&gt;					throws MBeanProxyCreationException&lt;br /&gt;{&lt;br /&gt;	MBeanServer server = getServer();&lt;br /&gt;&lt;br /&gt;	ObjectName serviceName = new ObjectName(JBOSS_DEPLOYMENT_SERVICE);&lt;br /&gt;&lt;br /&gt;//&#039;false&#039; -&amp;gt; dont make the returned proxy implement NotificationEmitter interface&lt;br /&gt;	DeploymentServiceMBean deploymentService =&lt;br /&gt;	(DeploymentServiceMBean) MBeanServerInvocationHandler&lt;br /&gt;                                .newProxyInstance(server, serviceName,&lt;br /&gt;                                        DeploymentServiceMBean.class, false);&lt;br /&gt;&lt;br /&gt;  return deploymentService;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
Two main points that i want to explain here are: &lt;br /&gt;
&lt;em&gt;createModule() &lt;/em&gt;method of JBoss deployment service and &lt;br /&gt;
&lt;em&gt;deploy() &lt;/em&gt;of JBoss main deployer.  &lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;createModule() &lt;/em&gt;- accepts three arguments: resulting file name (in this case is &lt;em&gt;myqueue-service.xml&lt;/em&gt;), the directory name where the Velocity template is kept and a HashMap object which contains properties for the template. &lt;br /&gt;
&lt;br /&gt;
JBoss deployment service will use the Velocity template to generate &lt;em&gt;myqueue-service.xml&lt;/em&gt; module under &lt;em&gt;dynamic-undeploy&lt;/em&gt; directory. &lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;deploy()&lt;/em&gt; - accepts a path to the module in the system and deploys the module. In this case the path to the module is:
&lt;pre class=&#034;codeSample&#034;&gt;/opt/mitto/jboss/server/mitto/&lt;br /&gt;                dynamic-undeploy/myqueue-service.xml&lt;/pre&gt;
Thats about it :) You can use Velocity templates to deploy queues, message-driven and other types of beans. Basically anything that has XML descriptors.&lt;br /&gt;
I really hope I was clear enough in this example, since it is quite consized.&lt;div class=&#034;tags&#034;&gt;&lt;span&gt;Social Bookmarks : &lt;/span&gt;&amp;nbsp;&lt;a href=&#034;http://slashdot.org/bookmark.pl?url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Slash Dot&#034;&gt;&lt;img src=&#034;common/images/slashdot.png&#034; alt=&#034;Add this post to Slashdot&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://digg.com/submit?url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Digg this post&#034;&gt;&lt;img src=&#034;common/images/digg.png&#034; alt=&#034;Add this post to Digg&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://reddit.com/submit?url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Reddit&#034;&gt;&lt;img src=&#034;common/images/reddit.png&#034; alt=&#034;Add this post to Reddit&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://del.icio.us/post?url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Save this post to Del.icio.us&#034;&gt;&lt;img src=&#034;common/images/delicious.png&#034; alt=&#034;Add this post to Delicious&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.stumbleupon.com/submit?url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Stumble this post&#034;&gt;&lt;img src=&#034;common/images/stumbleupon.png&#034; alt=&#034;Add this post to Stumble it&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Google&#034;&gt;&lt;img src=&#034;common/images/google.png&#034; alt=&#034;Add this post to Google&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://technorati.com/faves?add=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Technorati&#034;&gt;&lt;img src=&#034;common/images/technorati.png&#034; alt=&#034;Add this post to Technorati&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.bloglines.com/sub/http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Bloglines&#034;&gt;&lt;img src=&#034;common/images/bloglines.png&#034; alt=&#034;Add this post to Bloglines&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.facebook.com/share.php?u=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Facebook&#034;&gt;&lt;img src=&#034;common/images/facebook.png&#034; alt=&#034;Add this post to Facebook&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.furl.net/storeIt.jsp?u=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;t=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Furl&#034;&gt;&lt;img src=&#034;common/images/furl.png&#034; alt=&#034;Add this post to Furl&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Windows Live&#034;&gt;&lt;img src=&#034;common/images/windowslive.png&#034; alt=&#034;Add this post to Windows Live&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;t=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Yahoo!&#034;&gt;&lt;img src=&#034;common/images/yahoo.png&#034; alt=&#034;Add this post to Yahoo!&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Related Posts&lt;/b&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2009/08/27/jboss_security_jmx_console.html&#034; rel=&#034;bookmark&#034; title=&#034;JBoss Security - JMX Console&#034;&gt;JBoss Security - JMX Console&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&#034; rel=&#034;bookmark&#034; title=&#034;Hibernate Event Interceptor&#034;&gt;Hibernate Event Interceptor&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/10/24/drools_tutorial_on_writing_dsl_template.html&#034; rel=&#034;bookmark&#034; title=&#034;Drools - tutorial on writing DSL template&#034;&gt;Drools - tutorial on writing DSL template&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/06/09/drools_stop_executing_current_agenda_group_and_all_rules.html&#034; rel=&#034;bookmark&#034; title=&#034;Drools - Stop executing current agenda group and all rules&#034;&gt;Drools - Stop executing current agenda group and all rules&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/03/deployment_of_mbean_separately_to_its_interface.html&#034; rel=&#034;bookmark&#034; title=&#034;Deployment of mbean separately to its interface&#034;&gt;Deployment of mbean separately to its interface&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/06/bitwise_operation_in_hibernate_3.html&#034; rel=&#034;bookmark&#034; title=&#034;Bitwise operation in Hibernate 3&#034;&gt;Bitwise operation in Hibernate 3&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/08/jboss_clustering_hasingleton_service.html&#034; rel=&#034;bookmark&#034; title=&#034;JBoss Clustering - HASingleton service&#034;&gt;JBoss Clustering - HASingleton service&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/11/drools_working_with_stateless_session.html&#034; rel=&#034;bookmark&#034; title=&#034;Drools - working with Stateless session&#034;&gt;Drools - working with Stateless session&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;</description>
	<!--
    <description>
          Currently I am involved in a project, where I have to use Velocity template engine to deploy queues and message-driven beans to JBoss. Velocity is a template engine that can be used for many purposes, and in my case I am using it to generate XML descriptor for a JBoss queue, hence: some-queue-name-serv...&lt;p&gt;&lt;a href=&#034;http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&#034;&gt;Read more...&lt;/a&gt;&lt;/p&gt;&lt;div class=&#034;tags&#034;&gt;&lt;span&gt;Social Bookmarks : &lt;/span&gt;&amp;nbsp;&lt;a href=&#034;http://slashdot.org/bookmark.pl?url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Slash Dot&#034;&gt;&lt;img src=&#034;common/images/slashdot.png&#034; alt=&#034;Add this post to Slashdot&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://digg.com/submit?url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Digg this post&#034;&gt;&lt;img src=&#034;common/images/digg.png&#034; alt=&#034;Add this post to Digg&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://reddit.com/submit?url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Reddit&#034;&gt;&lt;img src=&#034;common/images/reddit.png&#034; alt=&#034;Add this post to Reddit&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://del.icio.us/post?url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Save this post to Del.icio.us&#034;&gt;&lt;img src=&#034;common/images/delicious.png&#034; alt=&#034;Add this post to Delicious&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.stumbleupon.com/submit?url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Stumble this post&#034;&gt;&lt;img src=&#034;common/images/stumbleupon.png&#034; alt=&#034;Add this post to Stumble it&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Google&#034;&gt;&lt;img src=&#034;common/images/google.png&#034; alt=&#034;Add this post to Google&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://technorati.com/faves?add=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Technorati&#034;&gt;&lt;img src=&#034;common/images/technorati.png&#034; alt=&#034;Add this post to Technorati&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.bloglines.com/sub/http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Bloglines&#034;&gt;&lt;img src=&#034;common/images/bloglines.png&#034; alt=&#034;Add this post to Bloglines&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.facebook.com/share.php?u=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Facebook&#034;&gt;&lt;img src=&#034;common/images/facebook.png&#034; alt=&#034;Add this post to Facebook&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.furl.net/storeIt.jsp?u=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;t=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Furl&#034;&gt;&lt;img src=&#034;common/images/furl.png&#034; alt=&#034;Add this post to Furl&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;title=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Windows Live&#034;&gt;&lt;img src=&#034;common/images/windowslive.png&#034; alt=&#034;Add this post to Windows Live&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html&amp;amp;t=Using template to deploy a JBoss queue&#034; target=&#034;_blank&#034; title=&#034;Add this post to Yahoo!&#034;&gt;&lt;img src=&#034;common/images/yahoo.png&#034; alt=&#034;Add this post to Yahoo!&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      
	-->
    <category>jboss</category>
    <category>velocity</category>
    <category>queues</category>
    <category>xml</category>
    <category>jms</category>
    <comments>http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html#comments</comments>
    <guid isPermaLink="true">http://javabeans.asia/2008/05/01/using_template_to_deploy_a_jboss_queue.html</guid>
    <pubDate>Thu, 01 May 2008 00:48:00 GMT</pubDate>
  </item>
  <item>
    <title>Serialize POJO to XML</title>
    <link>http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html</link>
	 <description>
        Today my colleague, Chandana was trying to convert&amp;nbsp; POJO to an XML file. In our company we are working with dom4j library, but unfortunately it does not provide the capabilities&amp;nbsp; to convert a Java object on the fly to an XML. &lt;br /&gt;
&lt;br /&gt;
Off course Chandana could always manually create new Document, root element, sub elements and attributes and that would work fine. But this still does not solves Chandana&#039;s  problem where she needed to generate XML on the fly.&lt;br /&gt;
&lt;br /&gt;
After some time doing a research on the Internet she came across this very nice library call &lt;a href=&#034;http://xstream.codehaus.org/&#034; target=&#034;_blank&#034;&gt;XStream&lt;/a&gt;. Its a very nice library which allows to serialize objects to XML and back again. It doesn&#039;t require mapping nor modifications to the object itself. They also have a short &lt;a target=&#034;_blank&#034; href=&#034;http://xstream.codehaus.org/tutorial.html&#034;&gt;tutorial&lt;/a&gt; which converts a POJO to an XML in few simple steps. Very nice and useful&lt;div class=&#034;tags&#034;&gt;&lt;span&gt;Social Bookmarks : &lt;/span&gt;&amp;nbsp;&lt;a href=&#034;http://slashdot.org/bookmark.pl?url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Slash Dot&#034;&gt;&lt;img src=&#034;common/images/slashdot.png&#034; alt=&#034;Add this post to Slashdot&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://digg.com/submit?url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Digg this post&#034;&gt;&lt;img src=&#034;common/images/digg.png&#034; alt=&#034;Add this post to Digg&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://reddit.com/submit?url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Reddit&#034;&gt;&lt;img src=&#034;common/images/reddit.png&#034; alt=&#034;Add this post to Reddit&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://del.icio.us/post?url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Save this post to Del.icio.us&#034;&gt;&lt;img src=&#034;common/images/delicious.png&#034; alt=&#034;Add this post to Delicious&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.stumbleupon.com/submit?url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Stumble this post&#034;&gt;&lt;img src=&#034;common/images/stumbleupon.png&#034; alt=&#034;Add this post to Stumble it&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Google&#034;&gt;&lt;img src=&#034;common/images/google.png&#034; alt=&#034;Add this post to Google&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://technorati.com/faves?add=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Technorati&#034;&gt;&lt;img src=&#034;common/images/technorati.png&#034; alt=&#034;Add this post to Technorati&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.bloglines.com/sub/http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Bloglines&#034;&gt;&lt;img src=&#034;common/images/bloglines.png&#034; alt=&#034;Add this post to Bloglines&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.facebook.com/share.php?u=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Facebook&#034;&gt;&lt;img src=&#034;common/images/facebook.png&#034; alt=&#034;Add this post to Facebook&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.furl.net/storeIt.jsp?u=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;t=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Furl&#034;&gt;&lt;img src=&#034;common/images/furl.png&#034; alt=&#034;Add this post to Furl&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Windows Live&#034;&gt;&lt;img src=&#034;common/images/windowslive.png&#034; alt=&#034;Add this post to Windows Live&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;t=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Yahoo!&#034;&gt;&lt;img src=&#034;common/images/yahoo.png&#034; alt=&#034;Add this post to Yahoo!&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Related Posts&lt;/b&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2009/04/05/brainteaser_broken_case_of_inheritance.html&#034; rel=&#034;bookmark&#034; title=&#034;Brainteaser: Broken case of inheritance&#034;&gt;Brainteaser: Broken case of inheritance&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2009/04/18/brainteaser_overridable_methods.html&#034; rel=&#034;bookmark&#034; title=&#034;Brainteaser: Overridable methods &#034;&gt;Brainteaser: Overridable methods &lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2009/03/08/hibernate_event_interceptor.html&#034; rel=&#034;bookmark&#034; title=&#034;Hibernate Event Interceptor&#034;&gt;Hibernate Event Interceptor&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/10/01/brainteaser_arraylist_vs_treeset.html&#034; rel=&#034;bookmark&#034; title=&#034;Brainteaser: ArrayList VS TreeSet&#034;&gt;Brainteaser: ArrayList VS TreeSet&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/10/12/how_to_set_securitymanager_and_java_security_policy_programmatically.html&#034; rel=&#034;bookmark&#034; title=&#034;How to set SecurityManager and Java security policy programmatically&#034;&gt;How to set SecurityManager and Java security policy programmatically&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/10/13/hack_any_java_class_using_reflection_attack.html&#034; rel=&#034;bookmark&#034; title=&#034;Hack any Java class using reflection attack&#034;&gt;Hack any Java class using reflection attack&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/10/19/brainteaser_broken_comparator.html&#034; rel=&#034;bookmark&#034; title=&#034;Brainteaser: Broken comparator&#034;&gt;Brainteaser: Broken comparator&lt;/a&gt;&lt;br /&gt;&lt;a href=&#034;http://javabeans.asia/2008/09/06/singleton_pattern_and_problem_with_double_checked_locking.html&#034; rel=&#034;bookmark&#034; title=&#034;Singleton pattern and problem with double checked locking &#034;&gt;Singleton pattern and problem with double checked locking &lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;</description>
	<!--
    <description>
          Today my colleague, Chandana was trying to convert POJO to an XML file. In our company we are working with dom4j library, but unfortunately it does not provide the capabilities to convert a Java object on the fly to an XML.   Off course Chandana could always manually create new Document, root element, sub elements ...&lt;p&gt;&lt;a href=&#034;http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&#034;&gt;Read more...&lt;/a&gt;&lt;/p&gt;&lt;div class=&#034;tags&#034;&gt;&lt;span&gt;Social Bookmarks : &lt;/span&gt;&amp;nbsp;&lt;a href=&#034;http://slashdot.org/bookmark.pl?url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Slash Dot&#034;&gt;&lt;img src=&#034;common/images/slashdot.png&#034; alt=&#034;Add this post to Slashdot&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://digg.com/submit?url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Digg this post&#034;&gt;&lt;img src=&#034;common/images/digg.png&#034; alt=&#034;Add this post to Digg&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://reddit.com/submit?url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Reddit&#034;&gt;&lt;img src=&#034;common/images/reddit.png&#034; alt=&#034;Add this post to Reddit&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://del.icio.us/post?url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Save this post to Del.icio.us&#034;&gt;&lt;img src=&#034;common/images/delicious.png&#034; alt=&#034;Add this post to Delicious&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.stumbleupon.com/submit?url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Stumble this post&#034;&gt;&lt;img src=&#034;common/images/stumbleupon.png&#034; alt=&#034;Add this post to Stumble it&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Google&#034;&gt;&lt;img src=&#034;common/images/google.png&#034; alt=&#034;Add this post to Google&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://technorati.com/faves?add=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Technorati&#034;&gt;&lt;img src=&#034;common/images/technorati.png&#034; alt=&#034;Add this post to Technorati&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.bloglines.com/sub/http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Bloglines&#034;&gt;&lt;img src=&#034;common/images/bloglines.png&#034; alt=&#034;Add this post to Bloglines&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.facebook.com/share.php?u=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&#034; target=&#034;_blank&#034; title=&#034;Add this post to Facebook&#034;&gt;&lt;img src=&#034;common/images/facebook.png&#034; alt=&#034;Add this post to Facebook&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://www.furl.net/storeIt.jsp?u=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;t=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Furl&#034;&gt;&lt;img src=&#034;common/images/furl.png&#034; alt=&#034;Add this post to Furl&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;title=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Windows Live&#034;&gt;&lt;img src=&#034;common/images/windowslive.png&#034; alt=&#034;Add this post to Windows Live&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#034;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html&amp;amp;t=Serialize POJO to XML&#034; target=&#034;_blank&#034; title=&#034;Add this post to Yahoo!&#034;&gt;&lt;img src=&#034;common/images/yahoo.png&#034; alt=&#034;Add this post to Yahoo!&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      
	-->
    <category>java</category>
    <category>xml</category>
    <comments>http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html#comments</comments>
    <guid isPermaLink="true">http://javabeans.asia/2008/04/30/serialize_pojo_to_xml.html</guid>
    <pubDate>Wed, 30 Apr 2008 00:18:00 GMT</pubDate>
  </item>
  </channel>
</rss>
