<?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>Bells and Whistles</title>
	<atom:link href="http://expertodev.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://expertodev.wordpress.com</link>
	<description>An Exclusive Blog For Java Programmers</description>
	<lastBuildDate>Fri, 18 Feb 2011 10:09:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='expertodev.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Bells and Whistles</title>
		<link>http://expertodev.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://expertodev.wordpress.com/osd.xml" title="Bells and Whistles" />
	<atom:link rel='hub' href='http://expertodev.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Java HTTP proxy settings</title>
		<link>http://expertodev.wordpress.com/2011/02/18/java-http-proxy-settings/</link>
		<comments>http://expertodev.wordpress.com/2011/02/18/java-http-proxy-settings/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 10:09:50 +0000</pubDate>
		<dc:creator>Anoop Somasundaran</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Servers]]></category>

		<guid isPermaLink="false">http://expertodev.wordpress.com/?p=144</guid>
		<description><![CDATA[Some of you might have come across http connectivity issues especially when you setup your java application on staging or production servers. Due to security reasons, access to internet/external URLs within an organization is often through proxy servers. When I was trying to setup one of the java web applications on staging and production servers, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=144&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some of you might have come across http connectivity issues especially when you setup your java application on staging or production servers. Due to security reasons, access to internet/external URLs within an organization is often through proxy servers. When I was trying to setup one of the java web applications on staging and production servers, the application was throwing an exception – ‘java.net.ConnectException: Connection refused’ when it tries to make an HTTP connection to get the content. However we were not getting this error in our development environment. I was almost sure that the problem could be because of the proxy servers used in the production and staging setup. The proxy server was blocking outbound traffic from the application servers.</p>
<p>After some trial and error attempts, I found the following solution to fix this issue.</p>
<p>I was using tomcat as the application server and I had to add the following lines in catalina.sh</p>
<p><code>JAVA_OPTS="$JAVA_OPTS -Dhttp.proxyHost=ProxyURL"<br />
JAVA_OPTS="$JAVA_OPTS -Dhttp.proxyPort=ProxyPort"<br />
JAVA_OPTS="$JAVA_OPTS -Dhttp.proxyUser=UserName" (Optional)<br />
JAVA_OPTS="$JAVA_OPTS -Dhttp.proxyPassword=Password" (Optional)</code></p>
<p>Note: Please don’t copy and paste the above lines into Linux environment. The double quotes might give you issues on Linux if you copy double quotes from windows. I have faced this issue several times <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>This problem can also be resolved by adding the following lines in your code.<br />
<code>System.getProperties().put("http.proxyHost", "ProxyURL");<br />
System.getProperties().put("http.proxyPort", "ProxyPort");<br />
System.getProperties().put("http.proxyUser", "UserName"); (Optional)<br />
System.getProperties().put("http.proxyPassword", "Password"); (Optional)</code></p>
<p>Adding the settings at the server level seems to be a much better option though.</p>
<br />Filed under: <a href='http://expertodev.wordpress.com/category/java/'>Java</a>, <a href='http://expertodev.wordpress.com/category/linux/'>Linux</a>, <a href='http://expertodev.wordpress.com/category/servers/tomcat/'>Tomcat</a>, <a href='http://expertodev.wordpress.com/category/unix/'>Unix</a> Tagged: <a href='http://expertodev.wordpress.com/tag/java/'>Java</a>, <a href='http://expertodev.wordpress.com/tag/linux/'>Linux</a>, <a href='http://expertodev.wordpress.com/tag/servers/'>Servers</a>, <a href='http://expertodev.wordpress.com/tag/tomcat/'>Tomcat</a>, <a href='http://expertodev.wordpress.com/tag/unix/'>Unix</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/expertodev.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/expertodev.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/expertodev.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/expertodev.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/expertodev.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/expertodev.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/expertodev.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/expertodev.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/expertodev.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/expertodev.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/expertodev.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/expertodev.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/expertodev.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/expertodev.wordpress.com/144/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=144&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://expertodev.wordpress.com/2011/02/18/java-http-proxy-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/80ec04c79b6b1bce102e9ac8d7f13fb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anoop Somasundaran</media:title>
		</media:content>
	</item>
		<item>
		<title>Shell script to compare two directories and copy missing files</title>
		<link>http://expertodev.wordpress.com/2010/01/20/shell-script-to-compare-two-directories-and-copy-missing-files/</link>
		<comments>http://expertodev.wordpress.com/2010/01/20/shell-script-to-compare-two-directories-and-copy-missing-files/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 15:10:39 +0000</pubDate>
		<dc:creator>Anoop Somasundaran</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://expertodev.wordpress.com/?p=120</guid>
		<description><![CDATA[The following shell script compares two directories and copies missing files from the source directory to the destination directory. Please note that script doesn’t compare sub-directories. You can execute the scrip by supplying two parameters – source directory and destination directory. /bin/bash ##################################################################### # Created by Anoop Somasundaran # This script takes two parameters- from_directory [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=120&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The following shell script compares two directories and copies missing files from the source directory to the destination directory. Please note that script doesn’t compare sub-directories. You can execute the scrip by supplying two parameters – source directory and destination directory.</p>
<p><code>/bin/bash<br />
#####################################################################<br />
# Created by Anoop Somasundaran<br />
# This script takes two parameters- from_directory and to_directory.<br />
# It finds the file differences and copy the files to the destination directory.<br />
# Only missing files are copied. Sub directories are not considered<br />
#####################################################################<br />
<br />
# Check the number of input parameters. If two parameters are given go ahead, else exit<br />
if [ $# -eq 2 ]<br />
then<br />
        FROMDIR=$1<br />
        TODIR=$2<br />
else<br />
        echo "Usage: script.sh fromdir todir"<br />
        exit<br />
fi<br />
<br />
# Validate from_directory<br />
if [ ! -d "${FROMDIR}" ]<br />
then<br />
        echo "Directory ${FROMDIR} does not exist!!"<br />
        exit<br />
fi<br />
<br />
# Validate to_directory<br />
if [ ! -d "${TODIR}" ]<br />
then<br />
       echo "Directory ${TODIR} does not exist!!"<br />
       exit<br />
fi<br />
<br />
cd ${FROMDIR}<br />
for i in `find . -type f`<br />
do<br />
    if [ ! -f ${TODIR}/$i ]<br />
    then<br />
        cp $i ${TODIR}/$i<br />
    fi<br />
<br />
done<br />
</code></p>
<p><strong>How to run the above script?</strong></p>
<p>1)	Copy the above script into a .sh file (script.sh)<br />
2)	You need to supply the complete path for source and destination directories while running the script.</p>
<p><code>$sh /home/script.sh /tmp/test1/ /tmp/test2/</code><br /></p>
<br />Posted in Linux, Unix Tagged: Linux, Unix <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/expertodev.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/expertodev.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/expertodev.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/expertodev.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/expertodev.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/expertodev.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/expertodev.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/expertodev.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/expertodev.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/expertodev.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/expertodev.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/expertodev.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/expertodev.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/expertodev.wordpress.com/120/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=120&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://expertodev.wordpress.com/2010/01/20/shell-script-to-compare-two-directories-and-copy-missing-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/80ec04c79b6b1bce102e9ac8d7f13fb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anoop Somasundaran</media:title>
		</media:content>
	</item>
		<item>
		<title>Configuring Apache VirtualHost and Tomcat using mod_jk on Linux</title>
		<link>http://expertodev.wordpress.com/2009/12/27/configuring-apache-virtualhost-and-tomcat-using-mod_jk-on-linux/</link>
		<comments>http://expertodev.wordpress.com/2009/12/27/configuring-apache-virtualhost-and-tomcat-using-mod_jk-on-linux/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 13:14:42 +0000</pubDate>
		<dc:creator>Anoop Somasundaran</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://expertodev.wordpress.com/?p=88</guid>
		<description><![CDATA[In one of my projects I was asked to configure Apache Virtual host and Tomcat on Linux. Though I had found few useful links in Google, I couldn’t find a complete tutorial which could satisfy my requirements. Hence I had to take points from different tutorials to configure Apache virtualhost and tomcat. Given below is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=88&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In one of my projects I was asked to configure Apache Virtual host and Tomcat on Linux. Though I had found few useful links in Google, I couldn’t find a complete tutorial which could satisfy my requirements. Hence I had to take points from different tutorials to configure Apache virtualhost and tomcat.</p>
<p>Given below is the configuration which worked for me.</p>
<h2>Tomcat configuration:</h2>
<p>I have described how to setup virtual host in tomcat in one of my earlier posts.<br />
If you have only one application running on tomcat then you can simply keep it inside the webapps/ROOT folder and virtual host setup may not be required. If you want to remove the application name coming up in the url (localhost:8080/application), you need to either keep the application inside ROOT folder of webapps(this would be possible if you have only one application) or you need to setup virtual host. I had to setup virtual hosts in tomcat since I had multiple applications running on the tomcat.</p>
<p><strong>Step 1: Configuring Tomcat server.xml</strong></p>
<p>Add the following entry in server.xml (TOMCAT_HOME/conf/server.xml). This should be added below to &lt;Host name=”localhost” ..&gt;…….&lt;/Host&gt;</p>
<p><code>&lt;Host name="www.domain1.com" appBase="/opt/tomcat/www.domain1.com" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"/&gt;<br />
<br />&lt;Host name="www.domain2.com" appBase="/opt/tomcat/www.domain2.com" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"/&gt;</code></p>
<p><strong>Step 2: Deploying the applications</strong></p>
<p>Create folders www.domain1.com and www.domain2.com inside TOMCAT_HOME. Copy the webapp1 to www.domain1.com and webapp2 to www.domain2.com. Rename both webapp1 and webapp2 to ROOT (ensure ROOT should be in uppercase).</p>
<p>The following should exist after the completion of step2.</p>
<p>TOMCAT_HOME/www.domain1.com/ROOT/webapp1_contents<br />
TOMCAT_HOME/www.domain2.com/ROOT/webapp2_contents</p>
<p><strong>Step 3: Enabling Tomcat Manager Console for the new hosts</strong></p>
<p>The default tomcat manager console (http://localhost:8080/manager/html) will not be available for the new hosts. Manager Console needs to be enabled for the application deployed under each virtual host. This can be done by following the below steps.</p>
<p>Create folders www.domain1.com and www.domain2.com under TOMCAT_HOME/conf/Catalina/. Copy manager.xml from TOMCAT_HOME/conf/Catalina/localhost/ to TOMCAT_HOME/conf/Catalina/www.domain1.com/ and TOMCAT_HOME/conf/Catalina/www.domain1.com/.</p>
<p>The tomcat manager console for the hosts www.domain1.com and www.domain2.com can be accessed using the URLs http://www.domain1.com:8080/manager/html and http://www.domain2.com:8080/manager/html respectively.</p>
<p><strong>Step 4: Adding host entry for each virtualhost</strong></p>
<p>In production/staging environments normally the domain would be mapped to the IP of the machine. However in development environments we need to map the IP with the virtualhost. This can be done by adding a host entry in the host file. The ‘hosts’ file is typically located at C:\WINDOWS\system32\drivers\etc\hosts on windows and /etc/hosts on UNIX</p>
<p><code>Machine-IP www.domain1.com<br />
Machine-IP www.domain2.com</code></p>
<p><strong>Step 5: verifying the virtualhosts</strong></p>
<p>Restart the Tomcat Server and check whether the webapp1 and webapp2 are accessible using the URLs http://www.domain1.com:8080 and http://www.domain2.com:8080 respectively.</p>
<h2>Apache configuration:</h2>
<p><strong>Installing and configuring mod_jk connector:</strong></p>
<p>Mod_jk can be used as a connector between Apache and tomcat. You may need to download the connector from the url http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/. </p>
<p>Follow the steps given below to install and configure the mod_jk</p>
<p><strong>Unzip the tar file</strong><br />
<code>tar -xvzf tomcat-connectors-1.2.26-src.tar.gz</code></p>
<p><strong>Move the connector to the appropriate folder</strong><br />
<code>mv tomcat-connectors-1.2.26-src /opt/tomcat-connectors</code></p>
<p><strong>Building the connector:</strong></p>
<p>Go to the native folder of the connector and run the buildconf command</p>
<p><code>./buildconf.sh</code></p>
<p>Check whether apx (Apache Extension Tool) is installed on the machine. If it is installed it is normally located at /usr/sbin/apxs or /usr/bin/apxs directory. You can use the find command to find out the apx installation directory</p>
<p><code>find / -name apxs</code></p>
<p>If apx is not installed, it has to be installed before continuing with the setup. It can be installed using the yum command.</p>
<p><code>yum install httpd-devel</code></p>
<p><strong>Configuring the connector</strong><br />
This has to be executed from the native folder inside the connector directory.<br />
<code>./configure --with-apxs=/usr/sbin/apxs</code><br />
Note: apxs(2) should be pointed to the correct installation directory in the above command</p>
<p><strong>Making the connector</strong><br />
<code>make</code></p>
<p>This will produce a modjk.so file. Copy the file to modules folder of apache.</p>
<p><code>cp /opt/apache-tomcat-connectors/native/apache-2.0/mod_jk.so  /etc/httpd/modules/</code></p>
<h2>Configuring workers file:</h2>
<p>Create the file workers.properties in the folder /etc/httpd/conf/<br />
<code><br />
$cd /etc/httpd/conf/<br />
$touch workers.properties<br />
</code></p>
<p>Copy the content given below in to the workers.properties<br />
<code><br />
workers.tomcat_home=/opt/tomcat<br />
workers.java_home= /opt/jdk1.6.0_11<br />
ps=/<br />
worker.list=app1worker,app2worker<br />
worker.app1worker.port=8009<br />
worker.app1worker.host=www.domain1.com<br />
worker.app1worker.type=ajp13<br />
worker.app2worker.port=8009<br />
worker.app2worker.host=www.domain1.com<br />
worker.app2worker.type=ajp13<br />
</code></p>
<p><u><strong>Configuring httpd.conf:</strong></u></p>
<ul>
<li>Including the mod_jk.so module in the module section</li>
<p><code>LoadModule jk_module /etc/httpd/modules/mod_jk.so</code></p>
<li>Including the mod_jk.so properties above the virtual host section</li>
<p><code>JkWorkersFile "/etc/httpd/conf/workers.properties"<br />
JkLogFile "/etc/httpd/logs/mod_jk.log"<br />
JkLogLevel info<br />
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"<br />
# JkOptions indicate to send SSL KEY SIZE,<br />
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories<br />
# JkRequestLogFormat set the request format<br />
JkRequestLogFormat "%w %V %T"<br />
</code><br />
<strong>Adding virtual host for the application</strong><br />
It is possible to setup name-based (More than one web site per IP address) and IP-based (An IP address for each web site) virtual hosts in Apache. You can choose the type of virtual hosts based on your requirement. In my case, I had different websites sharing the same IP and hence I had to setup name-based virtualhosts. More about virtualhosts is available on Apache website (http://httpd.apache.org/docs/2.0/vhosts/).</p>
<li>Add the following in the beginning of the virtual host section in httpd.conf</li>
<p><code>NameVirtualHost *:80</code></p>
<li>Add the vitual host directive for each application in httpd.conf</li>
<p><code>&lt;VirtualHost *:80&gt;<br />
    ServerAdmin admin@www.mydomain1.com<br />
    DocumentRoot "/opt/tomcat/mydomain1/ROOT/"<br />
    ServerName www.mydomain1.com<br />
    ErrorLog logs/www.mydomain1.com_log<br />
    CustomLog logs/www.mydomain1.com_log combined<br />
JkMount / app1worker<br />
JkMount /* app1worker<br />
&lt;/VirtualHost&gt;<br />
<br />
&lt;VirtualHost *:80&gt;<br />
    ServerAdmin admin@www.mydomain2.com<br />
    DocumentRoot "/opt/tomcat/mydomain2ROOT/"<br />
    ServerName www.mydomain2com<br />
    ErrorLog logs/www.mydomain2com_log<br />
    CustomLog logs/www.mydomain2com_log combined<br />
JkMount / app2orker<br />
JkMount /* app2worker<br />
&lt;/VirtualHost&gt;<br />
</code>
</ul>
<p><strong>Restart Apache:</strong><br />
Restart apache server for the above changes to take effect. Now webapp1 and webapp2 should be accessible using the URLs http://www.domain1.com and http://www.domain2.com respectively.</p>
<br />Posted in Apache, Servers, Tomcat, Unix Tagged: Apache, Linux, Servers, Tomcat <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/expertodev.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/expertodev.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/expertodev.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/expertodev.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/expertodev.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/expertodev.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/expertodev.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/expertodev.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/expertodev.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/expertodev.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/expertodev.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/expertodev.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/expertodev.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/expertodev.wordpress.com/88/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=88&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://expertodev.wordpress.com/2009/12/27/configuring-apache-virtualhost-and-tomcat-using-mod_jk-on-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/80ec04c79b6b1bce102e9ac8d7f13fb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anoop Somasundaran</media:title>
		</media:content>
	</item>
		<item>
		<title>How to setup virtualhost in Tomcat</title>
		<link>http://expertodev.wordpress.com/2009/06/28/how-to-setup-virtualhost-in-tomcat/</link>
		<comments>http://expertodev.wordpress.com/2009/06/28/how-to-setup-virtualhost-in-tomcat/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 12:01:57 +0000</pubDate>
		<dc:creator>Anoop Somasundaran</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Servers]]></category>

		<guid isPermaLink="false">http://expertodev.wordpress.com/?p=74</guid>
		<description><![CDATA[I recently had to configure a couple of different tomcat web applications as virtual hosts each one with its own domain. I was accessing these applications using the URL http://localhost:8080/app1 and http://localhost:8080/app2. The basic intention behind the virtual host setup was to avoid the web application name from the url (app1/app2) and the applications to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=74&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently had to configure a couple of different tomcat web applications as virtual hosts each one with its own domain. I was accessing these applications using the URL http://localhost:8080/app1 and http://localhost:8080/app2. The basic intention behind the virtual host setup was to avoid the web application name from the url (app1/app2) and the applications to be accessed using http://www.domain1.com and http://www.domain2.com/ . If there was only one web application I could have achieved it by keeping the web application inside webapps/ROOT folder. </p>
<p>Though I am using Apache as front server which was used to forward the dynamic content request to tomcat, I am not describing the Apache-Tomcat configuration in this article. I have described the Apache-Virtualhost-Tomcat-configuration in another article.</p>
<p><strong>Step 1: Configuring Tomcat server.xml</strong></p>
<p>Add the following entry in server.xml (TOMCAT_HOME/conf/server.xml). This should be added below to &lt;Host name=”localhost” ..&gt;…….&lt;/Host&gt;</p>
<p><code>&lt;Host name="www.domain1.com" appBase="/opt/tomcat/www.domain1.com" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"/&gt;<br />
<br />&lt;Host name="www.domain2.com" appBase="/opt/tomcat/www.domain2.com" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"/&gt;</code></p>
<p><strong>Step 2: Deploying the applications</strong></p>
<p>Create folders www.domain1.com and www.domain2.com inside TOMCAT_HOME. Copy the webapp1 to www.domain1.com and webapp2 to www.domain2.com. Rename both webapp1 and webapp2 to ROOT (ensure ROOT should be in uppercase).</p>
<p>The following should exist after the completion of step2.</p>
<p>TOMCAT_HOME/www.domain1.com/ROOT/webapp1_contents<br />
TOMCAT_HOME/www.domain2.com/ROOT/webapp2_contents</p>
<p><strong>Step 3: Enabling Tomcat Manager Console for the new hosts</strong></p>
<p>The default tomcat manager console (http://localhost:8080/manager/html) will not be available for the new hosts. Manager Console needs to be enabled for the application deployed under each virtual host. This can be done by following the below steps.</p>
<p>Create folders www.domain1.com and www.domain2.com under TOMCAT_HOME/conf/Catalina/. Copy manager.xml from TOMCAT_HOME/conf/Catalina/localhost/ to TOMCAT_HOME/conf/Catalina/www.domain1.com/ and TOMCAT_HOME/conf/Catalina/www.domain1.com/.</p>
<p>The tomcat manager console for the hosts www.domain1.com and www.domain2.com can be accessed using the URLs http://www.domain1.com:8080/manager/html and http://www.domain2.com:8080/manager/html respectively.</p>
<p><strong>Step 4: Adding host entry for each virtualhost</strong></p>
<p>In production/staging environments normally the domain would be mapped to the IP of the machine. However in development environments we need to map the IP with the virtualhost. This can be done by adding a host entry in the host file. The ‘hosts’ file is typically located at C:\WINDOWS\system32\drivers\etc\hosts on windows and /etc/hosts on UNIX</p>
<p><code>Machine-IP www.domain1.com<br />
Machine-IP www.domain2.com</code></p>
<p><strong>Step 5: verifying the virtualhosts</strong></p>
<p>Restart the Tomcat Server and check whether the webapp1 and webapp2 are accessible using the URLs http://www.domain1.com:8080 and http://www.domain2.com:8080 respectively.</p>
<p>If you are using Apache web server and Tomcat, you can leave Tomcat running on port 8080. Otherwise simply change the port of tomcat from 8080 to 80.</p>
<br />Posted in Java, Tomcat Tagged: Servers, Tomcat <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/expertodev.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/expertodev.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/expertodev.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/expertodev.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/expertodev.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/expertodev.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/expertodev.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/expertodev.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/expertodev.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/expertodev.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/expertodev.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/expertodev.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/expertodev.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/expertodev.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=74&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://expertodev.wordpress.com/2009/06/28/how-to-setup-virtualhost-in-tomcat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/80ec04c79b6b1bce102e9ac8d7f13fb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anoop Somasundaran</media:title>
		</media:content>
	</item>
		<item>
		<title>Javascript error: submit is not a function</title>
		<link>http://expertodev.wordpress.com/2009/06/26/javascript-error-submit-is-not-a-function/</link>
		<comments>http://expertodev.wordpress.com/2009/06/26/javascript-error-submit-is-not-a-function/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 02:21:21 +0000</pubDate>
		<dc:creator>Anoop Somasundaran</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://expertodev.wordpress.com/?p=70</guid>
		<description><![CDATA[You might have got this javascript error when you were trying to submit the form using javascript. When I got this error for the first time it surprised me because I had used submit method many times to submit the form using javascript. This error wasted a couple of hours of mine to find out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=70&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>You might have got this javascript error when you were trying to submit the form using javascript. When I got this error for the first time it surprised me because I had used submit method many times to submit the form using javascript. This error wasted a couple of hours of mine to find out what was going wrong.</p>
<p>The reason for this error is that you might be using a submit button named ‘submit’ which causes a conflict in javascript since the submit method is already bound to that button.</p>
<p><code>&lt;input name="submit" type="submit" value="download" /&gt;<br />
Or<br />
&lt;html:submit property="submit"/&gt; in struts form.<br />
</code></p>
<p>Changing the name of the button to anything other that submit will solve the problem and submit() call in your javascript will now work.</p>
<p><code>&lt;input name="download" type="submit" value="download" /&gt;</code></p>
<br />Posted in Javascript Tagged: Javascript <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/expertodev.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/expertodev.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/expertodev.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/expertodev.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/expertodev.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/expertodev.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/expertodev.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/expertodev.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/expertodev.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/expertodev.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/expertodev.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/expertodev.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/expertodev.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/expertodev.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=70&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://expertodev.wordpress.com/2009/06/26/javascript-error-submit-is-not-a-function/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/80ec04c79b6b1bce102e9ac8d7f13fb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anoop Somasundaran</media:title>
		</media:content>
	</item>
		<item>
		<title>How to take Java Thread Dump?</title>
		<link>http://expertodev.wordpress.com/2009/05/30/how-to-take-java-thread-dump/</link>
		<comments>http://expertodev.wordpress.com/2009/05/30/how-to-take-java-thread-dump/#comments</comments>
		<pubDate>Sat, 30 May 2009 10:26:29 +0000</pubDate>
		<dc:creator>Anoop Somasundaran</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Performance Tuning]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://expertodev.wordpress.com/?p=57</guid>
		<description><![CDATA[Full Thread Dump is a complete list of active threads. A java thread dump is a way of finding out what each thread in the JVM is doing at a particular point of time. This is especially useful when your java application seems to hang when running under load. Thread dump will help you to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=57&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Full Thread Dump is a complete list of active threads. A java thread dump is a way of finding out what each thread in the JVM is doing at a particular point of time. This is especially useful when your java application seems to hang when running under load. Thread dump will help you to find out where the threads are stuck.</p>
<p>A sample thread dump is given below</p>
<p><code>2009-04-28 05:21:57<br />
Full thread dump Java HotSpot(TM) 64-Bit Server VM (11.2-b01 mixed mode):<br />
<br />
"Keep-Alive-Timer" daemon prio=10 tid=0x000000005459ec00 nid=0x78d8 waiting on condition [0x000000004aa2c000..0x000000004aa2cc10]<br />
   java.lang.Thread.State: TIMED_WAITING (sleeping)<br />
	at java.lang.Thread.sleep(Native Method)<br />
	at sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:149)<br />
	at java.lang.Thread.run(Thread.java:619)<br />
<br />
"Thread-349" daemon prio=10 tid=0x0000000054ea4c00 nid=0x700b runnable [0x000000004ab2d000..0x000000004ab2db90]<br />
   java.lang.Thread.State: RUNNABLE<br />
	at java.net.SocketInputStream.socketRead0(Native Method)<br />
	at java.net.SocketInputStream.read(SocketInputStream.java:129)<br />
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)<br />
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)<br />
	at java.io.BufferedInputStream.read(BufferedInputStream.java:317)<br />
	- locked  (a java.io.BufferedInputStream)<br />
	at com.sun.jndi.ldap.Connection.run(Connection.java:805)<br />
	at java.lang.Thread.run(Thread.java:619)<br />
</code></p>
<p>Each section in thread dump indicates what the thread was doing.</p>
<p><u><strong>How to take thread dump on UNIX:</strong></u></p>
<p>First, find the process id by looking in the process table. You can generally get the process numbers of all running Java processes with the command:</p>
<p>ps axf | grep java</p>
<p>Run the following command to take the thread dump.</p>
<p>Kill –QUIT process_id</p>
<p>The thread dump will be sent to where ever the standard output is redirected to. (In tomcat, normally the thread dump will be sent to TOMCAT_HOME/logs/Catalina.out)</p>
<p>QUIT signal does not actually kill the java process. The thread dump will be sent to the standard output and the process will continue.</p>
<p><u><strong>How to take thread dump on Windows:</strong></u></p>
<p>press CTRL+Break</p>
<p>The thread dump is printed in the command window, and you must cut / paste to a separate file in order to continue working on it. </p>
<p><u><strong>What happens when you take thread dump?</strong></u></p>
<p>1.	The Java process is paused &#8212; all threads simply stop dead in their tracks<br />
2.	The Main java process asks each thread in turn to give a complete account of what they&#8217;re doing<br />
3.	The thread dump is sent to standard error, or somewhere else, depending on your Java vendor<br />
4.	The Java process is unpaused &#8212; all threads simply continue where they left off.<br />
The Java process usually keeps on running, and the whole process only takes a few seconds. Any activity, even input/output is suspended. After the thread dump has completed, everything returns back to normal, just as if nothing had happened.</p>
<br />Posted in Java, Performance Tuning, Servers, Tomcat Tagged: Java, Performance Tuning, Servers, Tomcat <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/expertodev.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/expertodev.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/expertodev.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/expertodev.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/expertodev.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/expertodev.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/expertodev.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/expertodev.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/expertodev.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/expertodev.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/expertodev.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/expertodev.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/expertodev.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/expertodev.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=57&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://expertodev.wordpress.com/2009/05/30/how-to-take-java-thread-dump/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/80ec04c79b6b1bce102e9ac8d7f13fb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anoop Somasundaran</media:title>
		</media:content>
	</item>
		<item>
		<title>Accessing JSPs kept outside the servlet context</title>
		<link>http://expertodev.wordpress.com/2009/05/23/accessing-jsps-kept-outside-the-servlet-context/</link>
		<comments>http://expertodev.wordpress.com/2009/05/23/accessing-jsps-kept-outside-the-servlet-context/#comments</comments>
		<pubDate>Sat, 23 May 2009 07:15:44 +0000</pubDate>
		<dc:creator>Anoop Somasundaran</dc:creator>
				<category><![CDATA[JSP]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://expertodev.wordpress.com/?p=20</guid>
		<description><![CDATA[In one of my projects we had a requirement to access the JSPs/HTMLs which were kept outside the servlet context. The following is the trick that worked for me. My application was located at /opt/TOMCAT_HOME/webapps/app1 and I had to access (include) the HTML files which were located at a different folder (/folder/files/). Configuring tomcat to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=20&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In one of my projects we had a requirement to access the JSPs/HTMLs which were kept outside the servlet context. The following is the trick that worked for me.</p>
<p>My application was located at /opt/TOMCAT_HOME/webapps/app1 and I had to access (include) the HTML files which were located at a different folder (/folder/files/).</p>
<p><strong>Configuring tomcat to access the Files:</strong></p>
<p>Add the following tag under the &lt;Host name=&quot;localhost&quot;.. tag in server.xml</p>
<p><code>&lt;Context path="/app1/files" docBase="/folder/files" debug="0" reloadable="true" crossContext="true"/&gt;</code></p>
<p>The files for the request http://localhost:8080/app1/files/file.jsp  will be fetched from the folder /folder/files.</p>
<p>This will work just fine if you call the JSPs directly. How ever if you want to include the files in a different context in your JSP neither  action nor  directive will work and will throw error saying that page cannot found.</p>
<p>In my project I had to include the files (HTMLs) in my JSP and the above tags didn’t work.</p>
<p>In this case the JSTL tag &lt;c:import&gt;  will work perfectly. Remember that you will have to provide the complete url (http://localhost:8080/app1/files) for the parameter ‘url’ and relative path /app1/files will not work.</p>
<p><code>&lt;c:import url="http://localhost:8080/app1/files" /&gt;</code></p>
<p>This will help to access the JSPs which are placed in a different context as well. However make sure that you are using crossContext=&#8221;true&#8221; in the context tag.</p>
<br />Posted in JSP, Tomcat Tagged: JSP, Tomcat <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/expertodev.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/expertodev.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/expertodev.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/expertodev.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/expertodev.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/expertodev.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/expertodev.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/expertodev.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/expertodev.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/expertodev.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/expertodev.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/expertodev.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/expertodev.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/expertodev.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=expertodev.wordpress.com&amp;blog=5042889&amp;post=20&amp;subd=expertodev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://expertodev.wordpress.com/2009/05/23/accessing-jsps-kept-outside-the-servlet-context/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/80ec04c79b6b1bce102e9ac8d7f13fb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anoop Somasundaran</media:title>
		</media:content>
	</item>
	</channel>
</rss>
