<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Praveen&#039;s Blog</title>
	<atom:link href="http://praveenmyls.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://praveenmyls.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Thu, 22 Sep 2011 12:51:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='praveenmyls.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Praveen&#039;s Blog</title>
		<link>http://praveenmyls.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://praveenmyls.wordpress.com/osd.xml" title="Praveen&#039;s Blog" />
	<atom:link rel='hub' href='http://praveenmyls.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Multi line search and replace using sed</title>
		<link>http://praveenmyls.wordpress.com/2011/09/22/multi-line-search-and-replace-using-sed/</link>
		<comments>http://praveenmyls.wordpress.com/2011/09/22/multi-line-search-and-replace-using-sed/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 12:51:33 +0000</pubDate>
		<dc:creator>praveenmyls</dc:creator>
				<category><![CDATA[Tech stuff]]></category>

		<guid isPermaLink="false">http://praveenmyls.wordpress.com/?p=226</guid>
		<description><![CDATA[/abcd/{ N s/9.4.0/10.5.0-SNAPSHOT/ }<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=226&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><code><br />
/abcd/{<br />
N<br />
s/9.4.0/10.5.0-SNAPSHOT/<br />
}<br />
</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/praveenmyls.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/praveenmyls.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/praveenmyls.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/praveenmyls.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/praveenmyls.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/praveenmyls.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/praveenmyls.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/praveenmyls.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/praveenmyls.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/praveenmyls.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/praveenmyls.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/praveenmyls.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/praveenmyls.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/praveenmyls.wordpress.com/226/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=226&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://praveenmyls.wordpress.com/2011/09/22/multi-line-search-and-replace-using-sed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/89c59c9a8fece693eac5b6b492ebe655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">praveenmyls</media:title>
		</media:content>
	</item>
		<item>
		<title>Dynamically Typed, Statically Typed, Strongly Typed, Weakly Typed</title>
		<link>http://praveenmyls.wordpress.com/2011/08/19/dynamically-typed-statically-typed-strongly-typed-weakly-typed/</link>
		<comments>http://praveenmyls.wordpress.com/2011/08/19/dynamically-typed-statically-typed-strongly-typed-weakly-typed/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 07:30:20 +0000</pubDate>
		<dc:creator>praveenmyls</dc:creator>
				<category><![CDATA[Tech stuff]]></category>
		<category><![CDATA[Dynamically Typed]]></category>
		<category><![CDATA[Statically Typed]]></category>
		<category><![CDATA[Strongly Typed]]></category>
		<category><![CDATA[Weakly Typed]]></category>

		<guid isPermaLink="false">http://praveenmyls.wordpress.com/?p=221</guid>
		<description><![CDATA[A Programming language can be Dynamically Typed, Statically typed, Strongly Typed and Weakly Typed. Whats the difference? Dynamically Typed: There is no type check at compile time. If you pass wrong parameter types to a method, no compilation errors occur. Runtime failures happen. Examples are Ruby, Python. Statically Typed: There is type check at compile [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=221&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A Programming language can be Dynamically Typed, Statically typed, Strongly Typed and Weakly Typed. Whats the difference?<br />
<strong>Dynamically Typed:</strong><br />
 There is no type check at compile time. If you pass wrong parameter types to a method, no compilation errors occur. Runtime failures happen. Examples are Ruby, Python.<br />
<strong>Statically Typed:</strong><br />
 There is type check at compile time. If you pass wrong parameter types to a method, compilation errors occur. Example : Java<br />
<strong>Weakly Typed: </strong><br />
If type conversion happens, when you send different parameter to that expected (If possible, ofcourse).<br />
<strong>Strongly Typed:</strong> NO type conversion happens, when you send different parameter to that expected (If possible, ofcourse).  </p>
<p>Ruby is Strongly typed and dynamically typed.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/praveenmyls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/praveenmyls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/praveenmyls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/praveenmyls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/praveenmyls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/praveenmyls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/praveenmyls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/praveenmyls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/praveenmyls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/praveenmyls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/praveenmyls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/praveenmyls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/praveenmyls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/praveenmyls.wordpress.com/221/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=221&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://praveenmyls.wordpress.com/2011/08/19/dynamically-typed-statically-typed-strongly-typed-weakly-typed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/89c59c9a8fece693eac5b6b492ebe655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">praveenmyls</media:title>
		</media:content>
	</item>
		<item>
		<title>Birthday Paradox</title>
		<link>http://praveenmyls.wordpress.com/2011/07/19/birthday-paradox/</link>
		<comments>http://praveenmyls.wordpress.com/2011/07/19/birthday-paradox/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 18:18:39 +0000</pubDate>
		<dc:creator>praveenmyls</dc:creator>
				<category><![CDATA[Puzzles]]></category>
		<category><![CDATA[birthday paradox]]></category>
		<category><![CDATA[puzzles]]></category>

		<guid isPermaLink="false">http://praveenmyls.wordpress.com/?p=218</guid>
		<description><![CDATA[Whats the birthday paradox? How many people should be there in a room so that there is 50% chance that two people share the same birthday? Solution: Lets assume its not a leap year. Let P be the probability where none of them share a birthday. Then (1 &#8211; P) is the probability where atleast [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=218&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Whats the birthday paradox?</strong><br />
How many people should be there in a room so that there is 50% chance that two people share the same birthday?</p>
<p><strong>Solution:</strong><br />
Lets assume its not a leap year.<br />
Let P be the probability where none of them share a birthday. Then (1 &#8211; P) is the probability where atleast 2 of them share a birthday.</p>
<p>For n people, if they do not share a birthday, the first one can have 365 options, the second one 364..etc etc<br />
hence, P = ( 365 * 364 * 363 * &#8230;.. * (365 &#8211; n) ) / 365^n.</p>
<p>Here, I need some kind of a program to figure out the n. The answer came out to be 23. P came to be 0.49. 1-P = 0.50. Thats 50% chance.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/praveenmyls.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/praveenmyls.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/praveenmyls.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/praveenmyls.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/praveenmyls.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/praveenmyls.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/praveenmyls.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/praveenmyls.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/praveenmyls.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/praveenmyls.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/praveenmyls.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/praveenmyls.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/praveenmyls.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/praveenmyls.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=218&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://praveenmyls.wordpress.com/2011/07/19/birthday-paradox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/89c59c9a8fece693eac5b6b492ebe655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">praveenmyls</media:title>
		</media:content>
	</item>
		<item>
		<title>java getResource()</title>
		<link>http://praveenmyls.wordpress.com/2010/09/22/java-getresource/</link>
		<comments>http://praveenmyls.wordpress.com/2010/09/22/java-getresource/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 19:23:32 +0000</pubDate>
		<dc:creator>praveenmyls</dc:creator>
				<category><![CDATA[Tech stuff]]></category>
		<category><![CDATA[getResource()]]></category>
		<category><![CDATA[getResources()]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[this.getClass()]]></category>
		<category><![CDATA[this.getClassloader()]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://praveenmyls.wordpress.com/?p=206</guid>
		<description><![CDATA[TestFindResource.class.getClass().getResource(&#8220;config/x.prop&#8221;); java.lang.NullPointerException at TestFindResource.main(TestFindResource.java:11) TestFindResource.class.getClass().getResource(/config/x.prop) TestFindResource.class.getClass().getResourceAsStream(config/x.prop) java.lang.NullPointerException at java.util.Properties$LineReader.readLine(Properties.java:418) at java.util.Properties.load0(Properties.java:337) at java.util.Properties.load(Properties.java:325) at TestFindResource.main(TestFindResource.java:26) TestFindResource.class.getClass().getResourceAsStream(/config/x.prop) TestFindResource.class.getClassLoader().getResource(config/x.prop) TestFindResource.class.getClassLoader().getResource(/config/x.prop) java.lang.NullPointerException at TestFindResource.main(TestFindResource.java:49) java.lang.NullPointerException at java.util.Properties$LineReader.readLine(Properties.java:418) at java.util.Properties.load0(Properties.java:337) at java.util.Properties.load(Properties.java:325) at TestFindResource.main(TestFindResource.java:63) TestFindResource.class.getClassLoader().getResourceAsStream(config/x.prop) TestFindResource.class.getClassLoader().getResourceAsStream(/config/x.prop) file:/JBossClassloading/CommonLibrary/target/test-classes/config/x.prop Nothing prints.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=206&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<pre class="brush: java;">
try {
	    System.out.println(&quot;TestFindResource.class.getClass().getResource(\&quot;config/x.prop\&quot;);&quot;);
	    URL url = TestFindResource.class.getClass().getResource(&quot;config/x.prop&quot;);
	    p.load(url.openStream());
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
</pre>
<blockquote><p>TestFindResource.class.getClass().getResource(&#8220;config/x.prop&#8221;);<br />
java.lang.NullPointerException<br />
	at TestFindResource.main(TestFindResource.java:11)</p></blockquote>
<pre class="brush: java;">
	try {
	    System.out.println(&quot;TestFindResource.class.getClass().getResource(/config/x.prop)&quot;);
	    URL url =  TestFindResource.class.getClass().getResource(&quot;/config/x.prop&quot;);
	    p.load(url.openStream());
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
</pre>
<blockquote><p>TestFindResource.class.getClass().getResource(/config/x.prop)
</p></blockquote>
<pre class="brush: java;">
	try {
	    System.out.println(&quot;TestFindResource.class.getClass().getResourceAsStream(config/x.prop)&quot;);
	    p.load( TestFindResource.class.getClass().getResourceAsStream(&quot;config/x.prop&quot;));
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
</pre>
<blockquote><p>TestFindResource.class.getClass().getResourceAsStream(config/x.prop)<br />
java.lang.NullPointerException<br />
	at java.util.Properties$LineReader.readLine(Properties.java:418)<br />
	at java.util.Properties.load0(Properties.java:337)<br />
	at java.util.Properties.load(Properties.java:325)<br />
	at TestFindResource.main(TestFindResource.java:26)
</p></blockquote>
<pre class="brush: java;">
	try {
	    System.out.println(&quot;TestFindResource.class.getClass().getResourceAsStream(/config/x.prop)&quot;);
	    p.load( TestFindResource.class.getClass().getResourceAsStream(&quot;/config/x.prop&quot;));
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
</pre>
<blockquote><p>TestFindResource.class.getClass().getResourceAsStream(/config/x.prop)
</p></blockquote>
<pre class="brush: java;">
	try {
	    System.out.println(&quot;TestFindResource.class.getClassLoader().getResource(config/x.prop)&quot;);
	    URL url = TestFindResource.class.getClassLoader().getResource(&quot;config/x.prop&quot;);
	    p.load(url.openStream());
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
</pre>
<blockquote><p>TestFindResource.class.getClassLoader().getResource(config/x.prop)
</p></blockquote>
<pre class="brush: java;">
	try {
	    System.out.println(&quot;TestFindResource.class.getClassLoader().getResource(/config/x.prop)&quot;);
	    URL url = TestFindResource.class.getClassLoader().getResource(&quot;/config/x.prop&quot;);
	    p.load(url.openStream());
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
</pre>
<blockquote><p>TestFindResource.class.getClassLoader().getResource(/config/x.prop)<br />
java.lang.NullPointerException<br />
	at TestFindResource.main(TestFindResource.java:49)<br />
java.lang.NullPointerException<br />
	at java.util.Properties$LineReader.readLine(Properties.java:418)<br />
	at java.util.Properties.load0(Properties.java:337)<br />
	at java.util.Properties.load(Properties.java:325)<br />
	at TestFindResource.main(TestFindResource.java:63)</p></blockquote>
<pre class="brush: java;">
	try {
	    System.out.println(&quot;TestFindResource.class.getClassLoader().getResourceAsStream(config/x.prop)&quot;);
	    p.load(TestFindResource.class.getClassLoader().getResourceAsStream(&quot;config/x.prop&quot;));
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
</pre>
<blockquote><p>TestFindResource.class.getClassLoader().getResourceAsStream(config/x.prop)
</p></blockquote>
<pre class="brush: java;">
	try {
	    System.out.println(&quot;TestFindResource.class.getClassLoader().getResourceAsStream(/config/x.prop)&quot;);
	    p.load( TestFindResource.class.getClassLoader().getResourceAsStream(&quot;/config/x.prop&quot;));
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
</pre>
<blockquote><p>TestFindResource.class.getClassLoader().getResourceAsStream(/config/x.prop)
</p></blockquote>
<pre class="brush: java;">
	try {
	    Enumeration resources = TestFindResource.class.getClassLoader().getResources(&quot;config/x.prop&quot;);
	    while(resources.hasMoreElements()){
		System.out.println(resources.nextElement());
	    }

	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
</pre>
<blockquote><p>file:/JBossClassloading/CommonLibrary/target/test-classes/config/x.prop
</p></blockquote>
<pre class="brush: java;">
	try {
	    Enumeration resources = TestFindResource.class.getClassLoader().getResources(&quot;/config/x.prop&quot;);
	    while(resources.hasMoreElements()){
		System.out.println(resources.nextElement());
	    }
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}

    }
}
</pre>
<blockquote><p>Nothing prints.</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/praveenmyls.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/praveenmyls.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/praveenmyls.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/praveenmyls.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/praveenmyls.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/praveenmyls.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/praveenmyls.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/praveenmyls.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/praveenmyls.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/praveenmyls.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/praveenmyls.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/praveenmyls.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/praveenmyls.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/praveenmyls.wordpress.com/206/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=206&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://praveenmyls.wordpress.com/2010/09/22/java-getresource/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/89c59c9a8fece693eac5b6b492ebe655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">praveenmyls</media:title>
		</media:content>
	</item>
		<item>
		<title>jboss-classloading.xml usecases</title>
		<link>http://praveenmyls.wordpress.com/2010/09/22/jboss-classloading-xml-usecases/</link>
		<comments>http://praveenmyls.wordpress.com/2010/09/22/jboss-classloading-xml-usecases/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 18:28:55 +0000</pubDate>
		<dc:creator>praveenmyls</dc:creator>
				<category><![CDATA[Tech stuff]]></category>
		<category><![CDATA[5.1.0]]></category>
		<category><![CDATA[classloading]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[jboss-classloading.xml]]></category>

		<guid isPermaLink="false">http://praveenmyls.wordpress.com/?p=192</guid>
		<description><![CDATA[Two EJBs. ConsumerEJB: ProducerEJB: UseCases: 1. jboss-classloading.xml set in ProducerEJB and ConsumerEJB. Domain : IsolatedDomain, ParentDomain: DefaultDomain.       2010-09-14 16:17:13,620 INFO  [ProducerServiceBean] (WorkerThread#0[127.0.0.1:63882]) Called ProducerServiceBean Hello      2010-09-14 16:17:13,620 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:63882]) Called myStateless sayHello = Hello 2. jboss-classloading.xml set in ProducerEJB, NOT in ConsumerEJB. Domain : IsolatedDomain, ParentDomain: DefaultDomain. ProducerEJB cannot access ConsumerEJB.  Exception in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=192&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Two EJBs.</p>
<p>ConsumerEJB:</p>
<pre class="brush: java;">
@Stateless
@LocalBinding(jndiBinding=&quot;service/ProducerServiceBean&quot;)
public class ProducerServiceBean implements ProducerServiceLocal,ProducerServiceRemote{
    private Logger logger = Logger.getLogger(&quot;ProducerServiceBean&quot;);
    
    public String sayHello() {
	logger.info(&quot;Called ProducerServiceBean Hello&quot;);
	return &quot;Hello&quot;;
    }

}
</pre>
<p>ProducerEJB:</p>
<pre class="brush: java;">
@Stateless
public class ConsumerServiceBean implements ConsumerServiceLocal, ConsumerServiceRemote {

    private Log logger = LogFactory.getLog(&quot;ConsumerServiceBean&quot;); 
    
    public boolean callTheOtheEJB() {
	ProducerService myStateless = lookup(ProducerService.class, &quot;service/ProducerServiceBean&quot;, true);
	logger.info(&quot;Called myStateless sayHello = &quot;+  myStateless.sayHello());
	return true;
    }
}
</pre>
<p>UseCases:</p>
<p>1. jboss-classloading.xml set in ProducerEJB and ConsumerEJB. Domain : IsolatedDomain, ParentDomain: DefaultDomain.</p>
<p>     </p>
<blockquote><p>2010-09-14 16:17:13,620 INFO  [ProducerServiceBean] (WorkerThread#0[127.0.0.1:63882]) Called ProducerServiceBean Hello<br />
     2010-09-14 16:17:13,620 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:63882]) Called myStateless sayHello = Hello</p></blockquote>
<p>2. jboss-classloading.xml set in ProducerEJB, NOT in ConsumerEJB. Domain : IsolatedDomain, ParentDomain: DefaultDomain.</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot;
              domain=&quot;IsolatedDomain&quot;
              export-all=&quot;NON_EMPTY&quot;
              import-all=&quot;true&quot;&gt;
&lt;/classloading&gt;</pre>
<p>ProducerEJB cannot access ConsumerEJB. </p>
<blockquote><p>Exception in thread &#8220;main&#8221; javax.ejb.EJBException: Unexpected Error<br />
java.lang.NoClassDefFoundError: com/producer/service/ProducerService<br />
	at com.consumer.service.bean.ConsumerServiceBean.callTheOtheEJB(ConsumerServiceBean.java:22)</p>
<p>Caused by: java.lang.ClassNotFoundException: com.producer.service.ProducerService from BaseClassLoader@1aef201d{VFSClassLoaderPolicy@49255dbb{name=vfszip:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar/ domain=ClassLoaderDomain@10439d3b{name=DefaultDomain parentPolicy=BEFORE parent=org.jboss.bootstrap.NoAnnotationURLClassLoader@4b9a0203} roots=[MemoryContextHandler@875349377[path= context=vfsmemory://h5tb6l-2bxb67-ge39xz9q-1-ge3dbdx1-a1 real=vfsmemory://h5tb6l-2bxb67-ge39xz9q-1-ge3dbdx1-a1], DelegatingHandler@1733997289[path=ConsumerEJB-0.0.1-SNAPSHOT.jar context=file:/jboss-5.1.0.GA/server/default/deploy/ real=file:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar]]  delegates=null exported=[com.consumer.service.bean, com.consumer.service, META-INF.maven.Examples.ConsumerEJB, META-INF] NON_EMPTY}}<br />
	at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)<br />
	at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
</p></blockquote>
<p>3. ProducerEJB: Domain : DefaultDomain, ParentDomain: DefaultDomain. <br />
     ConsumerEJB:   Domain : IsolatedDomain, ParentDomain: DefaultDomain.</p>
<p>	Requirements are resolved in hierarchy. Hence works. ConsumerEJB finds ProducerEJB.</p>
<blockquote><p>2010-09-14 16:51:00,404 INFO  [ProducerServiceBean] (WorkerThread#0[127.0.0.1:64147]) Called ProducerServiceBean Hello<br />
2010-09-14 16:51:00,405 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:64147]) Called myStateless sayHello = Hello<br />
2010-09-14 16:51:00,405 INFO  [ProducerServiceBean] (WorkerThread#0[127.0.0.1:64147]) Called ProducerServiceBean Hello<br />
2010-09-14 16:51:00,405 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:64147]) Trying to access ProducerServiceBean Directly : Hello
</p></blockquote>
<p>4. Added wrong pkg in ProducerEJB: jboss-cl.xml (Should have been com.producer.service). Hides OSGI style.</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;DefaultDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;true&quot;&gt;
	&lt;capabilities&gt;
		&lt;package name=&quot;com.consumer.service&quot; /&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>Exception in thread &#8220;main&#8221; javax.ejb.EJBException: Unexpected Error<br />
java.lang.NoClassDefFoundError: com/producer/service/ProducerService<br />
	at com.consumer.service.bean.ConsumerServiceBean.callTheOtheEJB(ConsumerServiceBean.java:23)<br />
Caused by: java.lang.ClassNotFoundException: com.producer.service.ProducerService from BaseClassLoader@216b907c{VFSClassLoaderPolicy@1cdace08{name=vfszip:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar/ domain=ClassLoaderDomain@76640885{name=IsolatedDomain parentPolicy=BEFORE parent=ClassLoaderDomain@10439d3b{DefaultDomain}} roots=[MemoryContextHandler@1628208644[path= context=vfsmemory://h5tb6l-2bxb67-ge39xz9q-1-ge3faend-a9 real=vfsmemory://h5tb6l-2bxb67-ge39xz9q-1-ge3faend-a9], DelegatingHandler@1733997289[path=ConsumerEJB-0.0.1-SNAPSHOT.jar context=file:/jboss-5.1.0.GA/server/default/deploy/ real=file:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar]]  delegates=null exported=[com.consumer.service.bean, com.consumer.service, META-INF.maven.Examples.ConsumerEJB, META-INF] NON_EMPTY}}<br />
	at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448
</p></blockquote>
<p>5. ProducerEJB: jboss-cl.xml</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;DefaultDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;true&quot;&gt;
	&lt;capabilities&gt;
		&lt;package name=&quot;com.producer.service&quot; /&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>2010-09-14 17:05:09,371 INFO  [ProducerServiceBean] (WorkerThread#0[127.0.0.1:64257]) Called ProducerServiceBean Hello<br />
2010-09-14 17:05:09,371 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:64257]) Called myStateless sayHello = Hello</p>
<p>Exception in thread &#8220;main&#8221; javax.ejb.EJBException: Unexpected Error<br />
java.lang.NoClassDefFoundError: com/producer/service/bean/ProducerServiceBean<br />
	at com.consumer.service.bean.ConsumerServiceBean.callTheOtheEJB(ConsumerServiceBean.java:25)</p>
<p>Caused by: java.lang.ClassNotFoundException: com.producer.service.bean.ProducerServiceBean from BaseClassLoader@37cbcec3{VFSClassLoaderPolicy@257380d3{name=vfszip:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar/ domain=ClassLoaderDomain@62ed088a{name=IsolatedDomain parentPolicy=BEFORE parent=ClassLoaderDomain@10439d3b{DefaultDomain}} roots=[MemoryContextHandler@1108258778[path= context=vfsmemory://h5tb6l-2bxb67-ge39xz9q-1-ge3fjo8v-aa real=vfsmemory://h5tb6l-2bxb67-ge39xz9q-1-ge3fjo8v-aa], DelegatingHandler@1733997289[path=ConsumerEJB-0.0.1-SNAPSHOT.jar context=file:/jboss-5.1.0.GA/server/default/deploy/ real=file:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar]]  delegates=null exported=[com.consumer.service.bean, com.consumer.service, META-INF.maven.Examples.ConsumerEJB, META-INF] NON_EMPTY}}</p></blockquote>
<p>6. Different domains for ProducerEJB and ConsumerEJB. The classes are not visible to each other.<br />
ProducerEJB:</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;ConsumerDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;true&quot;&gt;
	&lt;capabilities&gt;
		&lt;package name=&quot;com.producer.service&quot; /&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;</pre>
<p>ConsumerEJB:</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot;
              domain=&quot;ProducerDomain&quot;
              export-all=&quot;NON_EMPTY&quot;
              import-all=&quot;true&quot;&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>Exception in thread &#8220;main&#8221; javax.ejb.EJBException: Unexpected Error<br />
java.lang.NoClassDefFoundError: com/producer/service/ProducerService<br />
	at com.consumer.service.bean.ConsumerServiceBean.callTheOtheEJB(ConsumerServiceBean.java:23)
</p></blockquote>
<p>7. Invalid &#8220;requirements&#8221; tag in ConsumerEJB.</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;ProducerDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;true&quot;&gt;
	&lt;requirements&gt;
		&lt;module name=&quot;CommonLibrary.jar&quot;/&gt;
	&lt;/requirements&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>DEPLOYMENTS MISSING DEPENDENCIES:<br />
  Deployment &#8220;vfszip:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar/&#8221; is missing the following dependencies:<br />
    Dependency &#8220;&#8221; (should be in state &#8220;ClassLoader&#8221;, but is actually in state &#8220;** UNRESOLVED ModuleRequirement{CommonLibrary.jar [0.0.0,?)} **")</p>
<p>DEPLOYMENTS IN ERROR:<br />
  Deployment "" is in error due to the following reason(s): ** UNRESOLVED ModuleRequirement{CommonLibrary.jar [0.0.0,?)} **</p>
<p>	at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:993)
</p></blockquote>
<p>8. Added correct "requirements" tag in ConsumerEJB.</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;ProducerDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;true&quot;&gt;
	&lt;requirements&gt;
		&lt;module name=&quot;CommonLibrary-0.0.1-SNAPSHOT.jar&quot;/&gt;
	&lt;/requirements&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>Exception in thread "main" javax.ejb.EJBException: Unexpected Error<br />
java.lang.NoClassDefFoundError: com/producer/service/ProducerService<br />
	at com.consumer.service.bean.ConsumerServiceBean.callTheOtheEJB(ConsumerServiceBean.java:25)</p>
<p>Caused by: java.lang.ClassNotFoundException: com.producer.service.ProducerService from BaseClassLoader@1ee35bb2{VFSClassLoaderPolicy@609912f5{name=vfszip:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar/ domain=ClassLoaderDomain@76a45568{name=ProducerDomain parentPolicy=BEFORE parent=ClassLoaderDomain@470794d4{DefaultDomain}} roots=[MemoryContextHandler@1638646878[path= context=vfsmemory://h5tb6l-w1cn9l-ge4g82ce-1-ge4g8rkg-28 real=vfsmemory://h5tb6l-w1cn9l-ge4g82ce-1-ge4g8rkg-28], DelegatingHandler@1710140062[path=ConsumerEJB-0.0.1-SNAPSHOT.jar context=file:/jboss-5.1.0.GA/server/default/deploy/ real=file:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar]]  delegates=[FilteredDelegateLoader@53e9296a{delegate=VFSClassLoaderPolicy@4ba56ca0{vfszip:/jboss-5.1.0.GA/server/default/deploy/CommonLibrary-0.0.1-SNAPSHOT.jar/}}] exported=[com.consumer.service.bean, com.consumer.service, META-INF.maven.Examples.ConsumerEJB, META-INF] NON_EMPTY}}
</p></blockquote>
<p>9. Added ProducerEJB-0.0.1-SNAPSHOT to module requirements tag. ProducerEJB is deployed after ConsumerEJB, hence deployment fails.</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;ProducerDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;true&quot;&gt;
	&lt;requirements&gt;
		&lt;module name=&quot;CommonLibrary-0.0.1-SNAPSHOT.jar&quot;/&gt;
		&lt;module name=&quot;ProducerEJB-0.0.1-SNAPSHOT.jar&quot;/&gt;
	&lt;/requirements&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>DEPLOYMENTS MISSING DEPENDENCIES:<br />
  Deployment &#8220;vfszip:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar/&#8221; is missing the following dependencies:<br />
    Dependency &#8220;&#8221; (should be in state &#8220;ClassLoader&#8221;, but is actually in state &#8220;** UNRESOLVED ModuleRequirement{ProducerEJB-0.0.1-SNAPSHOT.jar [0.0.0,?)} **")</p>
<p>DEPLOYMENTS IN ERROR:<br />
  Deployment "" is in error due to the following reason(s): ** UNRESOLVED ModuleRequirement{ProducerEJB-0.0.1-SNAPSHOT.jar [0.0.0,?)} **
</p></blockquote>
<p>10. Add another jar to deploy folder. Not incl in requirements didnt effect it. The class was still visible to ConsumerEJB. Please note that CommonLibrary2-0.0.1-SNAPSHOT isnt part of the requirements and import-all is false. Both the libraries dont have jboss-classloading.xml.</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;IsolatedDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;false&quot;&gt;
	&lt;requirements&gt;
		&lt;module name=&quot;CommonLibrary-0.0.1-SNAPSHOT.jar&quot;/&gt;
	&lt;/requirements&gt;
	&lt;capabilities&gt;
		&lt;package name=&quot;com.consumer.service&quot; /&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>Exception in thread "main" javax.ejb.EJBException: Unexpected Error<br />
java.lang.NoClassDefFoundError: com/producer/service/ProducerService<br />
	at com.consumer.service.bean.ConsumerServiceBean.callTheOtheEJB(ConsumerServiceBean.java:27)<br />
Caused by: java.lang.ClassNotFoundException: com.producer.service.ProducerService from BaseClassLoader@7febaf45{VFSClassLoaderPolicy@4a401c9f{name=vfszip:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar/ domain=ClassLoaderDomain@4873269b{name=IsolatedDomain parentPolicy=BEFORE parent=ClassLoaderDomain@10439d3b{DefaultDomain}} roots=[MemoryContextHandler@924266702[path= context=vfsmemory://h5tb6l-bdtj3x-ge4jqt6i-1-ge4l4acd-a4 real=vfsmemory://h5tb6l-bdtj3x-ge4jqt6i-1-ge4l4acd-a4], DelegatingHandler@1206181996[path=ConsumerEJB-0.0.1-SNAPSHOT.jar context=file:/jboss-5.1.0.GA/server/default/deploy/ real=file:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar]]  delegates=[FilteredDelegateLoader@538540a3{delegate=VFSClassLoaderPolicy@768179c2{vfszip:/jboss-5.1.0.GA/server/default/deploy/CommonLibrary-0.0.1-SNAPSHOT.jar/}}] exported=[com.consumer.service]NON_EMPTY}}</p>
<p>2010-09-15 12:28:55,246 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:55994]) new CommonUtils().todaysDate() = Wed Sep 15 12:28:55 PDT 2010<br />
2010-09-15 12:28:55,247 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:55994]) new CommonUtils2().todaysDate() = From222 :Wed Sep 15 12:28:55 PDT 2010
</p></blockquote>
<p>11. Adding jboss-classloading.xml to CommonLibrary-0.0.1-SNAPSHOT and CommonLibrary2-0.0.1-SNAPSHOT , ConsumerEJB didnt add any requirements and import-all was FALSE.</p>
<blockquote><p>Exception in thread &#8220;main&#8221; javax.ejb.EJBException: Unexpected Error<br />
java.lang.NoClassDefFoundError: com/common/library/CommonUtils<br />
	at com.consumer.service.bean.ConsumerServiceBean.callTheOtheEJB(ConsumerServiceBean.java:25)
</p></blockquote>
<p>12.  Adding jboss-classloading.xml to CommonLibrary-0.0.1-SNAPSHOT and CommonLibrary2-0.0.1-SNAPSHOT , ConsumerEJB didnt add any requirements and import-all was TRUE. ConsumerEJB can access CommonLibraries.</p>
<blockquote><p>2010-09-15 12:40:11,037 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:56095]) new CommonUtils().todaysDate() = Wed Sep 15 12:40:11 PDT 2010<br />
2010-09-15 12:40:11,039 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:56095]) new CommonUtils2().todaysDate() = From222 :Wed Sep 15 12:40:11 PDT 2010
</p></blockquote>
<p>13.  Adding jboss-classloading.xml to CommonLibrary-0.0.1-SNAPSHOT and CommonLibrary2-0.0.1-SNAPSHOT , ConsumerEJB adds CommonLibrary-0.0.1-SNAPSHOT as requirements and import-all was FALSE. ConsumerEJB can access CommonLibrary, but cannot access CommonLibary2.</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;IsolatedDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;false&quot;&gt;
	&lt;requirements&gt;
		&lt;module name=&quot;CommonLibrary-0.0.1-SNAPSHOT.jar&quot;/&gt;
	&lt;/requirements&gt;
	&lt;capabilities&gt;
		&lt;package name=&quot;com.consumer.service&quot; /&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>
2010-09-15 12:43:06,435 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:56118]) new CommonUtils().todaysDate() = Wed Sep 15 12:43:06 PDT 2010<br />
Exception in thread &#8220;main&#8221; javax.ejb.EJBException: Unexpected Error<br />
java.lang.NoClassDefFoundError: com/common2/library/CommonUtils<br />
	at com.consumer.service.bean.ConsumerServiceBean.callTheOtheEJB(ConsumerServiceBean.java:26)<br />
Caused by: java.lang.ClassNotFoundException: com.common2.library.CommonUtils from BaseClassLoader@4a8c7267{VFSClassLoaderPolicy@4aaaee6d{name=vfszip:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar/ domain=ClassLoaderDomain@3381423d{name=IsolatedDomain parentPolicy=BEFORE parent=ClassLoaderDomain@10439d3b{DefaultDomain}} roots=[MemoryContextHandler@470506599[path= context=vfsmemory://h5tb6l-bdtj3x-ge4jqt6i-1-ge4lmb30-ae real=vfsmemory://h5tb6l-bdtj3x-ge4jqt6i-1-ge4lmb30-ae], DelegatingHandler@1206181996[path=ConsumerEJB-0.0.1-SNAPSHOT.jar context=file:/jboss-5.1.0.GA/server/default/deploy/ real=file:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar]]  delegates=[FilteredDelegateLoader@2ddf7c93{delegate=VFSClassLoaderPolicy@f272e4a{vfszip:/jboss-5.1.0.GA/server/default/deploy/CommonLibrary-0.0.1-SNAPSHOT.jar/}}] exported=[com.consumer.service]NON_EMPTY}}
</p></blockquote>
<p>14. Adding jboss-classloading.xml to CommonLibrary-0.0.1-SNAPSHOT and CommonLibrary2-0.0.1-SNAPSHOT , ConsumerEJB adds CommonLibrary-0.0.1-SNAPSHOT,CommonLibrary2-0.0.1-SNAPSHOT  as requirements and import-all was FALSE. ConsumerEJB  doesnt deploy.</p>
<blockquote><p>2010-09-15 14:27:57,455 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (main) Error resolving dependencies for ClassLoader: name=vfszip:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar/ state=Describe mode=Manual requiredState=ClassLoader<br />
java.lang.IllegalStateException: VFSDeploymentClassLoaderPolicyModule CommonLibrary2-0.0.1-SNAPSHOT.jar:0.0.0 cannot be added because it is exports package META-INF which conflicts with VFSDeploymentClassLoaderPolicyModule CommonLibrary-0.0.1-SNAPSHOT.jar:0.0.0<br />
	at org.jboss.classloading.spi.dependency.ClassLoadingSpace.join(ClassLoadingSpace.java:223)<br />
	at org.jboss.classloading.spi.dependency.ClassLoadingSpace.joinAndResolve(ClassLoadingSpace.java:120)
</p></blockquote>
<p>15. Adding jboss-classloading.xml to CommonLibrary-0.0.1-SNAPSHOT and CommonLibrary2-0.0.1-SNAPSHOT. Excluding META-INF directory resolves the earlier error @ 14. ConsumerEJB adds CommonLibrary-0.0.1-SNAPSHOT,CommonLibrary2-0.0.1-SNAPSHOT  as requirements and import-all was FALSE. </p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;IsolatedDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;false&quot; excluded=&quot;META-INF&quot;&gt;
&lt;/classloading&gt;</pre>
<p>2010-09-15 15:04:09,335 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:57282]) new CommonUtils().todaysDate() = Wed Sep 15 15:04:09 PDT 2010<br />
2010-09-15 15:04:09,336 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:57282]) new CommonUtils2().todaysDate() = From222 :Wed Sep 15 15:04:09 PDT 2010</p>
<blockquote><p>Exception in thread &#8220;main&#8221; javax.ejb.EJBException: Unexpected Error<br />
java.lang.NoClassDefFoundError: com/common3/library/CommonUtils<br />
	at com.consumer.service.bean.ConsumerServiceBean.callTheOtheEJB(ConsumerServiceBean.java:27)<br />
Caused by: java.lang.ClassNotFoundException: com.common3.library.CommonUtils from BaseClassLoader@2c84d9d{VFSClassLoaderPolicy@2c5f7fd8{name=vfszip:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar/ domain=ClassLoaderDomain@3f78d35f{name=IsolatedDomain parentPolicy=BEFORE parent=ClassLoaderDomain@3aeebf17{DefaultDomain}} roots=[MemoryContextHandler@834819242[path= context=vfsmemory://h5tb6l-tlfjex-ge4qm7bh-1-ge4qmvy9-29 real=vfsmemory://h5tb6l-tlfjex-ge4qm7bh-1-ge4qmvy9-29], DelegatingHandler@1057935256[path=ConsumerEJB-0.0.1-SNAPSHOT.jar context=file:/jboss-5.1.0.GA/server/default/deploy/ real=file:/jboss-5.1.0.GA/server/default/deploy/ConsumerEJB-0.0.1-SNAPSHOT.jar]]  delegates=[FilteredDelegateLoader@4d447e6b{delegate=VFSClassLoaderPolicy@4a65d816{vfszip:/jboss-5.1.0.GA/server/default/deploy/CommonLibrary-0.0.1-SNAPSHOT.jar/}}, FilteredDelegateLoader@4bc7ca6e{delegate=VFSClassLoaderPolicy@3b887b2{vfszip:/jboss-5.1.0.GA/server/default/deploy/CommonLibrary2-0.0.1-SNAPSHOT.jar/}}] exported=[com.consumer.service]NON_EMPTY}}
</p></blockquote>
<p>16. Added new library called ZZLibrary. Added jboss-classloading.xml to it. Excluded META-INF. This is how jboss-cl for ConsumerEJB looks. Works. </p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;IsolatedDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;false&quot;&gt;
	&lt;requirements&gt;
		&lt;module name=&quot;CommonLibrary-0.0.1-SNAPSHOT.jar&quot;/&gt;
		&lt;module name=&quot;CommonLibrary2-0.0.1-SNAPSHOT.jar&quot;/&gt;
		&lt;module name=&quot;ZZLibrary-0.0.1-SNAPSHOT.jar&quot;/&gt;
	&lt;/requirements&gt;
	&lt;capabilities&gt;
		&lt;package name=&quot;com.consumer.service&quot; /&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>2010-09-15 15:11:57,366 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:57354]) new CommonUtils().todaysDate() = Wed Sep 15 15:11:57 PDT 2010<br />
2010-09-15 15:11:57,368 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:57354]) new CommonUtils2().todaysDate() = From222 :Wed Sep 15 15:11:57 PDT 2010<br />
2010-09-15 15:11:57,369 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:57354]) new CommonUtils3().todaysDate() = FromZZLibrary :Wed Sep 15 15:11:57 PDT 2010</p>
<p>Exception in thread &#8220;main&#8221; javax.ejb.EJBException: Unexpected Error<br />
java.lang.NoClassDefFoundError: com/producer/service/ProducerService<br />
	at com.consumer.service.bean.ConsumerServiceBean.callTheOtheEJB(ConsumerServiceBean.java:28)
</p></blockquote>
<p>17. Added ProducerEJB to ConsumerEJB&#8217;s requirements. Added ProducerEJB-0.0.1-SNAPSHOT.jar to ProducerEJB capabilities. But that meant, all the packages were imported.<br />
ConsumerEJB:</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;IsolatedDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;false&quot; excluded=&quot;META-INF&quot;&gt;
	&lt;requirements&gt;
		&lt;module name=&quot;CommonLibrary-0.0.1-SNAPSHOT.jar&quot;/&gt;
		&lt;module name=&quot;CommonLibrary2-0.0.1-SNAPSHOT.jar&quot;/&gt;
		&lt;module name=&quot;ZZLibrary-0.0.1-SNAPSHOT.jar&quot;/&gt;
		&lt;module name=&quot;ProducerEJB-0.0.1-SNAPSHOT.jar&quot;/&gt;
	&lt;/requirements&gt;
	&lt;capabilities&gt;
		&lt;package name=&quot;com.consumer.service&quot; /&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;</pre>
<p>ProducerEJB:</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;IsolatedDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;true&quot; excluded=&quot;META-INF&quot;&gt;
	&lt;capabilities&gt;
		&lt;package name=&quot;com.producer.service&quot; /&gt;
		&lt;module name=&quot;ProducerEJB-0.0.1-SNAPSHOT.jar&quot;/&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>2010-09-15 15:31:26,385 INFO  [ProducerServiceBean] (WorkerThread#0[127.0.0.1:57509]) Called ProducerServiceBean Hello<br />
2010-09-15 15:31:26,385 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:57509]) Called myStateless sayHello = Hello<br />
2010-09-15 15:31:26,386 INFO  [ProducerServiceBean] (WorkerThread#0[127.0.0.1:57509]) Called ProducerServiceBean Hello<br />
2010-09-15 15:31:26,386 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:57509]) Trying to access ProducerServiceBean Directly (new ProducerServiceBean()).sayHello(): Hello
</p></blockquote>
<p>18. Same settings as above, expect added com.producer.service.bean to excluded attribute. Looks like the EJBDeployer didnt find the Bean class.</p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;IsolatedDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;true&quot; excluded=&quot;META-INF,com.producer.service.bean&quot;&gt;
	&lt;capabilities&gt;
		&lt;package name=&quot;com.producer.service&quot; /&gt;
		&lt;module name=&quot;ProducerEJB-0.0.1-SNAPSHOT.jar&quot;/&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>Caused by: java.lang.ClassNotFoundException: com.producer.service.bean.ProducerServiceBean from BaseClassLoader@37ea14c3{VFSClassLoaderPolicy@68f92ae2{name=vfszip:/jboss-5.1.0.GA/server/default/deploy/ProducerEJB-0.0.1-SNAPSHOT.jar/ domain=ClassLoaderDomain@65a45a7f{name=IsolatedDomain parentPolicy=BEFORE parent=ClassLoaderDomain@6da05bdb{DefaultDomain}} roots=[MemoryContextHandler@1047433541[path= context=vfsmemory://h5tb6l-8a1qj2-ge4rx1ww-1-ge4rxpdu-2a real=vfsmemory://h5tb6l-8a1qj2-ge4rx1ww-1-ge4rxpdu-2a], DelegatingHandler@1292069128[path=ProducerEJB-0.0.1-SNAPSHOT.jar context=file:/jboss-5.1.0.GA/server/default/deploy/ real=file:/jboss-5.1.0.GA/server/default/deploy/ProducerEJB-0.0.1-SNAPSHOT.jar]]  delegates=null exported=[com.producer.service] NON_EMPTY}}<br />
	at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)
</p></blockquote>
<p>EAR Setting</p>
<p>1. Added ProducerEJB and ConsumerEJB as ejb-jars. And *Libraries as lib/*.</p>
<p>All the jboss-classloading.xml&#8217;s have domain=DefaultDomain.</p>
<p>But, JBoss JMX shows a different picture for EJB&#8217;s. The Lib jars are present under DefaultDomain. The EJB&#8217;s are in a different domain.</p>
<p>2. Removed jboss-classloading.xml&#8217;s from all EJB&#8217;s and the jars. There seems to be NO seperate domain created. Everything is in DefaultDomain.</p>
<p>See, No isolated domain</p>
<p>3. Added jb-cl.xml to CommonLibrary. domain=DefaultDomain. No Deployment issues. But isolation didnt happen. My EJB was able to access com.common.library. (Even after removing the capabilities). </p>
<pre class="brush: xml;">&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; domain=&quot;DefaultDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;false&quot; excluded=&quot;META-INF,com.common.library&quot;&gt;
	&lt;capabilities&gt;
		&lt;module name=&quot;CommonLibrary-0.0.1-SNAPSHOT.jar&quot; /&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;</pre>
<blockquote><p>2010-09-16 12:12:34,333 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:50076]) new CommonUtils().todaysDate() = Thu Sep 16 12:12:34 PDT 2010<br />
2010-09-16 12:12:34,334 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:50076]) Please keep it a secret:Thu Sep 16 12:12:34 PDT 2010<br />
2010-09-16 12:12:34,335 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:50076]) new CommonUtils2().todaysDate() = From222 :Thu Sep 16 12:12:34 PDT 2010<br />
2010-09-16 12:12:34,337 INFO  [ConsumerServiceBean] (WorkerThread#0[127.0.0.1:50076]) new CommonUtils3().todaysDate() = FromZZLibrary :Thu Sep 16 12:12:34 PDT 2010
</p></blockquote>
<p>4. No jb-cl.xml to ProducerEJB. ZAnotherEAR refers to ProducerEJB and does it succesfully.</p>
<p>5. Apparently, if an EJB is part of an EAR. One shouldnt give the &#8220;domain&#8221;, but just the &#8220;parent-domain&#8221; tag. Then the behaviour is replicated.<br />
Upon TRACEing the jboss logs upon , I stumbled upon this:</p>
<blockquote><p>Will use synthetic domain for classloader of subdeployment</p></blockquote>
<p>I checked org.jboss.deployers.plugins.classloading.AbstractClassLoaderDescribeDeployer.</p>
<pre class="brush: java;">
if (deployment.isTopLevelClassLoader() == false)
{
     if (deployment.getParentDomain() == null) {
            deployment.setDomain(unitName);
            log.debugf(&quot;Will use synthetic domain for classloader of subdeployment: %1s&quot;, unitName);
     }else{
             log.debugf(&quot;Will create top level classloader for subdeployment: %1s&quot;, unitName);
     }
  }
</pre>
<p>It clearly shows, if the parent-domain is missing, the domain is set to the EAR name.<br />
Hence, The jboss-classloading.xml</p>
<pre class="brush: xml;">
&lt;classloading xmlns=&quot;urn:jboss:classloading:1.0&quot; parent-domain=&quot;DefaultDomain&quot;
	export-all=&quot;NON_EMPTY&quot; import-all=&quot;true&quot; excluded=&quot;META-INF&quot;&gt;
	&lt;capabilities&gt;
		&lt;package name=&quot;&lt;interface-package&gt;&quot; /&gt;
	&lt;/capabilities&gt;
&lt;/classloading&gt;
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/praveenmyls.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/praveenmyls.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/praveenmyls.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/praveenmyls.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/praveenmyls.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/praveenmyls.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/praveenmyls.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/praveenmyls.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/praveenmyls.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/praveenmyls.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/praveenmyls.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/praveenmyls.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/praveenmyls.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/praveenmyls.wordpress.com/192/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=192&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://praveenmyls.wordpress.com/2010/09/22/jboss-classloading-xml-usecases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/89c59c9a8fece693eac5b6b492ebe655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">praveenmyls</media:title>
		</media:content>
	</item>
		<item>
		<title>Mysql, load data infile, utf8</title>
		<link>http://praveenmyls.wordpress.com/2010/08/24/mysql-load-data-infile-utf8/</link>
		<comments>http://praveenmyls.wordpress.com/2010/08/24/mysql-load-data-infile-utf8/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 02:26:41 +0000</pubDate>
		<dc:creator>praveenmyls</dc:creator>
				<category><![CDATA[Tech stuff]]></category>
		<category><![CDATA[character_set_database]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[load data infile]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://praveenmyls.wordpress.com/?p=189</guid>
		<description><![CDATA[We have a need to sync data from oracle to mysql. The extract-data and the dump-data servers run on JBoss. Steps 1. Dump-data server connects to extract-data server asking for the data 2. Extract-data server connects to oracle db, makes a CSV based file and sends it to dump-data server 3. Dump-data server extracts information [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=189&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We have a need to sync data from oracle to mysql. The extract-data and the dump-data servers run on JBoss.<br />
Steps<br />
1. Dump-data server connects to extract-data server asking for the data<br />
2. Extract-data server connects to oracle db, makes a CSV based file and sends it to dump-data server<br />
3. Dump-data server extracts information from the CSV file for diff tables.<br />
4. Dump-data server uses LOAD DATA INFILE to upload data into the corresponding mysql tables.</p>
<p>Issues<br />
1. UTF8 characters like \u20ae was inserted into mysql as u20ae.<br />
Example row in the CSV file.<br />
&#8220;a&#8221;,&#8221;b&#8221;,&#8221;\u20ae&#8221;<br />
2. Japanese/Chinese etc characters showed up as ? in the CSV files on the dump-server side.</p>
<p>Solutions<br />
1. The default escape character in MySQL is &#8220;\&#8221;. So, If you have \n its interpreted as &#8216;newline&#8217; , \t as tab etc etc. Any character that doesnt not fall in the same category will be treated as the normal character. For eg \u will be inserted into the table as &#8216;u&#8217;.<br />
This issue does not occur when you would be inserting via java prepared statement/statement. The MySQL connector takes care of the escape sequencing.<br />
You can turn off the default escape character feature in mysql by using NO_ESCAPE parameter.</p>
<p>2. International characters : There are two ways to solve this issue<br />
a. The character set indicated by the &#8216;character_set_database&#8217; system variable is used to interpret the information in the CSV file.  Set character_set_database=&#8217;utf8&#8242; and saving the CSV file in utf8 encoded format does the trick.<br />
b. Save the file in utf8 encode format and use &#8216;character set&#8217; in load data file command. This feature worked for me in 5.1.45 and doesnt work in earlier versions.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/praveenmyls.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/praveenmyls.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/praveenmyls.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/praveenmyls.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/praveenmyls.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/praveenmyls.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/praveenmyls.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/praveenmyls.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/praveenmyls.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/praveenmyls.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/praveenmyls.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/praveenmyls.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/praveenmyls.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/praveenmyls.wordpress.com/189/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=189&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://praveenmyls.wordpress.com/2010/08/24/mysql-load-data-infile-utf8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/89c59c9a8fece693eac5b6b492ebe655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">praveenmyls</media:title>
		</media:content>
	</item>
		<item>
		<title>Java titbits</title>
		<link>http://praveenmyls.wordpress.com/2009/11/03/java-titbits/</link>
		<comments>http://praveenmyls.wordpress.com/2009/11/03/java-titbits/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 02:40:44 +0000</pubDate>
		<dc:creator>praveenmyls</dc:creator>
				<category><![CDATA[Tech stuff]]></category>

		<guid isPermaLink="false">http://praveenmyls.wordpress.com/?p=184</guid>
		<description><![CDATA[Printing GC details: java -Xloggc:D:/log/myLogFile.log -XX:+PrintGCDetails Using 64bit VM : java -showversion -b64 -Xms2g -Xmx2g<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=184&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Printing GC details: java -Xloggc:D:/log/myLogFile.log -XX:+PrintGCDetails<br />
Using 64bit VM  : java -showversion -b64 -Xms2g -Xmx2g</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/praveenmyls.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/praveenmyls.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/praveenmyls.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/praveenmyls.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/praveenmyls.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/praveenmyls.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/praveenmyls.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/praveenmyls.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/praveenmyls.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/praveenmyls.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/praveenmyls.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/praveenmyls.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/praveenmyls.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/praveenmyls.wordpress.com/184/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=184&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://praveenmyls.wordpress.com/2009/11/03/java-titbits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/89c59c9a8fece693eac5b6b492ebe655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">praveenmyls</media:title>
		</media:content>
	</item>
		<item>
		<title>Maven &#8211; excluding jars in a EAR</title>
		<link>http://praveenmyls.wordpress.com/2009/10/25/maven-excluding-jars-in-a-ear/</link>
		<comments>http://praveenmyls.wordpress.com/2009/10/25/maven-excluding-jars-in-a-ear/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 23:55:33 +0000</pubDate>
		<dc:creator>praveenmyls</dc:creator>
				<category><![CDATA[Tech stuff]]></category>
		<category><![CDATA[ear]]></category>
		<category><![CDATA[exclude]]></category>
		<category><![CDATA[exclusions]]></category>
		<category><![CDATA[jars]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://praveenmyls.wordpress.com/?p=182</guid>
		<description><![CDATA[excluding transitive dependencies in a EAR. &#60;dependency&#62; &#60;groupId&#62;org.hibernate&#60;/groupId&#62; &#60;artifactId&#62;hibernate-annotations&#60;/artifactId&#62; &#60;version&#62;3.2.0.ga&#60;/version&#62; &#60;!&#8211;scope&#62;provided&#60;/scope&#8211;&#62; &#60;exclusions&#62; &#60;exclusion&#62; &#60;groupId&#62;net.sf.ehcache&#60;/groupId&#62; &#60;artifactId&#62;ehcache&#60;/artifactId&#62; &#60;/exclusion&#62; &#60;/exclusions&#62; &#60;/dependency&#62;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=182&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>excluding transitive dependencies in a EAR.</p>
<blockquote><p>&lt;dependency&gt;<br />
			&lt;groupId&gt;org.hibernate&lt;/groupId&gt;<br />
			&lt;artifactId&gt;hibernate-annotations&lt;/artifactId&gt;<br />
			&lt;version&gt;3.2.0.ga&lt;/version&gt;<br />
			&lt;!&#8211;scope&gt;provided&lt;/scope&#8211;&gt;<br />
			&lt;exclusions&gt;<br />
				&lt;exclusion&gt;<br />
					&lt;groupId&gt;net.sf.ehcache&lt;/groupId&gt;<br />
					&lt;artifactId&gt;ehcache&lt;/artifactId&gt;<br />
				&lt;/exclusion&gt;<br />
			&lt;/exclusions&gt;<br />
		&lt;/dependency&gt;</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/praveenmyls.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/praveenmyls.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/praveenmyls.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/praveenmyls.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/praveenmyls.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/praveenmyls.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/praveenmyls.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/praveenmyls.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/praveenmyls.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/praveenmyls.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/praveenmyls.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/praveenmyls.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/praveenmyls.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/praveenmyls.wordpress.com/182/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=182&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://praveenmyls.wordpress.com/2009/10/25/maven-excluding-jars-in-a-ear/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/89c59c9a8fece693eac5b6b492ebe655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">praveenmyls</media:title>
		</media:content>
	</item>
		<item>
		<title>BlazeDS, JBoss 5 and JDK 1.5</title>
		<link>http://praveenmyls.wordpress.com/2009/10/21/blazeds-jboss-5-and-jdk-1-5/</link>
		<comments>http://praveenmyls.wordpress.com/2009/10/21/blazeds-jboss-5-and-jdk-1-5/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 07:09:40 +0000</pubDate>
		<dc:creator>praveenmyls</dc:creator>
				<category><![CDATA[Tech stuff]]></category>

		<guid isPermaLink="false">http://praveenmyls.wordpress.com/?p=175</guid>
		<description><![CDATA[If you have to deploy a blazeDS application onto JBoss 5, you can run into number of issues. In my scenario, the same blazeDS war worked in jboss 4.2.2, but would hang the Jboss server while getting deployed. You know that it has something to do with JBoss classloading. And for sure, it turns to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=175&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you have to deploy a blazeDS application onto JBoss 5, you can run into number of issues.<br />
In my scenario, the same blazeDS war worked in jboss 4.2.2, but would hang the Jboss server while getting deployed.</p>
<p>You know  that it has something to do with JBoss classloading. And for sure, it turns to be the same thing.<br />
After an hour or more of hung state, I get this exception</p>
<p><code>2009-10-20 20:55:58,995 WARN  [org.jboss.detailed.classloader.ClassLoaderManager] (main) Unexpected error during load of:javax.management.MBeanServer<br />
java.lang.OutOfMemoryError: Java heap space<br />
	at java.util.HashMap.resize(HashMap.java:508)<br />
	at java.util.HashMap.addEntry(HashMap.java:799)<br />
	at java.util.HashMap.put(HashMap.java:431)<br />
	at java.util.HashSet.add(HashSet.java:194)<br />
	at java.lang.ClassLoader.checkPackageAccess(ClassLoader.java:391)<br />
	at java.lang.ClassLoader.defineClass1(Native Method)<br />
	at java.lang.ClassLoader.defineClass(ClassLoader.java:675)<br />
	at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:63)<br />
	at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:572)<br />
	at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:532)<br />
	at java.security.AccessController.doPrivileged(Native Method)<br />
	at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:530)<br />
	at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:507)<br />
	at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)<br />
	at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)<br />
	at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:452)<br />
	at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:251)<br />
	at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:150)<br />
	at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:265)<br />
	at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1119)<br />
	at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:798)<br />
	at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:441)<br />
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)<br />
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)<br />
	at flex.management.BaseControl.register(BaseControl.java:190)<br />
	at flex.management.runtime.AdminConsoleDisplayRegistrar.(AdminConsoleDisplayRegistrar.java:40)<br />
	at flex.management.runtime.messaging.MessageBrokerControl.(MessageBrokerControl.java:85)<br />
	at flex.messaging.MessageBroker.(MessageBroker.java:269)<br />
	at flex.messaging.config.MessagingConfiguration.createBroker(MessagingConfiguration.java:105)<br />
	at flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:112)<br />
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)<br />
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:950)<br />
2009-10-20 20:56:01,012 ERROR [STDERR] (main) **** MessageBrokerServlet failed to initialize due to runtime exception:   Error: java.lang.NoClassDefFoundError: javax/management/MBeanServer<br />
	at flex.management.BaseControl.register(BaseControl.java:190)<br />
	at flex.management.runtime.AdminConsoleDisplayRegistrar.(AdminConsoleDisplayRegistrar.java:40)<br />
	at flex.management.runtime.messaging.MessageBrokerControl.(MessageBrokerControl.java:85)<br />
	at flex.messaging.MessageBroker.(MessageBroker.java:269)<br />
	at flex.messaging.config.MessagingConfiguration.createBroker(MessagingConfiguration.java:105)<br />
	at flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:112)<br />
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)<br />
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:950)<br />
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4122)<br />
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4421)<br />
	at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)<br />
	at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)<br />
	at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)<br />
	at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)<br />
	at org.jboss.web.deployers.WebModule.start(WebModule.java:97)<br />
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />
	at java.lang.reflect.Method.invoke(Method.java:592)<br />
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)<br />
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)<br />
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)<br />
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)<br />
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)<br />
	at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)<br />
	at $Proxy38.start(Unknown Source)<br />
	at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)<br />
	at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)<br />
	at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)<br />
	at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)<br />
	at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)<br />
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)<br />
	at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)<br />
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)<br />
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)<br />
	at org.jboss.system.ServiceController.doChange(ServiceController.java:688)<br />
	at org.jboss.system.ServiceController.start(ServiceController.java:460)<br />
	at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)<br />
	at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)<br />
	at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)<br />
	at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)<br />
	at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)<br />
	at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)<br />
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)<br />
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)<br />
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)<br />
	at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)<br />
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)<br />
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)<br />
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)<br />
	at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)<br />
	at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)<br />
	at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)<br />
	at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)<br />
	at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)<br />
	at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361)<br />
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)<br />
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)<br />
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)<br />
	at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)<br />
	at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)<br />
	at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)<br />
	at org.jboss.Main.boot(Main.java:221)<br />
	at org.jboss.Main$1.run(Main.java:556)<br />
	at java.lang.Thread.run(Thread.java:613)<br />
2009-10-20 20:56:01,013 INFO  [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/celmi]] (main) Marking servlet MessageBrokerServlet as unavailable<br />
2009-10-20 20:56:01,013 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/celmi]] (main) Servlet /celmi threw load() exception<br />
javax.servlet.UnavailableException: javax/management/MBeanServer<br />
	at flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:170)<br />
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)<br />
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:950)<br />
	at orgapache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4122)<br />
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4421)<br />
	at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)<br />
	at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)<br />
	at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)<br />
	at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)<br />
	at org.jboss.web.deployers.WebModule.start(WebModule.java:97)<br />
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />
	at java.lang.reflect.Method.invoke(Method.java:592)<br />
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)<br />
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)<br />
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)<br />
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)<br />
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)<br />
	at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)<br />
	at $Proxy38.start(Unknown Source)<br />
	at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)<br />
	at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)<br />
	at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)<br />
	at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)<br />
	at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)<br />
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)<br />
	at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)<br />
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)<br />
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)<br />
	at org.jboss.system.ServiceController.doChange(ServiceController.java:688)<br />
	at org.jboss.system.ServiceController.start(ServiceController.java:460)<br />
	at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)<br />
	at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)<br />
	at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)<br />
	at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)<br />
	at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)<br />
	at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)<br />
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)<br />
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)<br />
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)<br />
	at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)<br />
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)<br />
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)<br />
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)<br />
	at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)<br />
	at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)<br />
	at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)<br />
	at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)<br />
	at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)<br />
	at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361)<br />
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)<br />
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)<br />
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)<br />
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)<br />
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)<br />
	at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)<br />
	at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)<br />
	at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)<br />
	at org.jboss.Main.boot(Main.java:221)<br />
	at org.jboss.Main$1.run(Main.java:556)<br />
	at java.lang.Thread.run(Thread.java:613)<br />
</code></p>
<p>I searched for MBeanServer in my classpath, and my blazeDS war did have a <strong>jmxri-1.2.1.jar</strong> in its lib folder.</p>
<p>I figured turning on the classloading logging might help. So, in jboss-log4j.xml</p>
<p><code><br />
 &lt;category name="org.jboss.classloading" additivity="false"&gt;<br />
        &lt;priority value="TRACE"&gt;&lt;/priority&gt;<br />
        &lt;appender-ref ref="UCL"&gt;&lt;/appender-ref&gt;<br />
    &lt;/category&gt;</p>
<p>    &lt;category name="org.jboss.detailed.classloading" additivity="false"&gt;<br />
        &lt;priority value="TRACE"&gt;&lt;/priority&gt;<br />
        &lt;appender-ref ref="UCL"&gt;&lt;/appender-ref&gt;<br />
    &lt;/category&gt;</p>
<p>    &lt;category name="flex.messaging" additivity="false"&gt;<br />
        &lt;priority value="TRACE"&gt;&lt;/priority&gt;<br />
        &lt;appender-ref ref="UCL"&gt;&lt;/appender-ref&gt;<br />
    &lt;/category&gt;</p>
<p></code></p>
<p>And then, I stumbled upon an infinite loop! I had to kill the process.</p>
<p><code><br />
2009-10-20 23:03:17,452 TRACE [1789774,VFSClassLoaderPolicy,main] getProtectionDomain:className=javax.management.MBeanServer path=javax/management/MBeanServer.class codeSourceURL=jar:file:/jboss-5.1.0.GA/server/default/deploy/celmi.war!/WEB-INF/lib/jmxri-1.2.1.jar<br />
2009-10-20 23:03:19,506 TRACE [1791828,VFSClassLoaderPolicy,main] getProtectionDomain:className=javax.management.MBeanServer path=javax/management/MBeanServer.class codeSourceURL=jar:file:/jboss-5.1.0.GA/server/default/deploy/celmi.war!/WEB-INF/lib/jmxri-1.2.1.jar<br />
2009-10-20 23:03:19,517 TRACE [1791839,VFSClassLoaderPolicy,main] getProtectionDomain:className=javax.management.MBeanServer path=javax/management/MBeanServer.class codeSourceURL=jar:file:/jboss-5.1.0.GA/server/default/deploy/celmi.war!/WEB-INF/lib/jmxri-1.2.1.jar<br />
</code></p>
<p>Picked this up from stack-overflow.<br />
If you&#8217;re running JBoss on Java 5 or above, then you&#8217;ll likely have 2 MBean servers running: the &#8220;platform&#8221; mbean server, which is hosted by the JVM, and the JBoss MBean server, which is hosted by the JBoss code. The two have nothing to do with each other.<br />
Your  code will register  mbean in the JVM platform server, which is no use to you.</p>
<p>The easiest way to get a programmatic reference to the JBoss MBean server is</p>
<blockquote><p>org.jboss.mx.util.MBeanServerLocator.locateJBoss()</p></blockquote>
<p>Try using that instead of</p>
<blockquote><p>ManagementFactory.getPlatformMBeanServer();</p></blockquote>
<p>Steps to fix this:<br />
1. Download <a href="http://opensource.adobe.com/wiki/display/blazeds/Source">BlazeDS code</a><br />
2. Open up <code>blazeds_src_3-0-0-544/modules/core/src/java/flex/management/BaseControl.java</code><br />
3. Make the MBeanServer be pointed to the JBoss MBeanServer.</p>
<p><code><br />
 public final void register()<br />
    {<br />
        if (!registered)<br />
        {<br />
            //MBeanServer server = MBeanServerLocatorFactory.getMBeanServerLocator().getMBeanServer();<br />
             MBeanServer server =  org.jboss.mx.util.MBeanServerLocator.locateJBoss();</p>
<p>            ObjectName name = getObjectName();<br />
            try<br />
            {<br />
                if (server.isRegistered(name))<br />
                {<br />
                    server.unregisterMBean(name);<br />
                }</p>
<p>                registeredObjectName = server.registerMBean(this, name).getObjectName();<br />
                registered = true;<br />
                onRegistrationComplete();</p>
<p>            }<br />
            catch (ManagementException me)<br />
            {<br />
                throw me;<br />
            }<br />
            catch (MBeanRegistrationException mre)<br />
            {<br />
                // Rethrow with useful message if this ever happens.<br />
                ManagementException me = new ManagementException();<br />
                me.setMessage(REG_EXCEPTION, new Object[] {name.toString()});<br />
                me.setRootCause(mre);<br />
                throw me;<br />
            }<br />
            catch (InstanceAlreadyExistsException iaee)<br />
            {<br />
                // If registration is not working at all, inform the user that<br />
                // they may<br />
                // work around the issue by disabling management (no MBeans will<br />
                // be registered).<br />
                if (!server.isRegistered(name))<br />
                {<br />
                    ManagementException me = new ManagementException();<br />
                    me.setMessage(DISABLE_MANAGEMENT, new Object[] {name.toString()});<br />
                    throw me;<br />
                }<br />
                else<br />
                {<br />
                    // Rethrow with useful message if this ever happens.<br />
                    ManagementException me = new ManagementException();<br />
                    me.setMessage(REG_ALREADYEXISTS, new Object[] {name.toString()});<br />
                    throw me;<br />
                }<br />
            }<br />
            catch (NotCompliantMBeanException ncme)<br />
            {<br />
                // Rethrow with useful message if this ever happens.<br />
                ManagementException me = new ManagementException();<br />
                me.setMessage(REG_NOTCOMPLIANT, new Object[] {name.toString()});<br />
                throw me;<br />
            }<br />
            catch (InstanceNotFoundException infe)<br />
            {<br />
                // Rethrow with useful message if this ever happens.<br />
                ManagementException me = new ManagementException();<br />
                me.setMessage(UNREG_NOTFOUND, new Object[] {name.toString()});<br />
                throw me;<br />
            }<br />
        }<br />
    }<br />
</code></p>
<p>4. Create a patch of this file and name it such that it is picked up before blazeds*.<br />
5. Add it in your lib directory of your BlazeDS war app, and voila!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/praveenmyls.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/praveenmyls.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/praveenmyls.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/praveenmyls.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/praveenmyls.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/praveenmyls.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/praveenmyls.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/praveenmyls.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/praveenmyls.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/praveenmyls.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/praveenmyls.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/praveenmyls.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/praveenmyls.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/praveenmyls.wordpress.com/175/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=175&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://praveenmyls.wordpress.com/2009/10/21/blazeds-jboss-5-and-jdk-1-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/89c59c9a8fece693eac5b6b492ebe655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">praveenmyls</media:title>
		</media:content>
	</item>
		<item>
		<title>JBoss classloading demystified!</title>
		<link>http://praveenmyls.wordpress.com/2009/09/24/jboss-classloading-demystified/</link>
		<comments>http://praveenmyls.wordpress.com/2009/09/24/jboss-classloading-demystified/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 06:13:19 +0000</pubDate>
		<dc:creator>praveenmyls</dc:creator>
				<category><![CDATA[Tech stuff]]></category>
		<category><![CDATA[Allocate exception]]></category>
		<category><![CDATA[classloading]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[UnifiedLoadedRepository3]]></category>
		<category><![CDATA[usecase]]></category>
		<category><![CDATA[VerifyError]]></category>

		<guid isPermaLink="false">http://praveenmyls.wordpress.com/?p=167</guid>
		<description><![CDATA[When things get to go wrong couple of days before production, you tend to understand how JBoss classloading works. This is with JBoss 4.2.2GA You have two EARs, a.ear and b.ear. Both have c.jar in their libs. Case 1: Both EARs dont do a scoped classloading What happens at server startup: Both a.ear and b.ear [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=167&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When things get to go wrong couple of days before production, you tend to understand how JBoss classloading works.<br />
This is with JBoss 4.2.2GA</p>
<p>You have two EARs, a.ear and b.ear. Both have c.jar in their libs.<br />
<strong>Case 1: Both EARs dont do a scoped classloading</strong></p>
<ul>What happens at server startup:</ul>
<p>Both a.ear and b.ear use the same UnifiedLoadedRepository3 instance.<br />
a.ear gets loaded first.<br />
a.ear puts c.jar into the repository.<br />
Now a.ear/b.ear and c.jar are called as UCL&#8217;s (Unified class loaders). All these UCLs are listed in the order of the deployment.<br />
If C.class is in c.jar, then when asked for C.class, it is picked up from c.jar of a.ear. ie JBoss goes thru the list of the UCLs with the ULR. And the it finds C.class @ c.jar of a.ear first, and it returns the same.</p>
<p>When you hot undeploy a.ear, then any code calling b.ear gets C.class from b.ear. The only difference is that c.jar is out of the ULR. You get a &#8220;Not loaded in repository cache&#8221; message in the JMX window.</p>
<p>Now do a hot deploy of a.ear, this time you get java.lang.VerifyError for some class in c.jar.<br />
When you redeploy the common jars, you need to redeploy everything.</p>
<p><strong>Case 2: b.ear has the isolation part and also java2ParentDelegation to true</strong></p>
<ul>What happens at server startup:</ul>
<p>Calling b.ear will fail due to Classcastexception on the shared classes.<br />
Why? The scoped application will use the already loaded class from the parent repository&#8217;s class cache.</p>
<p>We will go over these scenarios:<br />
1. Deploy A, Deploy B, startserver, undeploy A, Access B<br />
2. Deploy A, Deploy B, startserver, Access App A , undeploy A, Access App B<br />
3. Deploy A, Deploy B, startserver, Access App A , undeploy B, Access App A<br />
4. Deploy A, Deploy B, startserver, Access App A ,  Access App B, undeploy A, Access App B</p>
<p><strong>Case 1: Deploy A, Deploy B, startserver, undeploy A, Access B</strong></p>
<li> A.ear and B.ear deployed.<br />
displayClassInfo:</p>
<blockquote><p>
com.noelios.restlet.ext.servlet.ServerServlet Information<br />
Repository cache version:<br />
com.noelios.restlet.ext.servlet.ServerServlet(11c5b4).ClassLoader=org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
..org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet-1.1.1.jar<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet.ext.servlet-1.1.1.jar<br />
..org.jboss.system.server.NoAnnotationURLClassLoader@fcfa52<br />
..sun.misc.Launcher$AppClassLoader@7172ea<br />
&#8230;.file:/Volumes/Mustang/branch/JBoss_POS_20081204/jboss-4.2.2.GA-pos/bin/run.jar<br />
..sun.misc.Launcher$ExtClassLoader@b169f8<br />
&#8230;.file:/Library/Java/Extensions/jspComm.jar<br />
++++CodeSource: (file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet.ext.servlet-1.1.1.jar )<br />
Implemented Interfaces:<br />
### Instance0 found in UCL: org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
### Instance1 found in UCL: org.jboss.mx.loading.UnifiedClassLoader3@9c5cf5{ url=file:abc/deploy/tmp6517201656953000171B-0.0.1-SNAPSHOT.ear ,addedOrder=48}
</p></blockquote>
<p>-&gt;undeploy A</p>
<blockquote><p>
com.noelios.restlet.ext.servlet.ServerServlet Information<br />
Not loaded in repository cache<br />
### Instance0 found in UCL: org.jboss.mx.loading.UnifiedClassLoader3@151ce0{ url=file:abc/deploy/tmp3581146229639141667B-0.0.1-SNAPSHOT.ear ,addedOrder=48}
</p></blockquote>
<p>-&gt;Access AppB via
<ul>http://localhost:8080/appb/services/all</ul>
<blockquote><p>
2009-09-26 19:46:28,567 ERROR [http-127.0.0.1-8080-1 - [ServerServlet]] &#8211; Allocate exception for servlet ServerServlet<br />
java.lang.NullPointerException<br />
	at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassLoader.java:630)<br />
	at java.lang.ClassLoader.loadClass(ClassLoader.java:316)<br />
	at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:474)<br />
	at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:415)<br />
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)<br />
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
</p></blockquote>
<p>What happened here?? JBoss maps up A.ear to be the classloader for ServerServlet. JBoss hasnt loaded the ServerServlet yet. When B.ear wants ServerServlet class, JBoss checks its UCL&#8217;s and sees that A.ear can load it. Since we undeloyed A.ear, we get this nullptrexception
</li>
<p><strong>Case 2: Deploy A, Deploy B, startserver,Access App A , undeploy A, Access App B</strong></p>
<li> A.ear and B.ear deployed.<br />
displayClassInfo:</p>
<blockquote><p>
com.noelios.restlet.ext.servlet.ServerServlet Information<br />
Repository cache version:<br />
com.noelios.restlet.ext.servlet.ServerServlet(11c5b4).ClassLoader=org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
..org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet-1.1.1.jar<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet.ext.servlet-1.1.1.jar<br />
..org.jboss.system.server.NoAnnotationURLClassLoader@fcfa52<br />
..sun.misc.Launcher$AppClassLoader@7172ea<br />
&#8230;.file:/Volumes/Mustang/branch/JBoss_POS_20081204/jboss-4.2.2.GA-pos/bin/run.jar<br />
..sun.misc.Launcher$ExtClassLoader@b169f8<br />
&#8230;.file:/Library/Java/Extensions/jspComm.jar<br />
++++CodeSource: (file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet.ext.servlet-1.1.1.jar )<br />
Implemented Interfaces:<br />
### Instance0 found in UCL: org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
### Instance1 found in UCL: org.jboss.mx.loading.UnifiedClassLoader3@9c5cf5{ url=file:abc/deploy/tmp6517201656953000171B-0.0.1-SNAPSHOT.ear ,addedOrder=48}
</p></blockquote>
<p>-&gt;Access AppA via
<ul>http://localhost:8080/appa/services/all</ul>
<p>-&gt;undeploy A</p>
<blockquote><p>
com.noelios.restlet.ext.servlet.ServerServlet Information<br />
Not loaded in repository cache<br />
### Instance0 found in UCL: org.jboss.mx.loading.UnifiedClassLoader3@151ce0{ url=file:abc/deploy/tmp3581146229639141667B-0.0.1-SNAPSHOT.ear ,addedOrder=48}
</p></blockquote>
<p>-&gt;Access AppB via
<ul>http://localhost:8080/appb/services/all</ul>
<blockquote><p>
java.lang.ClassCastException: com.apple.ist.retail.pos.b.restlet2.BApplication<br />
	com.noelios.restlet.ext.servlet.ServerServlet.createApplication(ServerServlet.java:282)<br />
	com.noelios.restlet.ext.servlet.ServerServlet.getApplication(ServerServlet.java:703)<br />
	com.noelios.restlet.ext.servlet.ServerServlet.init(ServerServlet.java:820)<br />
	com.apple.ist.retail.pos.b.servlet2.BServlet.init(BServlet.java:24)<br />
	javax.servlet.GenericServlet.init(GenericServlet.java:212)
</p></blockquote>
<p>What happened here? B.ear was linked up with the ServerServlet from A.ear. When A.ear was undeployed, the ServerServlet got loaded from B.ear and thus this ClassCastException
</li>
<p><strong>Case 3: Deploy A, Deploy B, startserver,Access App A , undeploy B, Access App A</strong></p>
<li> A.ear and B.ear deployed.<br />
displayClassInfo:</p>
<blockquote><p>
com.noelios.restlet.ext.servlet.ServerServlet Information<br />
Repository cache version:<br />
com.noelios.restlet.ext.servlet.ServerServlet(11c5b4).ClassLoader=org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
..org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet-1.1.1.jar<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet.ext.servlet-1.1.1.jar<br />
..org.jboss.system.server.NoAnnotationURLClassLoader@fcfa52<br />
..sun.misc.Launcher$AppClassLoader@7172ea<br />
&#8230;.file:/Volumes/Mustang/branch/JBoss_POS_20081204/jboss-4.2.2.GA-pos/bin/run.jar<br />
..sun.misc.Launcher$ExtClassLoader@b169f8<br />
&#8230;.file:/Library/Java/Extensions/jspComm.jar<br />
++++CodeSource: (file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet.ext.servlet-1.1.1.jar )<br />
Implemented Interfaces:<br />
### Instance0 found in UCL: org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
### Instance1 found in UCL: org.jboss.mx.loading.UnifiedClassLoader3@9c5cf5{ url=file:abc/deploy/tmp6517201656953000171B-0.0.1-SNAPSHOT.ear ,addedOrder=48}
</p></blockquote>
<p>-&gt;Access AppA via
<ul>http://localhost:8080/appa/services/all</ul>
<p>-&gt;undeploy B<br />
displayClassInfo:</p>
<blockquote><p>
com.noelios.restlet.ext.servlet.ServerServlet Information<br />
Repository cache version:<br />
com.noelios.restlet.ext.servlet.ServerServlet(11c5b4).ClassLoader=org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
..org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet-1.1.1.jar<br />
&#8230;.file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet.ext.servlet-1.1.1.jar<br />
..org.jboss.system.server.NoAnnotationURLClassLoader@fcfa52<br />
..sun.misc.Launcher$AppClassLoader@7172ea<br />
&#8230;.file:/Volumes/Mustang/branch/JBoss_POS_20081204/jboss-4.2.2.GA-pos/bin/run.jar<br />
..sun.misc.Launcher$ExtClassLoader@b169f8<br />
&#8230;.file:/Library/Java/Extensions/jspComm.jar<br />
++++CodeSource: (file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear-contents/lib/com.noelios.restlet.ext.servlet-1.1.1.jar )<br />
Implemented Interfaces:<br />
### Instance0 found in UCL: org.jboss.mx.loading.UnifiedClassLoader3@5a84be{ url=file:abc/deploy/tmp7314601894329309101A-0.0.1-SNAPSHOT.ear ,addedOrder=47}
</p></blockquote>
<p>-&gt;Access AppA : No issues
</li>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/praveenmyls.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/praveenmyls.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/praveenmyls.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/praveenmyls.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/praveenmyls.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/praveenmyls.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/praveenmyls.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/praveenmyls.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/praveenmyls.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/praveenmyls.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/praveenmyls.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/praveenmyls.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/praveenmyls.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/praveenmyls.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=praveenmyls.wordpress.com&amp;blog=7888252&amp;post=167&amp;subd=praveenmyls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://praveenmyls.wordpress.com/2009/09/24/jboss-classloading-demystified/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/89c59c9a8fece693eac5b6b492ebe655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">praveenmyls</media:title>
		</media:content>
	</item>
	</channel>
</rss>
