<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8241569963896140917</id><updated>2024-09-08T07:57:44.266-07:00</updated><category term="JSF"/><category term="JSR286"/><category term="web services"/><category term="Common Errors"/><category term="Portal"/><category term="Core Java"/><category term="IBM"/><category term="Portlets"/><category term="exchange server"/><title type='text'>Dilip&#39;s Blogs</title><subtitle type='html'>This blog covers many technologies under one roof.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-3456053685450069251</id><published>2014-04-30T11:55:00.003-07:00</published><updated>2014-05-28T10:28:33.609-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IBM"/><category scheme="http://www.blogger.com/atom/ns#" term="JSR286"/><category scheme="http://www.blogger.com/atom/ns#" term="Portal"/><category scheme="http://www.blogger.com/atom/ns#" term="Portlets"/><title type='text'>Portlets deployed with EAR file are not available in portal server</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
We usually deploying portlets on portal server and we know portal server always takes WAR file. Now we are working on business applications where we do not have only portlets. We have EJBs, JSP components, WCM plugins, custom workflows along with portlets.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
So keeping WAR file separate with other components is not a better idea. It is better to keep EAR file on WAS which will help us to deploy everything at one go.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Now we have some observations that deployment with EAR file is not reflecting portlets on portal environment. We got one thing that deployment of WAR file with portlets are reflecting portlets on portal environment but EAR with portlets and other components are not reflecting portlets on portal environment.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is happening since WAR deployment store portlets entry in portal DB but EAR deployment is not storing that entry.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
So applying this entry, we need to apply XML file on portal server. This will make available portlets on portal server.&lt;br /&gt;
&lt;br /&gt;
You will find reference links with following links,&lt;br /&gt;
http://publib.boulder.ibm.com/infocenter/wpdoc/v6r0/index.jsp?topic=/com.ibm.wp.ent.doc/wps/adprdplt.html&lt;br /&gt;
&lt;br /&gt;
http://wpcertification.blogspot.in/2009/03/installing-portlet.html&lt;br /&gt;
&lt;br /&gt;
There is one more thing which I would like to share,&lt;br /&gt;
when we apply XML on portal server, immediately WAR file [part of EAR] is available in portal server environment.&lt;br /&gt;
In case, you want to update any specific portlet, you can delete WAR file in portal environment and apply XML file again otherwise use &#39;update&#39; [instead of &#39;create&#39;] in XML file and apply on portal server.&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/3456053685450069251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/3456053685450069251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/3456053685450069251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/3456053685450069251'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2014/04/portlets-deployed-with-ear-file-are-not.html' title='Portlets deployed with EAR file are not available in portal server'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>0</thr:total><georss:featurename>Pune, Maharashtra, India</georss:featurename><georss:point>18.5204303 73.856743699999925</georss:point><georss:box>18.2795358 73.534020199999929 18.7613248 74.17946719999992</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-4082556579254971667</id><published>2013-06-25T11:50:00.000-07:00</published><updated>2013-06-25T11:51:27.910-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IBM"/><category scheme="http://www.blogger.com/atom/ns#" term="Portal"/><title type='text'>IBM portal 8 impersonation feature</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
IBM portal 8 has come up with latest feature which saves lot of time for developers. I had worked one of JEEE project in which I have used impersonation feature. For achieving this feature, J2EE developers are using too much code and testing efforts.&lt;br /&gt;
&lt;br /&gt;
I would like to describe in brief about impersonation feature for those who do not know about this. This feature is used to replicate the end user screen to understand the issue of end user.&lt;br /&gt;
Suppose user X has some issue in his web-site (using X&#39;s credentials). He raised request for web-site administrator and explained about his issue. For understanding the issue of user X, administrator will impersonate the screen of User X and will try to replicate the issue without informing user X.&lt;br /&gt;
This feature is useful to understand the end user functionality or support. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnXWT3Lghrz6zHpAaWKXYUBH3QrY6Db6VO3IOojYyQJRl3XRfW1HZPKKNZrdkpxJ1dr-vCxmdtWOFAoPG6bBOuQwXJkR2WDMW5d-LJzwZdC2bKktM7TDnG1lPldzgoBzkq0gr14eJPxeU/s1600/ibm_impersonation.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnXWT3Lghrz6zHpAaWKXYUBH3QrY6Db6VO3IOojYyQJRl3XRfW1HZPKKNZrdkpxJ1dr-vCxmdtWOFAoPG6bBOuQwXJkR2WDMW5d-LJzwZdC2bKktM7TDnG1lPldzgoBzkq0gr14eJPxeU/s1600/ibm_impersonation.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
IBM portal 8 provides this feature by default in portal server.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Keep tracking of this blog... I will add more post on portal new features which beats the market of other portal servers.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/4082556579254971667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/4082556579254971667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/4082556579254971667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/4082556579254971667'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2013/06/ibm-portal-8-impersonation-feature.html' title='IBM portal 8 impersonation feature'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnXWT3Lghrz6zHpAaWKXYUBH3QrY6Db6VO3IOojYyQJRl3XRfW1HZPKKNZrdkpxJ1dr-vCxmdtWOFAoPG6bBOuQwXJkR2WDMW5d-LJzwZdC2bKktM7TDnG1lPldzgoBzkq0gr14eJPxeU/s72-c/ibm_impersonation.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-5218682786336286058</id><published>2011-12-10T02:18:00.001-08:00</published><updated>2011-12-10T02:24:29.071-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Common Errors"/><title type='text'>Render parameter key or value must not be null or values be an empty array.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
This error occurs when we store render parameters in Java Array. Generally, we store all the render parameters in separate Java String object which are working perfectly fine. &lt;br /&gt;
&lt;br /&gt;
I tried this once with Java Array when I have more than 10 render parameters. I received the same error mentioned in subject line of post. The complete line of error is,&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;java.lang.IllegalArgumentException: Render parameter key or value must not be null or values be an empty array.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This issue occurred due to internal implementation of this method. It returns the value of a request parameter as a String, or null if the parameter does not exist.&lt;br /&gt;
&lt;br /&gt;
If I try the line below for receiving render parameter, we will receive the same error.&lt;br /&gt;
&lt;br /&gt;
String[] arrUserDetails1 = new String[2];&lt;br /&gt;
arrUserDetails[0] = request.getParameter(&quot;txtUserName&quot;);&lt;br /&gt;
&lt;br /&gt;
If I try the line below for recieving render parameter, This will be working fine.&lt;br /&gt;
&lt;br /&gt;
String[] arrUserDetails1 = new String[2];&lt;br /&gt;
String userName = request.getParameter(&quot;txtUserName&quot;);&lt;br /&gt;
arrUserDetails[0] = userName;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The conclusion is&lt;/b&gt;, render parameters can not store in to empty java array.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/5218682786336286058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/5218682786336286058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/5218682786336286058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/5218682786336286058'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2011/12/render-parameter-key-or-value-must-not.html' title='Render parameter key or value must not be null or values be an empty array.'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>0</thr:total><georss:featurename>India</georss:featurename><georss:point>20.593684 78.96288</georss:point><georss:box>5.536602 58.748036 35.650766 99.177724</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-5477135753396096284</id><published>2011-10-01T07:20:00.000-07:00</published><updated>2011-11-11T02:02:49.028-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Portal"/><title type='text'>Portlet namespace</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
First, I would like to highlight some point for those who are new in portal and they are not aware of namespaces. &lt;br /&gt;
&lt;br /&gt;
Basically &#39;namespace&#39; term is used in portal terminology and this term comes from portal itself. Let me clear this point in easy way. Suppose, we have a large amount of data in database and we want to fetch a particular data from database. So what we will do? We would need a unique id for identifying the data which you want to fetch.&lt;br /&gt;
&lt;br /&gt;
In a same way, portal manages all portlets with a unique id that called &#39;namespace&#39;. I think, I am able to describe this think in simpler way.&lt;br /&gt;
&lt;br /&gt;
Now the question is, if namespace is unique for each portlet so what happen if we use different instance of same portlet on a same page. The answer is, portal creates different namespaces for different instances.&lt;br /&gt;
&lt;br /&gt;
Ok, this is with a single user. What happens if we use the same instances (2 instances on same page) with other user. This is a tricky question if you do not know. Here the answer is, namespaces are similar for other user.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px; text-align: left;&quot;&gt;
&lt;b&gt;Conclusion&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
In portal server, namespaces are managed according to portlet instances. Namespaces are changed according to instances of portlet, these are not changed with change user (i.e. other users).&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/5477135753396096284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/5477135753396096284' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/5477135753396096284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/5477135753396096284'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2011/10/portlet-namespace.html' title='Portlet namespace'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-1902221720451334018</id><published>2011-05-04T11:51:00.000-07:00</published><updated>2011-11-05T06:02:49.544-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Common Errors"/><title type='text'>Portlet request dispatcher inclusion error MXParserFactory not found</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0039RWAVS&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;I would like to share one more experience which I have had with Web  services API used with portal environment (using portlets). In this, I prepared a Java Client (Stub) using Axis2 1.5 tool which contains Java classes and XML files. While compiling this code, I faced some issues. At first, I found an error which is,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4/21/11 20:08:58:000 IST] 00000052 PortletReques E com.ibm.ws.portletcontainer.&lt;br /&gt;
&lt;div id=&quot;:1q7&quot;&gt;&lt;wbr&gt;&lt;/wbr&gt;core.impl.&lt;wbr&gt;&lt;/wbr&gt;PortletRequestDispatcherImpl internal include EJPPC0172E: Error occurred during portlet request dispatcher inclusion&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp; java.lang.&lt;wbr&gt;&lt;/wbr&gt;NoClassDefFoundError: javax.xml.stream.&lt;wbr&gt;&lt;/wbr&gt;XMLStreamException&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.J9VMInternals.&lt;wbr&gt;&lt;/wbr&gt;verifyImpl(Native Method)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.J9VMInternals.&lt;wbr&gt;&lt;/wbr&gt;verify(J9VMInternals.java:68)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.J9VMInternals.&lt;wbr&gt;&lt;/wbr&gt;initialize(J9VMInternals.java:&lt;wbr&gt;&lt;/wbr&gt;129)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.yash.ews.connection.&lt;wbr&gt;&lt;/wbr&gt;EWSBaseConnector.&lt;init&gt;(&lt;wbr&gt;&lt;/wbr&gt;EWSBaseConnector.java:&lt;wbr&gt;&lt;/wbr&gt;113)&lt;/init&gt;&lt;/div&gt;&lt;div id=&quot;:1q7&quot;&gt;&lt;/div&gt;&lt;div id=&quot;:1q7&quot;&gt;The resolution of the error is to set JSR173_API.jar in lib directory of your application. Your compile time issues will get resolved. Once you run this application, you will get another error which is,&lt;/div&gt;&lt;div id=&quot;:1q7&quot;&gt;&lt;/div&gt;&lt;div id=&quot;:1q7&quot;&gt;[4/21/11 20:12:58:232 IST] 00000055 PortletReques E com.ibm.ws.portletcontainer.&lt;br /&gt;
&lt;div id=&quot;:1ps&quot;&gt;&lt;wbr&gt;&lt;/wbr&gt;core.impl.&lt;wbr&gt;&lt;/wbr&gt;PortletRequestDispatcherImpl internal include EJPPC0172E: Error occurred during portlet request dispatcher inclusion&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp; javax.xml.stream.&lt;wbr&gt;&lt;/wbr&gt;FactoryConfigurationError: Provider com.bea.xml.stream.&lt;wbr&gt;&lt;/wbr&gt;MXParserFactory not found&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.xml.stream.&lt;wbr&gt;&lt;/wbr&gt;FactoryFinder.newInstance(&lt;wbr&gt;&lt;/wbr&gt;FactoryFinder.java:72)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.xml.stream.&lt;wbr&gt;&lt;/wbr&gt;FactoryFinder.find(&lt;wbr&gt;&lt;/wbr&gt;FactoryFinder.java:176)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.xml.stream.&lt;wbr&gt;&lt;/wbr&gt;FactoryFinder.find(&lt;wbr&gt;&lt;/wbr&gt;FactoryFinder.java:92)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.xml.stream.&lt;wbr&gt;&lt;/wbr&gt;XMLInputFactory.newInstance(&lt;wbr&gt;&lt;/wbr&gt;XMLInputFactory.java:136)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axiom.om.util.&lt;wbr&gt;&lt;/wbr&gt;StAXUtils$7.run(StAXUtils.&lt;wbr&gt;&lt;/wbr&gt;java:505)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.security.&lt;wbr&gt;&lt;/wbr&gt;AccessController.doPrivileged(&lt;wbr&gt;&lt;/wbr&gt;AccessController.java:197)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axiom.om.util.&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.newXMLInputFactory(&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.java:495)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axiom.om.util.&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.getXMLInputFactory_&lt;wbr&gt;&lt;/wbr&gt;perClassLoader(StAXUtils.java:&lt;wbr&gt;&lt;/wbr&gt;566)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axiom.om.util.&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.getXMLInputFactory(&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.java:172)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axiom.om.util.&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.getXMLInputFactory(&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.java:137)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axiom.om.util.&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.&lt;wbr&gt;&lt;/wbr&gt;createXMLStreamReader(&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.java:224)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axiom.om.util.&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.&lt;wbr&gt;&lt;/wbr&gt;createXMLStreamReader(&lt;wbr&gt;&lt;/wbr&gt;StAXUtils.java:218)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.util.&lt;wbr&gt;&lt;/wbr&gt;XMLUtils.toOM(XMLUtils.java:&lt;wbr&gt;&lt;/wbr&gt;596)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.util.&lt;wbr&gt;&lt;/wbr&gt;XMLUtils.toOM(XMLUtils.java:&lt;wbr&gt;&lt;/wbr&gt;581)&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div id=&quot;:1ps&quot;&gt;&lt;/div&gt;&lt;div id=&quot;:1ps&quot;&gt;This error is related with XML parser. In java, we are aware of SAX parser however there is another parser StAX which is now used in latest programs and has the option of pausing and resuming the parsing process. Also works in similar streaming fashion. You can find this parser in &lt;b&gt;sjsxp.jar&lt;/b&gt; which resolve this issue.&lt;/div&gt;&lt;div id=&quot;:1ps&quot;&gt;You can get more knowledge for the same in &lt;a href=&quot;http://sjsxp.java.net/&quot;&gt;StAX&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/1902221720451334018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/1902221720451334018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/1902221720451334018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/1902221720451334018'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2011/05/portlet-request-dispatcher-inclusion.html' title='Portlet request dispatcher inclusion error MXParserFactory not found'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-8310758455927856584</id><published>2011-04-22T09:06:00.000-07:00</published><updated>2011-11-05T06:03:44.648-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Common Errors"/><title type='text'>HTTPSender Unable to sendViaPost to url</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B004PYDO64&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;I would like to share one of my experience which I have had with Web services API used with portal environment (using portlets). In this issue, what I found is, the issue is not related to Web services, XML and portal. This error occurs due to invalid certificate which is used in portal environment. The main cause of this issue is, you are preparing request for HTTPS URL and your portal is not using valid certificate. So what you need to do is? update your certificate and restart your App server and portal server (depending on your environment). Your issue will get resolved. Alternatively, if you do not want to update your certificate you would need to change the configuration of server for which you have prepared URL. In my case, I am preparing URL for Exchange server (from portal) and the URL is,&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;https://&amp;lt;Exchange server host&amp;gt;&lt;exchange host=&quot;&quot; server=&quot;&quot;&gt;/EWS/&lt;/exchange&gt;&lt;/b&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;b&gt;exchange.asmx&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
So you need to change your Exchange server configuration for HTTP (URL would be start from HTTP not with HTTPs).&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;For your information, the error details are,&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
[4/21/11 20:04:30:081 IST] 00000055 HTTPSender&amp;nbsp;&amp;nbsp;&amp;nbsp; I org.apache.axis2.transport.&lt;br /&gt;
&lt;div id=&quot;:1q4&quot;&gt;&lt;wbr&gt;&lt;/wbr&gt;http.HTTPSender sendViaPost Unable to sendViaPost to url[https://&lt;exchange host=&quot;&quot; server=&quot;&quot;&gt;&amp;lt;Exchange server host&amp;gt;/EWS/&lt;wbr&gt;&lt;/wbr&gt;exchange.asmx]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp; org.apache.axis2.AxisFault&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.AxisFault.&lt;wbr&gt;&lt;/wbr&gt;makeFault(AxisFault.java:430)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.transport.&lt;wbr&gt;&lt;/wbr&gt;http.SOAPMessageFormatter.&lt;wbr&gt;&lt;/wbr&gt;writeTo(SOAPMessageFormatter.&lt;wbr&gt;&lt;/wbr&gt;java:83)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.transport.&lt;wbr&gt;&lt;/wbr&gt;http.AxisRequestEntity.&lt;wbr&gt;&lt;/wbr&gt;writeRequest(&lt;wbr&gt;&lt;/wbr&gt;AxisRequestEntity.java:84)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.commons.httpclient.&lt;wbr&gt;&lt;/wbr&gt;methods.EntityEnclosingMethod.&lt;wbr&gt;&lt;/wbr&gt;writeRequestBody(&lt;wbr&gt;&lt;/wbr&gt;EntityEnclosingMethod.java:&lt;wbr&gt;&lt;/wbr&gt;495)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.commons.httpclient.&lt;wbr&gt;&lt;/wbr&gt;HttpMethodBase.writeRequest(&lt;wbr&gt;&lt;/wbr&gt;HttpMethodBase.java:1973)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.commons.httpclient.&lt;wbr&gt;&lt;/wbr&gt;HttpMethodBase.execute(&lt;wbr&gt;&lt;/wbr&gt;HttpMethodBase.java:993)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.commons.httpclient.&lt;wbr&gt;&lt;/wbr&gt;HttpMethodDirector.&lt;wbr&gt;&lt;/wbr&gt;executeWithRetry(&lt;wbr&gt;&lt;/wbr&gt;HttpMethodDirector.java:397)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.commons.httpclient.&lt;wbr&gt;&lt;/wbr&gt;HttpMethodDirector.&lt;wbr&gt;&lt;/wbr&gt;executeMethod(&lt;wbr&gt;&lt;/wbr&gt;HttpMethodDirector.java:170)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.commons.httpclient.&lt;wbr&gt;&lt;/wbr&gt;HttpClient.executeMethod(&lt;wbr&gt;&lt;/wbr&gt;HttpClient.java:396)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.commons.httpclient.&lt;wbr&gt;&lt;/wbr&gt;HttpClient.executeMethod(&lt;wbr&gt;&lt;/wbr&gt;HttpClient.java:346)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.transport.&lt;wbr&gt;&lt;/wbr&gt;http.AbstractHTTPSender.&lt;wbr&gt;&lt;/wbr&gt;executeMethod(&lt;wbr&gt;&lt;/wbr&gt;AbstractHTTPSender.java:557)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.transport.&lt;wbr&gt;&lt;/wbr&gt;http.HTTPSender.sendViaPost(&lt;wbr&gt;&lt;/wbr&gt;HTTPSender.java:199)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.transport.&lt;wbr&gt;&lt;/wbr&gt;http.HTTPSender.send(&lt;wbr&gt;&lt;/wbr&gt;HTTPSender.java:76)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.transport.&lt;wbr&gt;&lt;/wbr&gt;http.&lt;wbr&gt;&lt;/wbr&gt;CommonsHTTPTransportSender.&lt;wbr&gt;&lt;/wbr&gt;writeMessageWithCommons(&lt;wbr&gt;&lt;/wbr&gt;CommonsHTTPTransportSender.&lt;wbr&gt;&lt;/wbr&gt;java:400)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.transport.&lt;wbr&gt;&lt;/wbr&gt;http.&lt;wbr&gt;&lt;/wbr&gt;CommonsHTTPTransportSender.&lt;wbr&gt;&lt;/wbr&gt;invoke(&lt;wbr&gt;&lt;/wbr&gt;CommonsHTTPTransportSender.&lt;wbr&gt;&lt;/wbr&gt;java:225)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.engine.&lt;wbr&gt;&lt;/wbr&gt;AxisEngine.send(AxisEngine.&lt;wbr&gt;&lt;/wbr&gt;java:438)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.description.&lt;wbr&gt;&lt;/wbr&gt;OutInAxisOperationClient.send(&lt;wbr&gt;&lt;/wbr&gt;OutInAxisOperation.java:402)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.description.&lt;wbr&gt;&lt;/wbr&gt;OutInAxisOperationClient.&lt;wbr&gt;&lt;/wbr&gt;executeImpl(&lt;wbr&gt;&lt;/wbr&gt;OutInAxisOperation.java:229)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis2.client.&lt;wbr&gt;&lt;/wbr&gt;OperationClient.execute(&lt;wbr&gt;&lt;/wbr&gt;OperationClient.java:165)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.microsoft.schemas.&lt;wbr&gt;&lt;/wbr&gt;exchange.services._2006.&lt;wbr&gt;&lt;/wbr&gt;messages.ExchangeServicesStub.&lt;wbr&gt;&lt;/wbr&gt;findFolder(&lt;wbr&gt;&lt;/wbr&gt;ExchangeServicesStub.java:&lt;wbr&gt;&lt;/wbr&gt;8788)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.yash.ews.FindFolders.&lt;wbr&gt;&lt;/wbr&gt;findFolders(FindFolders.java:&lt;wbr&gt;&lt;/wbr&gt;81)&lt;/exchange&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/8310758455927856584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/8310758455927856584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/8310758455927856584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/8310758455927856584'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2011/04/httpsender-sendviapost-unable-to.html' title='HTTPSender Unable to sendViaPost to url'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-2548431285416726823</id><published>2011-04-01T23:21:00.000-07:00</published><updated>2011-04-02T00:44:23.061-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="web services"/><title type='text'>Creating Web services</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0596002505&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;As we all know, it&#39;s time to move on Web services. It provides a way of communication over network using two electronic devices.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Well, I had a chance in my project where I was consuming .NET Web services. At that time I was not aware of, how can I prepare my own Web services? Now I come to know the required steps for preparing .NET Web services and I am sharing the same to this post.  &lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px; text-align: left;&quot;&gt;&lt;b&gt;Steps to create Web services&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;As I am going to create .NET Web services for which I need to use a .NET tool which is Microsoft Visual Studio 2005. &lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;In order to create a new web service in VS 2005, please follow the steps below,&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;The figure below shows you the starting page of VS 2005.&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv8GpP35sc07tK3I5aeU6rQUkgrO_QcsXFfiGF9XH7TQB_k0XdYFWjEk_Hqhn2TqsKIeGjIn1ORJXesvOO0WHeTgpY6EGFzj4NWqbVoJhkCX4SPMPtpWwqMeWZFnoayVFrCHG5V_C3tYg/s1600/1.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;222&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv8GpP35sc07tK3I5aeU6rQUkgrO_QcsXFfiGF9XH7TQB_k0XdYFWjEk_Hqhn2TqsKIeGjIn1ORJXesvOO0WHeTgpY6EGFzj4NWqbVoJhkCX4SPMPtpWwqMeWZFnoayVFrCHG5V_C3tYg/s320/1.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Go to File &amp;gt;&amp;gt; New &amp;gt;&amp;gt; Web Site as,&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTZQWlXYAR0Ml_9dWpdVysEex869jbHZINDQi2gPTWx5yFtmwzL_qkIDm9UTPTPJ4dXiV7uAmLFoUL2zXtSzx9aBKmGu6tnsNzy0URzCphxY_zR2aThJAnNDYaoFWkLXg5TIxHSv0Tjz0/s1600/1.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;222&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTZQWlXYAR0Ml_9dWpdVysEex869jbHZINDQi2gPTWx5yFtmwzL_qkIDm9UTPTPJ4dXiV7uAmLFoUL2zXtSzx9aBKmGu6tnsNzy0URzCphxY_zR2aThJAnNDYaoFWkLXg5TIxHSv0Tjz0/s320/1.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Select ASP.NET Web Services and click OK.&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_i8hWNw8aGcjMU_zSG7V2ohb6EKFD4QHMpq2fBoOI59Ptz8bsYJwV336HSYEhpUOwL59Rf9bQDSGN_Wb7zNOJtyYZ50M03Kqi3-Ej0SQdNpFV5qDj_xCA7SL4nMW8NaIl6CKL9QZOCaE/s1600/3.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;211&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_i8hWNw8aGcjMU_zSG7V2ohb6EKFD4QHMpq2fBoOI59Ptz8bsYJwV336HSYEhpUOwL59Rf9bQDSGN_Wb7zNOJtyYZ50M03Kqi3-Ej0SQdNpFV5qDj_xCA7SL4nMW8NaIl6CKL9QZOCaE/s320/3.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;nbsp;You will get Services.cs file which you can see in VS 2005. Here you can add your web methods which is similar as public method of your Java classes. Here I have created one &#39;HelloWorld&#39; web method which you can see in Web service.&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS_qB9qDW4UIAR2eN7YkrzpNseZPJ7axMKICiGZe1ToJR-ClUq6St9lohhUEOQd8EPWJvxS1jackxtuzyyv20GpeL4_H58NoDrHFWzV8ZVfIh5vJB6ZrkESA8J2Xdlf59mdvAki9Bxf9Q/s1600/4.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS_qB9qDW4UIAR2eN7YkrzpNseZPJ7axMKICiGZe1ToJR-ClUq6St9lohhUEOQd8EPWJvxS1jackxtuzyyv20GpeL4_H58NoDrHFWzV8ZVfIh5vJB6ZrkESA8J2Xdlf59mdvAki9Bxf9Q/s320/4.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;You need to debug this code. Click the green arrow button in upper middle portion of VS screen. You will get the below pop up message .&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfw99Xa1NrhkYa8wox7i1mpAOQG1NEbBPktU4ivFHML-wjTM1me5Y7iNTcUIydr-4VcFOpc4Pj_swOnJ5EjtI7hyphenhyphengcZXo4n7tLGCi4RkUggzikA740_RsFMWW4br3GljEQIZdUNUukSGs/s1600/5.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;151&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfw99Xa1NrhkYa8wox7i1mpAOQG1NEbBPktU4ivFHML-wjTM1me5Y7iNTcUIydr-4VcFOpc4Pj_swOnJ5EjtI7hyphenhyphengcZXo4n7tLGCi4RkUggzikA740_RsFMWW4br3GljEQIZdUNUukSGs/s320/5.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;nbsp;You can see your service in browser with supported operations. As I have prepared this service for HelloWorld operation, you can see the same in figure below.&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-JnfdDjD2UKAqMFvnlPtMWuLZKDK2FUyojP61bwdaXVKySDcElgttlHa-v3GDvASLSA6UbsCU5OpLyG8cr8QnpPGWnydMP2_S-lGORRbIF7mb457YC01wgo-t8_3dmWeZIHF4byeABWM/s1600/6.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-JnfdDjD2UKAqMFvnlPtMWuLZKDK2FUyojP61bwdaXVKySDcElgttlHa-v3GDvASLSA6UbsCU5OpLyG8cr8QnpPGWnydMP2_S-lGORRbIF7mb457YC01wgo-t8_3dmWeZIHF4byeABWM/s320/6.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;nbsp;You can now check your operation by clicking the same and check the used soap messages which is interacting with Web service.&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimcPHMCgxtO25MG1wtzc7gdybkOi3q5SFjvhVe0XWWT8RA_DzOuUp6IFPFiHy0T-Ryx1P4NNsCyrxvNF17788BS9_rMnZ4lw-w6ebJVBdPI1lldgkH2QrugHz5mjdTs7RkITq4Z111XgA/s1600/7.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimcPHMCgxtO25MG1wtzc7gdybkOi3q5SFjvhVe0XWWT8RA_DzOuUp6IFPFiHy0T-Ryx1P4NNsCyrxvNF17788BS9_rMnZ4lw-w6ebJVBdPI1lldgkH2QrugHz5mjdTs7RkITq4Z111XgA/s320/7.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;As you can see in above figure, there is an invoke button. Once you click on this button, the web method will execute and give the result which you have passed in &#39;HelloWorld&#39; web method in Services.cs file.&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ngaCSkpxtN-m4flHTHD4YHP3ojI9HpHt0MZ4b_DaZnJjp5_ugLMWbFVk0rFD5yPoU7juJFOPLLCSf43xeni8TJhpnhHarQppbOTfzGrLsR2c1Zfv3YZG9GDv0clMYV4OMNdFxPGCSqo/s1600/8.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ngaCSkpxtN-m4flHTHD4YHP3ojI9HpHt0MZ4b_DaZnJjp5_ugLMWbFVk0rFD5yPoU7juJFOPLLCSf43xeni8TJhpnhHarQppbOTfzGrLsR2c1Zfv3YZG9GDv0clMYV4OMNdFxPGCSqo/s320/8.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;These are the steps for checking your operations which you have applied on Web services. Now you need to check your Web service which you can find in browser when you append &#39;&lt;b&gt;?WSDL&lt;/b&gt;&#39; at the end of service URL which is,&amp;nbsp;&lt;b&gt;&lt;i&gt; http://localhost:TestWebSite/Service.asmx?WSDL&lt;/i&gt;&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg18PFhsJcTWgqHsqrel0LXPZXzgIFJOhOY-I8ZlmSCt8QvOb5Yav_0rfcHXCUXAflrkU7lXq77uhXLwuhuFph1wiLCD_Yazbm1R6by67ZYS7cHO4a5YIX-c6Nx8sqrKWy9q_b4CSOVAyo/s1600/9.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg18PFhsJcTWgqHsqrel0LXPZXzgIFJOhOY-I8ZlmSCt8QvOb5Yav_0rfcHXCUXAflrkU7lXq77uhXLwuhuFph1wiLCD_Yazbm1R6by67ZYS7cHO4a5YIX-c6Nx8sqrKWy9q_b4CSOVAyo/s320/9.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;This is what I am trying to explain you. Now you need to save this file in form .wsdl.&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMnLafGb29jrEV5bdKK7jVW9_uY0RXrB05jpzKwFC0kpzcUIMhqQtU2_0-sjIDpQRofRHRhcleHXCuIQgTjnEXvDLUQ0GS3rYbV1YTSYO243rBDDJ2FbrAiMTvlFK_Po3voI1lkdJcUm4/s1600/13.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;219&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMnLafGb29jrEV5bdKK7jVW9_uY0RXrB05jpzKwFC0kpzcUIMhqQtU2_0-sjIDpQRofRHRhcleHXCuIQgTjnEXvDLUQ0GS3rYbV1YTSYO243rBDDJ2FbrAiMTvlFK_Po3voI1lkdJcUm4/s320/13.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8UAYO-OyTeXsUmitLLYCjJJj5XKdQHT5LGDnoYj8rP69q3g7ZWk7QdxW9GI0MPXfq0ZOqnw8DCzUWA4b4XrxAh8XTVJhyphenhyphenP44OSj091SXq7o3kM-ah7DJ3fSjmUY58CP-kvOWPwT6QvvU/s1600/11.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8UAYO-OyTeXsUmitLLYCjJJj5XKdQHT5LGDnoYj8rP69q3g7ZWk7QdxW9GI0MPXfq0ZOqnw8DCzUWA4b4XrxAh8XTVJhyphenhyphenP44OSj091SXq7o3kM-ah7DJ3fSjmUY58CP-kvOWPwT6QvvU/s320/11.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0470633956&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;In this way, you can prepare your own services. Also you can go through one of my post &lt;a href=&quot;http://diliptechnotes.blogspot.com/2011/03/exchange-web-services-java-stub.html&quot;&gt;&lt;i&gt;Exchange Web services Java Stub&lt;/i&gt;&lt;/a&gt; to know about Java stub (Client) creation using Axis tool and Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS_qB9qDW4UIAR2eN7YkrzpNseZPJ7axMKICiGZe1ToJR-ClUq6St9lohhUEOQd8EPWJvxS1jackxtuzyyv20GpeL4_H58NoDrHFWzV8ZVfIh5vJB6ZrkESA8J2Xdlf59mdvAki9Bxf9Q/s1600/4.GIF&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS_qB9qDW4UIAR2eN7YkrzpNseZPJ7axMKICiGZe1ToJR-ClUq6St9lohhUEOQd8EPWJvxS1jackxtuzyyv20GpeL4_H58NoDrHFWzV8ZVfIh5vJB6ZrkESA8J2Xdlf59mdvAki9Bxf9Q/s1600/4.GIF&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfw99Xa1NrhkYa8wox7i1mpAOQG1NEbBPktU4ivFHML-wjTM1me5Y7iNTcUIydr-4VcFOpc4Pj_swOnJ5EjtI7hyphenhyphengcZXo4n7tLGCi4RkUggzikA740_RsFMWW4br3GljEQIZdUNUukSGs/s1600/5.GIF&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-JnfdDjD2UKAqMFvnlPtMWuLZKDK2FUyojP61bwdaXVKySDcElgttlHa-v3GDvASLSA6UbsCU5OpLyG8cr8QnpPGWnydMP2_S-lGORRbIF7mb457YC01wgo-t8_3dmWeZIHF4byeABWM/s1600/6.GIF&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimcPHMCgxtO25MG1wtzc7gdybkOi3q5SFjvhVe0XWWT8RA_DzOuUp6IFPFiHy0T-Ryx1P4NNsCyrxvNF17788BS9_rMnZ4lw-w6ebJVBdPI1lldgkH2QrugHz5mjdTs7RkITq4Z111XgA/s1600/7.GIF&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ngaCSkpxtN-m4flHTHD4YHP3ojI9HpHt0MZ4b_DaZnJjp5_ugLMWbFVk0rFD5yPoU7juJFOPLLCSf43xeni8TJhpnhHarQppbOTfzGrLsR2c1Zfv3YZG9GDv0clMYV4OMNdFxPGCSqo/s1600/8.GIF&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg18PFhsJcTWgqHsqrel0LXPZXzgIFJOhOY-I8ZlmSCt8QvOb5Yav_0rfcHXCUXAflrkU7lXq77uhXLwuhuFph1wiLCD_Yazbm1R6by67ZYS7cHO4a5YIX-c6Nx8sqrKWy9q_b4CSOVAyo/s1600/9.GIF&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8UAYO-OyTeXsUmitLLYCjJJj5XKdQHT5LGDnoYj8rP69q3g7ZWk7QdxW9GI0MPXfq0ZOqnw8DCzUWA4b4XrxAh8XTVJhyphenhyphenP44OSj091SXq7o3kM-ah7DJ3fSjmUY58CP-kvOWPwT6QvvU/s1600/11.GIF&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/2548431285416726823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/2548431285416726823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/2548431285416726823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/2548431285416726823'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2011/04/creating-web-services.html' title='Creating Web services'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv8GpP35sc07tK3I5aeU6rQUkgrO_QcsXFfiGF9XH7TQB_k0XdYFWjEk_Hqhn2TqsKIeGjIn1ORJXesvOO0WHeTgpY6EGFzj4NWqbVoJhkCX4SPMPtpWwqMeWZFnoayVFrCHG5V_C3tYg/s72-c/1.GIF" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-1834021982651646757</id><published>2011-03-28T11:45:00.000-07:00</published><updated>2011-03-29T12:01:23.326-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="web services"/><title type='text'>Exchange Web services Java Stub</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0735623929&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;This post illustrates, how to create Java stub using Exchange Web services. Generally stub creation is an easy process since it is available in most of the IDE (Integrated development environment) and you need to use some clicks on IDE and you will get stub (Java source files) available in IDE.&lt;br /&gt;
As of My experience which I have had with Exchange Web services, it is not an easy approach. I had passed around 14 working days to get right Java stub. Here, I am sharing my experience and trying to cover all points which are required for preparing Java stub.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Required software for creating Java Stub&lt;/b&gt;&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Eclipse Java EE IDE 1.2.0 (Galileo)&lt;/li&gt;
&lt;li&gt;JDK 1.6&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.5.4/axis2-eclipse-codegen-plugin-1.5.4.zip&quot;&gt;Axis2 eclipse code generation plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Configuring Axis2 tool for Eclipse&lt;/b&gt;&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Download ZIP file named &#39;axis2-eclipse-codegen-plugin-1.5.4.zip&#39;, unzip it and copy the JAR file (inside UNZIP folder) named &#39;org.apache.axis2.eclipse.codegen.plugin_1.5.4.jar’ inside ‘plugins’ folder of Eclipse.&lt;/li&gt;
&lt;li&gt;Restart Eclipse IDE.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Download Exchange 2007 Web-services&lt;/b&gt;&lt;/div&gt;Exchange server provides three XML files which are required for preparing client stub. These files are,&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Services.wsdl-&lt;/b&gt; Describes the contract between client and server.&lt;br /&gt;
&lt;b&gt;Messages.xsd-&lt;/b&gt; Defines the request and response SOAP messages.&lt;br /&gt;
&lt;b&gt;Types.xsd-&lt;/b&gt; Defines the elements that are used in the SOAP messages.&lt;br /&gt;
&lt;br /&gt;
Use the URLs below for downloading these files,&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;lt;protocol&amp;gt;://&amp;lt;exchange dns=&quot;&quot; fully=&quot;&quot; qualified=&quot;&quot; server=&quot;&quot;&amp;gt;:&amp;lt;exchange port=&quot;&quot; server=&quot;&quot;&amp;gt;/EWS/Services.wsdl&lt;/li&gt;
&lt;li&gt;&amp;lt;protocol&amp;gt;://&amp;lt;exchange dns=&quot;&quot; fully=&quot;&quot; qualified=&quot;&quot; server=&quot;&quot;&amp;gt;:&amp;lt;exchange port=&quot;&quot; server=&quot;&quot;&amp;gt;/EWS/messages.xsd&lt;/li&gt;
&lt;li&gt;&amp;lt;protocol&amp;gt;://&amp;lt;exchange dns=&quot;&quot; fully=&quot;&quot; qualified=&quot;&quot; server=&quot;&quot;&amp;gt;:&amp;lt;exchange port=&quot;&quot; server=&quot;&quot;&amp;gt;/EWS/types.xsd&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Examples are,&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;https://&amp;lt;Exchange server host&amp;gt;/EWS/Services.wsdl&lt;/li&gt;
&lt;li&gt;https://&amp;lt;Exchange server host&amp;gt;/EWS/messages.xsd &lt;/li&gt;
&lt;li&gt;https://&amp;lt;Exchange server host&amp;gt;/EWS/types.xsd &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Download files from above links and save it by names. The names are,&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;i&gt;services.wsdl&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;messages.xsd&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;types.xsd&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Changes needed in Services.wsdl and types.xsd file&lt;/b&gt;&lt;/div&gt;Add the below lines of code in Services.wsdl file just above the last line i.e. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;wsdl:service name=&quot;ExchangeServices&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:port name=&quot;ExchangeServicePort&quot; binding=&quot;tns:ExchangeServiceBinding&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;soap:address location=&quot;https://&amp;lt;Exchange server host&amp;gt;/EWS/Exchange.asmx&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;/wsdl:port&amp;gt;&lt;br /&gt;
&amp;lt;/wsdl:service&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In these lines, you can change following attribute according to your requirement. These are,&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;wsdl service name.&lt;/li&gt;
&lt;li&gt;wsdl port name.&lt;/li&gt;
&lt;li&gt;soap location: Represents Exchange.asmx location of Exchange server.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
In types.xsd file, you need to change the definition of element which is used for updating the Exchange server&#39;s item. You need to change &#39;Path&#39; definition to &#39;FieldURI&#39;. This changes are recommendation by MSDN in which we should pass FieldURI instead of Path in update process.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Steps used with Eclipse&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkgOgxHatDWVWbdtikzihaWRiY8BsGPYZzevobmG6OEabjYvUyUMgoio3-f1h13KHytuaBy0U1j0ndqNLAgfl_G1lPHkB07pqfHZI8hyphenhyphen0O1h7Xfq6b2Hh2I5Mf7vKN4QePW90JPKeMxpk/s1600/2.GIF&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkgOgxHatDWVWbdtikzihaWRiY8BsGPYZzevobmG6OEabjYvUyUMgoio3-f1h13KHytuaBy0U1j0ndqNLAgfl_G1lPHkB07pqfHZI8hyphenhyphen0O1h7Xfq6b2Hh2I5Mf7vKN4QePW90JPKeMxpk/s1600/2.GIF&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt; Start Eclipse and create a Java project.&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;&lt;/ol&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Create a ‘wsdl’ folder inside project and copy the Web-services files which you have downloaded in previous point.&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;&lt;/ol&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Create a ‘lib’ folder inside project and copy following JARS.&amp;nbsp;&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;li&gt;axiom-api-1.2.10.jar&lt;/li&gt;
&lt;li&gt;axiom-dom-1.2.10.jar&lt;/li&gt;
&lt;li&gt;axiom-impl-1.2.10.jar&lt;/li&gt;
&lt;li&gt;axis2-adb-1.5.4.jar&lt;/li&gt;
&lt;li&gt;axis2-adb-codegen-1.5.4.jar&lt;/li&gt;
&lt;li&gt;axis2-codegen-1.5.4.jar&lt;/li&gt;
&lt;li&gt;axis2-java2wsdl-1.5.4.jar&lt;/li&gt;
&lt;li&gt;axis2-jibx-1.5.4.jar&lt;/li&gt;
&lt;li&gt;axis2-kernel-1.5.4.jar&lt;/li&gt;
&lt;li&gt;axis2-transport-http-1.5.4.jar&lt;/li&gt;
&lt;li&gt;axis2-transport-local-1.5.4.jar&lt;/li&gt;
&lt;li&gt;axis2-xmlbeans-1.5.4.jar&lt;/li&gt;
&lt;li&gt;bcel-5.1.jar&lt;/li&gt;
&lt;li&gt;commandline.jar&lt;/li&gt;
&lt;li&gt;commons-codec-1.3.jar&lt;/li&gt;
&lt;li&gt;commons-fileupload-1.2.jar&lt;/li&gt;
&lt;li&gt;commons-httpclient-3.1.jar&lt;/li&gt;
&lt;li&gt;commons-logging-1.1.jar&lt;/li&gt;
&lt;li&gt;geronimo-jta_1.1_spec-1.1.jar&lt;/li&gt;
&lt;li&gt;geronimo-ws-metadata_2.0_spec-1.1.2.jar&lt;/li&gt;
&lt;li&gt;httpcore-4.0.jar&lt;/li&gt;
&lt;li&gt;javax.mail-1.3.3.01.jar&lt;/li&gt;
&lt;li&gt;jaxen-1.1.1.jar&lt;/li&gt;
&lt;li&gt;jibx-bind-1.2.1.jar&lt;/li&gt;
&lt;li&gt;jibx-run-1.2.1.jar&lt;/li&gt;
&lt;li&gt;log4j-1.2.14.jar&lt;/li&gt;
&lt;li&gt;mail.jar&lt;/li&gt;
&lt;li&gt;neethi-2.0.4.jar&lt;/li&gt;
&lt;li&gt;regexp-1.2.jar&lt;/li&gt;
&lt;li&gt;servlet-api-2.3.jar&lt;/li&gt;
&lt;li&gt;woden-api-1.0M8.jar&lt;/li&gt;
&lt;li&gt;woden-impl-dom-1.0M8.jar&lt;/li&gt;
&lt;li&gt;wsdl4j-1.6.2.jar&lt;/li&gt;
&lt;li&gt;xalan-2.7.0.jar&lt;/li&gt;
&lt;li&gt;xercesImpl-2.8.1.jar&lt;/li&gt;
&lt;li&gt;xmlbeans-2.3.0.jar&lt;/li&gt;
&lt;li&gt;XmlSchema-1.4.3.jar&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Project directory structure is shown below.&lt;/li&gt;
&lt;/ul&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkgOgxHatDWVWbdtikzihaWRiY8BsGPYZzevobmG6OEabjYvUyUMgoio3-f1h13KHytuaBy0U1j0ndqNLAgfl_G1lPHkB07pqfHZI8hyphenhyphen0O1h7Xfq6b2Hh2I5Mf7vKN4QePW90JPKeMxpk/s1600/2.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;190&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkgOgxHatDWVWbdtikzihaWRiY8BsGPYZzevobmG6OEabjYvUyUMgoio3-f1h13KHytuaBy0U1j0ndqNLAgfl_G1lPHkB07pqfHZI8hyphenhyphen0O1h7Xfq6b2Hh2I5Mf7vKN4QePW90JPKeMxpk/s320/2.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Right click on project and click File -&amp;gt; New -&amp;gt; Other -&amp;gt; Axis2 Wizards -&amp;gt; Axis2 Code Generator.&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;&lt;/ol&gt;&lt;ol&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCgc9xbU_dWxl5GarbaodFI4IaFwAM4JHHWpAOjFgyaCKwHtbN6kKVS2ob7BqjTF5ZfqBN_tFGYHHi_qeAVynbFLd2b-wXQainfxMvBwcYlhLrI4MqcMjGPVcC7F2NXUNaUCVjVCmAAZg/s1600/3.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCgc9xbU_dWxl5GarbaodFI4IaFwAM4JHHWpAOjFgyaCKwHtbN6kKVS2ob7BqjTF5ZfqBN_tFGYHHi_qeAVynbFLd2b-wXQainfxMvBwcYlhLrI4MqcMjGPVcC7F2NXUNaUCVjVCmAAZg/s320/3.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Locate ‘Services.wsdl ‘ file and click ‘Next’ button.&lt;/li&gt;
&lt;/ul&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;/ol&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiClUHYU1wK1oav1A7oAObNhsA8jaCBiWUAmuhym_fh1nBhLWBdggn2U8BGD9FM9pqgavPk77m8rOVTtTIIhLvK4YPKtdmgr98Vg8matololEoRwI3OVxmvsEHGJTRjqD8VvBB-XfGORB8/s1600/5.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiClUHYU1wK1oav1A7oAObNhsA8jaCBiWUAmuhym_fh1nBhLWBdggn2U8BGD9FM9pqgavPk77m8rOVTtTIIhLvK4YPKtdmgr98Vg8matololEoRwI3OVxmvsEHGJTRjqD8VvBB-XfGORB8/s320/5.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Fill the options page in Axis2 Codgen Wizard as Figure below.&amp;nbsp; Select the options carefully mentioned as figure below,&lt;/li&gt;
&lt;/ul&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;/ol&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwt2f4DBamJcSo3aLB3GifCojy0cpnuMB01BNzY6uJjvh26wFx-i3bh5H4ErtIxxA4T1V1k3bUpAaujFI5idC3cXS1pXHuE5hyqcXz61_zOOI-lLuo4KwZggID3GLuW_Ik7oXBRqpRU4M/s1600/6.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwt2f4DBamJcSo3aLB3GifCojy0cpnuMB01BNzY6uJjvh26wFx-i3bh5H4ErtIxxA4T1V1k3bUpAaujFI5idC3cXS1pXHuE5hyqcXz61_zOOI-lLuo4KwZggID3GLuW_Ik7oXBRqpRU4M/s320/6.GIF&quot; width=&quot;293&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Set the output location of code which is generated by Axis2 tool. Select the options carefully mentioned as figure below.&lt;/li&gt;
&lt;/ul&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;/ol&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggo8sjTjq_ZNp00TEXazBzsL4Gbi5qnPu_wAicMbb5lRzc6PQljkF5D8NFGdQa_n-jvbkd1YNpn5LkeDNGMKXwKbShSM2WxW58y4Ux4KXaJ_DZFvRXwcMysmUVke2IsZzSNNcgmQpAF4w/s1600/7.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggo8sjTjq_ZNp00TEXazBzsL4Gbi5qnPu_wAicMbb5lRzc6PQljkF5D8NFGdQa_n-jvbkd1YNpn5LkeDNGMKXwKbShSM2WxW58y4Ux4KXaJ_DZFvRXwcMysmUVke2IsZzSNNcgmQpAF4w/s320/7.GIF&quot; width=&quot;293&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Finally, you will receive below message if everything is fine.&lt;/li&gt;
&lt;/ul&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;/ol&gt;&lt;b&gt;All operation completed. &lt;/b&gt;&lt;br /&gt;
&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=1156684366&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; line-height: 115%;&quot;&gt;There are some nice links which I have used for Java stub creation.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.hrinterop.org/node/71&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;Axis2_Codegen_Wizard_1.4.0&lt;/a&gt; : Solution for issue of stub creation.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; line-height: 115%;&quot;&gt;&lt;a href=&quot;http://axis.apache.org/axis2/java/core/tools/eclipse/wsdl2java-plugin.html&quot;&gt;Axis2 code generation&lt;/a&gt; : Code Generator Wizard Guide for Eclipse Plug-in&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; line-height: 115%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; line-height: 115%;&quot;&gt;&lt;a href=&quot;http://www.coderanch.com/t/469667/Web-Services/java/EWS-Transport-error-Error-Unauthorized&quot;&gt;Axis2 Stub creation error&lt;/a&gt; : org.apache.axis2.AxisFault: Transport error: 401 Error: Unauthorized. &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/1834021982651646757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/1834021982651646757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/1834021982651646757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/1834021982651646757'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2011/03/exchange-web-services-java-stub.html' title='Exchange Web services Java Stub'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkgOgxHatDWVWbdtikzihaWRiY8BsGPYZzevobmG6OEabjYvUyUMgoio3-f1h13KHytuaBy0U1j0ndqNLAgfl_G1lPHkB07pqfHZI8hyphenhyphen0O1h7Xfq6b2Hh2I5Mf7vKN4QePW90JPKeMxpk/s72-c/2.GIF" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-7956015897512987496</id><published>2011-03-26T07:42:00.000-07:00</published><updated>2011-04-02T22:59:36.395-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="web services"/><title type='text'>Web services basics</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B004EBT5CU&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Introduction&lt;/b&gt;&lt;/div&gt;In this topic, I am going to describe some basics of Web-services which needs to understand if you are planning development on Web-services. My main intention is to keep good contents on this post which I found from different notes.&lt;br /&gt;
&lt;br /&gt;
The term Web Services refers to the technologies that allow for making connections. Also Services are what you connect together using Web Services. A service is the endpoint of a connection. The combination of services - internal and external to an organization - make up a service-oriented architecture.  &lt;br /&gt;
For example: &lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;VB.NET application can talk to JAVA Web-services and vice versa. &lt;/li&gt;
&lt;li&gt;Inventory Web-service can talk to transport Web-service.&lt;/li&gt;
&lt;/ul&gt;&lt;i&gt;There are some nice links for understanding Web services basics and its specifications in detail.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.webopedia.com/DidYouKnow/Computer_Science/2005/web_services.asp&quot;&gt;&lt;i&gt;&lt;b&gt;Webo Pedia&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; - Understanding Web Services.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.roseindia.net/freemagazine/issue12/quick-introduction-web-services.shtml&quot;&gt;&lt;i&gt;&lt;b&gt;Rose India&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; - Quick introduction to web services&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tutorialspoint.com/webservices/index.htm&quot;&gt;&lt;i&gt;&lt;b&gt;Tutorials Point&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; - Web Services.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.service-architecture.com/web-services/articles/web_services_explained.html&quot;&gt;&lt;i&gt;&lt;b&gt;Service Architecture&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; - Web Services explained.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cheenath.com/&quot;&gt;&lt;i&gt;&lt;b&gt;Programming Web services&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; - Web Service Tutorial.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;About Web-services&lt;/b&gt;&lt;/div&gt;Web Services allows you to expose the functionality of your existing code over the network. Once it is exposed on the network, other application can use the functionality of your program.&lt;br /&gt;
A Web service is a unit of managed code that can be remotely invoked using HTTP, that is, it can be activated using HTTP requests.&lt;br /&gt;
A Web service contains some number of classes, interfaces, enumerations and structures that provide black box functionality to remote clients. &lt;br /&gt;
In each case, the client indirectly interacts with the Web service through an intervening proxy or client stub. The proxy looks and feels like the real remote type and exposes the same set of methods. Under the hood, the proxy code really forwards the request to the Web service using standard HTTP or optionally SOAP messages.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Why we use Web-services?&lt;/b&gt;&lt;/div&gt;DCOM clients access remote COM types using tightly coupled RPC calls. CORBA requires the use of tightly coupled protocol referred to as Internet Inter-ORB Protocol (IIOP), to activate remote types. Enterprise JavaBeans (EJBs) requires a Remote Method Invocation (RMI) Protocol and by and large a specific language (Java).Thus each of these remote invocation architectures needs proprietary protocols, which typically require a tight connection to the remote source.&lt;br /&gt;
Web services using nothing but HTTP. Of all the protocols in existence today, HTTP is the one specific wire protocol that all platforms tend to agree on.&lt;br /&gt;
using Web services, a Web service developer can use any language he wish and a Web service consumer can use standard HTTP to invoke methods a Web service provides. Simple Object Access Protocol (SOAP) and XML are also two key pieces of the Web services architecture.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=059652112X&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Web Service Standards&lt;/b&gt;&lt;/div&gt;Web services are registered and announced using the following services and protocols. &lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;b&gt;Universal Description, Discovery, and Integration (UDDI)&lt;/b&gt;&lt;/i&gt; -- is a protocol for describing available Web services components. This standard allows businesses to register with an Internet directory that will help them advertise their services.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Simple Object Access Protocol (SOAP)&lt;/i&gt;&lt;/b&gt; -- is a protocol for initiating conversations with a UDDI Service. SOAP makes object access simple by allowing applications to invoke object methods or functions, residing on remote servers. SOAP application creates a request block in XML, supplying the data needed by the remote method as well as the location of the remote object itself.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Web Service Description Language (WSDL)&lt;/i&gt;&lt;/b&gt; --, the proposed standard for how a Web service is described, is an XML-based service IDL (Interface Definitition Language) that defines the service interface and its implementation characteristics. WSDL is referenced by UDDI entries and describes the SOAP messages that define a particular Web service.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;ebXML (e-business XML)&lt;/b&gt;&lt;/i&gt; -- defines core components, business processes, registry and repository, messaging services, trading partner agreements, and security.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Implementing Web Services&lt;/b&gt;&lt;/div&gt;Here comes a brief step-by-step on how a Web service is implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;A service provider creates a Web service. Please go through one of my post &lt;a href=&quot;http://diliptechnotes.blogspot.com/2011/04/creating-web-services.html&quot;&gt;&lt;i&gt;How to create Web services using MS-Visio&lt;/i&gt;&lt;/a&gt; for creating Web services.&lt;/li&gt;
&lt;li&gt;The service provider uses WSDL to describe the service to a UDDI registry.&lt;/li&gt;
&lt;li&gt;The service provider registers the service in a UDDI registry and/or ebXML registry/repository.&lt;/li&gt;
&lt;li&gt;Another service or consumer locates and requests the registered service by querying UDDI and/or ebXML registries.&lt;/li&gt;
&lt;li&gt;The requesting service or user writes an application to bind the registered service using SOAP in the case of UDDI and/or ebXML.&lt;/li&gt;
&lt;li&gt;Data and messages are exchanged as XML over HTTP.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Web Service Infrastructure&lt;/b&gt;&lt;/div&gt;Even though Web services are being built using existing infrastructure. The core architectural foundation of Web services are XML, XML namespaces, and XML schema. UDDI, SOAP, WSDL, ebXML and security standards are being developed in parallel by different vendors.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0672326418&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Web Services Technologies and Tools&lt;/b&gt;&lt;/div&gt;There are a number of mechanisms for constructing Web services. Microsoft has an exciting tool called Visual Studio .NET in this regard. The back end database can be rational database.&lt;br /&gt;
&lt;br /&gt;
Sun Microsystems has its own set of technologies and tools for facilitating Web services development. Java Servlets, Java Server Pages (JSPs), Enterprise JavaBeans (EJB) architecture and other Java 2 Enterprise Edition (J2EE) technologies play a very critical role in developing Web services.&lt;br /&gt;
There are a number of tools for developing Web services. They are Forte Java IDE, Oracle JDeveloper, and WebGain Studio. &lt;br /&gt;
Sun Microsystems has taken an initiative called Sun ONE (Open Network Environment) and is planning to push Java forward as a platform for Web services. It is developing Java APIs for XML-based remote procedure calls and for looking up services in XML registries - two more JAX family APIs: JAX/RPC (Java API for XML Remote Procedure Calls) and JAXR (Java API for XML Registries). These will wrap up implementations of Web services standards, such as SOAP and UDDI.&lt;br /&gt;
&lt;br /&gt;
IBM also for its part has already developed a suite of early-access tools for Web services development. They are Web Services Toolkit (WSTK), WSDL Toolkit, and Web Services Development Environment (WSDE).&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Benifits over Web Services&lt;/b&gt;&lt;/div&gt;&lt;i&gt;&lt;b&gt;Exposing the function on to network -&lt;/b&gt;&lt;/i&gt; A Web service is a unit of managed code that can be remotely invoked using HTTP,Web Services allows you to expose the functionality of your existing code over the network. Once it is exposed on the network, other application can use the functionality of your program.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Connecting Different Applications&lt;/i&gt;&lt;/b&gt; - Web Services allows different applications to talk to each other and share data and services among themselves. Other applications can also use the services of the web services.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Standardized Protocol&lt;/b&gt;&lt;/i&gt; - Web Services uses standardized industry standard protocol for the communication. All the four layers (Service Transport, XML Messaging, Service Description and Service Discovery layers) uses the well defined protocol in the Web Services protocol stack.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Low Cost of communication -&lt;/b&gt;&lt;/i&gt; Web Services uses SOAP over HTTP protocol for the communication, so you can use your existing low cost internet for implementing Web Services. This solution is much less costly compared to proprietary solutions like EDI/B2B. &lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Support for Other communication means&lt;/b&gt;&lt;/i&gt; - Web Services can also be implemented using ftp protocol (Web services over FTP).&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Loosely Coupled Applications&lt;/b&gt;&lt;/i&gt; -Different applications in different scopes communicate using Web services. &lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Web Services Sharing&lt;/b&gt;&lt;/i&gt; - These days due to complexness of the business, organizations are using different technologies like EAI, EDI, B2B, Portals etc. for distributing computing. Web Services supports all these technologies, thus helping the business to use existing investments in other technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Web Services are Self Describing&lt;/b&gt;&lt;/i&gt; - Web Services are self describing applications, which reduces the software development time. This helps the other business partners to quickly develop application and start doing business. This helps business to save time and money by cutting development time.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Automatic Discovery -&lt;/b&gt;&lt;/i&gt; Web Services automatic discovery mechanism helps the business to easy find the Service Providers. This also helps your customer to find your services easily. With the help of Web Services your business can also increase revenue by exposing their own Web Services available to others.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Business Opportunity -&lt;/b&gt;&lt;/i&gt; Web Services has opened the door to new business opportunities by making it easy to connect with partners.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;The Elements of Web Services&lt;/b&gt;&lt;/div&gt;Web services use XML to code and to decode data, and SOAP to transport it (using open protocols). Besides these, HTTP, Web Services Description Language (WSDL), Universal Description, Discovery and Integration (UDDI), and SPARQL are the elements of Web Services.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Uses of Web Services&lt;/b&gt;&lt;/div&gt;Web services are a set of tools that can be used in a number of ways most commonly in three styles:&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Remote Procedure Calls&lt;/li&gt;
&lt;li&gt;Service-oriented architecture&lt;/li&gt;
&lt;li&gt;Representational state transfer&lt;/li&gt;
&lt;/ol&gt;Moreover, it is also used as Reusable application-components and Connect existing software.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/7956015897512987496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/7956015897512987496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/7956015897512987496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/7956015897512987496'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2011/03/web-services-basics.html' title='Web services basics'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-530166640156978239</id><published>2011-03-25T07:04:00.000-07:00</published><updated>2011-03-28T11:28:07.594-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="web services"/><title type='text'>Exchange 2007 Web services</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B003DZ165W&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Introduction &lt;/b&gt;&lt;/div&gt;Recently, I had a chance to work on Exchange Web Services (EWS) API for 2007 version. Earlier, I had worked with Exchange 2003 and 2007 server for WebDAV protocol. As of my experience which I have had with Web Services and WebDAV API, Web Services is not an easy task since control is not in your hand. EWS provides a set of XML files through which you can prepare Java client for Exchange server communication. This Java client contains their own set of Java interfaces which needs to understand first for implementing your API. On other hand, WebDAV API controls easily by taking care of Exchange server properties.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;About Exchange Server&lt;/b&gt;&lt;/div&gt;Microsoft Exchange server is a server side of client-server model. This is a collaborative application product developed by Microsoft. Exchange&#39;s major features are mailing, calendaring, contacts and tasks. Exchange server supports for mobile and web based applications and it is treated as a database storage for collaborative items (Exchange server items).&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;About Exchange Web Services&lt;/b&gt;&lt;/div&gt;Exchange Web Services is an interface which is used to communicate with Exchange server. This interface is exposed as SOAP (Simple object access protocol) based Web-service, which means requester must send his request in form of XML using SOAP to EWS contained in HTTP post request. EWS itself responds in the same manner using SOAP and XML messages in the HTTP response object. EWS is exposed on a Exchange Client Access Server (CAS) through an ASP.NET Web service. The basic flow of request/response is as follows,&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipEQSqZOZ7njeWS_-rA5YPQuBgiPIQZ3ezN-MnaK6NADxCnOmp46F-J78nzAUU3BLJAwB-CmUmlKqcBlDO07rImdRjbGAtkHdxJcTB81Xo1yNvEfunAQthlRUrvGtHgo-FunKj8YsdhCk/s1600/pic1.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;42&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipEQSqZOZ7njeWS_-rA5YPQuBgiPIQZ3ezN-MnaK6NADxCnOmp46F-J78nzAUU3BLJAwB-CmUmlKqcBlDO07rImdRjbGAtkHdxJcTB81Xo1yNvEfunAQthlRUrvGtHgo-FunKj8YsdhCk/s320/pic1.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For understanding the basics of Web services, please go through my one of post &lt;a href=&quot;http://diliptechnotes.blogspot.com/2011/03/web-services-basics.html&quot;&gt;&lt;i&gt;Web services basics&lt;/i&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Exchange 2007 Web-services&lt;/b&gt;&lt;/div&gt;&lt;b&gt;1)&lt;/b&gt; Exchange Web Services&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; Autodiscover Service&lt;br /&gt;
&lt;b&gt;3)&lt;/b&gt; Unified Messaging Web Service&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Exchange Web Services&lt;/b&gt;&lt;/div&gt;Exchange Web Services provides the functionality to enable client applications to communicate with the Exchange server. Exchange Web Services provides access to much of the same data that is made available through Microsoft Office Outlook. &lt;br /&gt;
&lt;br /&gt;
Exchange Web Services is described by three files:&lt;br /&gt;
&lt;b&gt;1)&lt;/b&gt; Services.wsdl   Describes the contract between client and server.&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; Messages.xsd   Defines the request and response SOAP messages.&lt;br /&gt;
&lt;b&gt;3)&lt;/b&gt; Types.xsd   Defines the elements that are used in the SOAP messages.&lt;br /&gt;
&lt;br /&gt;
These schema files are located in the EWS virtual directory of the computer that is running Exchange 2007 that has the Client Access server role installed.&lt;br /&gt;
&lt;br /&gt;
Exchange Web Services provides the following types of operations:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1)&lt;/b&gt; Availability&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; Delegate Management (starting with Exchange 2007 Service Pack 1)&lt;br /&gt;
&lt;b&gt;3)&lt;/b&gt; Folder&lt;br /&gt;
&lt;b&gt;4)&lt;/b&gt; Item&lt;br /&gt;
&lt;b&gt;5)&lt;/b&gt; Messaging Records Management&lt;br /&gt;
&lt;b&gt;6)&lt;/b&gt; Notification&lt;br /&gt;
&lt;b&gt;7)&lt;/b&gt; Synchronization&lt;br /&gt;
&lt;b&gt;8)&lt;/b&gt; Utility&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Autodiscover Service&lt;/b&gt;&lt;/div&gt;The Autodiscover service provides a mechanism to automatically configure Exchange 2007 client applications to access the Client Access server. Autodiscover provides a powerful tool for configuring client application profiles used to discover Exchange Web Services and associated mailbox information. Autodiscover provides configuration information inside or outside of firewalls. In addition, Autodiscover will work in resource forest and multiple forest scenarios.&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Unified Messaging Web Service&lt;/b&gt;&lt;/div&gt;The Unified Messaging Web Service provides an extensibility point for clients to read and change information about Unified Messaging properties.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Why we use EWS?&lt;/b&gt;&lt;/div&gt;As per me, I have worked with WebDAV supported API which supports till Exchange 2007 server. Beyond this versions, Exchange does not support for WebDAV. It supports only for EWS. This is my concern for using EWS.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;There are some nice links for understanding EWS and its specifications in detail.&lt;/i&gt;&lt;br /&gt;
&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B001FA1O0O&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;b&gt;1)&lt;/b&gt; &lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb408417%28EXCHG.80%29.aspx&quot;&gt;MSDN Getting Started With EWS&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; : Introduction to Exchange 2007 Web Services.&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; &lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/bb409286%28EXCHG.80%29.aspx&quot;&gt;EWS Operations&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; : A list of the operations that can be performed on the EWS.&lt;br /&gt;
&lt;b&gt;3)&lt;/b&gt; &lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://gsexdev.blogspot.com/&quot;&gt;Glen Scales’ Blog&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; : This guy knows Exchange inside and out.&lt;br /&gt;
&lt;b&gt;4)&lt;/b&gt; &lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://blogs.visoftinc.com/2008/03/20/using-exchange-web-services-2007-the-basics/&quot;&gt;EWS Basics&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; : Basics of Exchange 2007 Web Services.&lt;br /&gt;
&lt;b&gt;5)&lt;/b&gt; &lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://www.codeproject.com/KB/exchange/Exchange2007EWS-Part1.aspx&quot;&gt;Programming With Exchange Server 2007&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; : Three part searies of EWS programming.&lt;br /&gt;
&lt;b&gt;6)&lt;/b&gt; &lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://techdrodl.blogspot.com/2009/03/accessing-exchange-web-services-from.html&quot;&gt;Rolf Woll&#39;s technical blog&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; : Integrating Java with Exchange&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Specifications implemented on EWS&lt;/b&gt;&lt;/div&gt;&lt;b&gt;1)&lt;/b&gt; HTTP&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; XML&lt;br /&gt;
&lt;b&gt;3)&lt;/b&gt; Simple Object Access Protocol (SOAP) &lt;br /&gt;
&lt;b&gt;4)&lt;/b&gt; Web Services Description Language (WSDL) &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;EWS Architechture&lt;/b&gt;&lt;/div&gt;The following figure shows how a client application interacts with the Client Access server to access Exchange store information from the Mailbox server.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoUzbrZarH5BYOt6SwsFN63e-4o59SwHsE_aOiUZh7JwxLi1U8P6qvRD0hgd293MA-GuOyg_PI7yEZ9wKo2PGZ71DjK4XBaogxocjcPA_PqQu1ikU6brm9iCSBw6M9SR-BMF4lXSfCEcg/s1600/p2.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoUzbrZarH5BYOt6SwsFN63e-4o59SwHsE_aOiUZh7JwxLi1U8P6qvRD0hgd293MA-GuOyg_PI7yEZ9wKo2PGZ71DjK4XBaogxocjcPA_PqQu1ikU6brm9iCSBw6M9SR-BMF4lXSfCEcg/s320/p2.GIF&quot; width=&quot;297&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Applications that use Exchange Web Services can access data store items. The applications can access these items locally or remotely by using a SOAP version 1.1 or version 1.2 message. SOAP is an XML-based protocol that is defined in the World Wide Web Consortium (W3C). The SOAP messages are sent between client and server, embedded in an HTTP 1.1 message. The HTTP 1.1 protocol is defined by RFC 2616.&lt;br /&gt;
&lt;br /&gt;
Exchange Web Services is deployed with the Client Access server role. Microsoft Exchange Server 2007 clients connect to the computer that is running Exchange 2007 that has the Client Access server role installed in an Active Directory directory service site by using an HTTPS connection.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;EWS request and response flow&lt;/b&gt;&lt;/div&gt;The following figure shows the steps involved in sending and receiving XML messages between the client application and the Exchange server.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgenG0bHJtyICmVzPvCnJy-Js7zTV1E6JIKxc7t6rJI5pzEsXu4EXZY2tzVcy3MTqCcv9_0DWR357g6Q45mC1Yj7NskkDxpZHsivVn_a6StKibg5e11QOfe7YmR7PNnshqwwhDdyg6Jkz4/s1600/p3.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;311&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgenG0bHJtyICmVzPvCnJy-Js7zTV1E6JIKxc7t6rJI5pzEsXu4EXZY2tzVcy3MTqCcv9_0DWR357g6Q45mC1Yj7NskkDxpZHsivVn_a6StKibg5e11QOfe7YmR7PNnshqwwhDdyg6Jkz4/s320/p3.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
When a client application requests information from the Exchange store, an XML request message that complies with the SOAP standard is created and sent to the Exchange server. When the Microsoft Exchange server receives the request, it verifies the credentials that are provided by the client and automatically parses the XML for the requested data. The server then builds a SOAP response that contains XML data that represents the requested strongly typed objects and their properties. The XML data is sent back to the client application in an HTTP response. The client application then de-serializes the XML and uses the data to reform the strongly typed objects.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/530166640156978239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/530166640156978239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/530166640156978239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/530166640156978239'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2011/03/introduction-recently-i-had-chance-to.html' title='Exchange 2007 Web services'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipEQSqZOZ7njeWS_-rA5YPQuBgiPIQZ3ezN-MnaK6NADxCnOmp46F-J78nzAUU3BLJAwB-CmUmlKqcBlDO07rImdRjbGAtkHdxJcTB81Xo1yNvEfunAQthlRUrvGtHgo-FunKj8YsdhCk/s72-c/pic1.GIF" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-7783129590222782277</id><published>2011-02-08T09:31:00.000-08:00</published><updated>2011-04-11T11:47:17.403-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="exchange server"/><title type='text'>Track version info for any Exchange server</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B002Y27P3M&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Introduction &lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
This post will explain you, how to find Exchange server version information. Basically, we can not find Exchange server version information from server console however we can find this from Active directory shema (i.e. ms-Exch-Schema-Version-Pt).&lt;/div&gt;There is a common attribute (&#39;rangeUpper&#39;) for all active directories which helps us for retrieving Exchange server version info. This is very helpful for my project since my project connects with different Exchange servers and we pass Exchange server version information at the time of connection. If we do not know about Exchange server version info, we can not retrieve Exchange items.&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Now, we get this at run time (Exchange server version info) when we make connection with Exchange server. We can connect with n number of Exchange servers using n number of Exchange users.&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;In this feature, you do not need to know about Exchange server. Only you need to know about Core Java and Active directory (Internally configured with Exchange server).&lt;/div&gt;&lt;br /&gt;
First, we take a look, how can we access this using Softerra LDAP Browser (software Version 2.6).&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Exchange Server Version information using LDAP Browser &lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1)&lt;/b&gt; Open LDAP browser, create a new profile for Exchange’s Active directory.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixU8Mb_pRZXBmB_nwpplSdELEdIWfT0eCN9DjvWfH0MzzUpQ5iippTQ9ac8lLZcLJDP0WoY81YE5wJLYSlXWSSeRSdhU2F7gz5EUesq4-E9Oxczqa6VtgcKVDUnayCDYYRGeNOy7erksw/s1600/a.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixU8Mb_pRZXBmB_nwpplSdELEdIWfT0eCN9DjvWfH0MzzUpQ5iippTQ9ac8lLZcLJDP0WoY81YE5wJLYSlXWSSeRSdhU2F7gz5EUesq4-E9Oxczqa6VtgcKVDUnayCDYYRGeNOy7erksw/s320/a.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; Provide profile name here,&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU5D0dm3IgeoTgd-2edPHfzxSJPZaltrOMx65bEfQuiYv17VBSvI7OibFy3FKGz_EGPId6Q8fBlesBdEs-i5L6qfRjnJoizLvtT6MR4141Oc8bhdTAHiiulSyPUTB7mbnQtAoLWrfumBE/s1600/b.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU5D0dm3IgeoTgd-2edPHfzxSJPZaltrOMx65bEfQuiYv17VBSvI7OibFy3FKGz_EGPId6Q8fBlesBdEs-i5L6qfRjnJoizLvtT6MR4141Oc8bhdTAHiiulSyPUTB7mbnQtAoLWrfumBE/s320/b.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3)&lt;/b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Provide useful details for connection.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Host :&lt;/b&gt; Exchange server host / fully qualified DNS name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Port:&lt;/b&gt; LDAP port&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Base DN:&lt;/b&gt; ‘CN=ms-Exch-Schema-Version-Pt, cn=schema, cn=configuration, dc=&amp;lt;domain&amp;gt;&lt;domain&gt;, dc=&lt;/domain&gt;&amp;lt;local&amp;gt;&lt;domain&gt;&lt;local&gt;’&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;For Example:&lt;/b&gt; Base DN = ‘CN=ms-Exch-Schema-Version-Pt, cn=schema, cn=configuration, dc=portmail, dc=com’&lt;/local&gt;&lt;/domain&gt;&lt;br /&gt;
&lt;br /&gt;
Click ‘&lt;b&gt;Next&lt;/b&gt;’ to continue..&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIQPQ_bJE5XnQJEyPPY-ue1PQisViPWhPOFnQv8AMTHx4QZtNn2O8xaTcOLjZb9PSxIumVwyGto0caBIPa25hWX0Bz_Ac6_CkbCB7WCJVSi7GPYTQJ1PK8pTMf_CIBZ5GZyPk2yndKxoo/s1600/c.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIQPQ_bJE5XnQJEyPPY-ue1PQisViPWhPOFnQv8AMTHx4QZtNn2O8xaTcOLjZb9PSxIumVwyGto0caBIPa25hWX0Bz_Ac6_CkbCB7WCJVSi7GPYTQJ1PK8pTMf_CIBZ5GZyPk2yndKxoo/s320/c.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4)&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Provide useful information for directory user,&lt;br /&gt;
&lt;b&gt;User DN:&lt;/b&gt; ‘CN=utest1, CN=Users, &lt;local&gt;dc=&amp;lt;domain&amp;gt;, dc=&amp;lt;local&amp;gt;’&lt;b&gt;&lt;br /&gt;
Password: &lt;/b&gt;&lt;/local&gt;&amp;lt;user password&amp;gt;&lt;local&gt; &lt;user password=&quot;&quot;&gt;&lt;br /&gt;
&lt;b&gt;For Example:&lt;/b&gt; CN=utest1, CN=Users, DC=portmail, DC=com&lt;br /&gt;
&lt;br /&gt;
Click ‘&lt;b&gt;Next&lt;/b&gt;’ to continue..&lt;/user&gt;&lt;/local&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWRIIVxaw2Vx8US37MOaOpIA1nXcHtJ8Ib2wZTPA_CXKdCl_j68EzXbolS4qjWl7WcjJujZXGbDM9KAUFRnunJ_IZIee-nA1z9x9IB0i26gsffAw0d1xJ6oesCxz0Oewvgj47p_PZyggE/s1600/d.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWRIIVxaw2Vx8US37MOaOpIA1nXcHtJ8Ib2wZTPA_CXKdCl_j68EzXbolS4qjWl7WcjJujZXGbDM9KAUFRnunJ_IZIee-nA1z9x9IB0i26gsffAw0d1xJ6oesCxz0Oewvgj47p_PZyggE/s320/d.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5)&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Provide filter information here.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRZcaPyTtGPYKQi6tQdTYvtREmD40JmOuRjBrR8PM1W8yCnZG-9NGn4JqkOobqfbGRZ3c4N4_QvV0XM7nAznmjg60WrlPnZlJmICe6kuts0PYVME_rri5zA19aURVo-InXHQFG1QOl96k/s1600/e.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRZcaPyTtGPYKQi6tQdTYvtREmD40JmOuRjBrR8PM1W8yCnZG-9NGn4JqkOobqfbGRZ3c4N4_QvV0XM7nAznmjg60WrlPnZlJmICe6kuts0PYVME_rri5zA19aURVo-InXHQFG1QOl96k/s320/e.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6)&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Provide password of directory user here.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK-D3cT9hhyS55JpeTu2LObBz5OEBh-2ytxQHQx14tPoWoZnoKmagP2ETcj-yRgF0X5I0zL4Tsvwv9FMFpX3_ynNbv3w-7V7MiWsnRUHKjyV1M5hfnf8bHwoLAh5kqyDB1fjfpLsTLOGk/s1600/f.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK-D3cT9hhyS55JpeTu2LObBz5OEBh-2ytxQHQx14tPoWoZnoKmagP2ETcj-yRgF0X5I0zL4Tsvwv9FMFpX3_ynNbv3w-7V7MiWsnRUHKjyV1M5hfnf8bHwoLAh5kqyDB1fjfpLsTLOGk/s1600/f.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7)&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Here, you can see the value of ‘rangeUpper’ attribute. This returns integer value which is unique for Exchange servers.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5dio8K9bRzYbaHRH7DDksxrxu6SaCpPHE6_uqMHwdJKwLpsKBCP4L2sFpf0eTQ2zztzMuZXMvDkgVKmFwRzm80XwdaGcvT-agm1e_ffsw6YTlIwWE7LM7OZjq-cqmdwD1yixz1q2B6P4/s1600/g.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;231&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5dio8K9bRzYbaHRH7DDksxrxu6SaCpPHE6_uqMHwdJKwLpsKBCP4L2sFpf0eTQ2zztzMuZXMvDkgVKmFwRzm80XwdaGcvT-agm1e_ffsw6YTlIwWE7LM7OZjq-cqmdwD1yixz1q2B6P4/s320/g.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0038KT3WK&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
These are unique codes for each Exchange servers.&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;4397: &quot;Exchange Server 2000 RTM&quot;&lt;/li&gt;
&lt;li&gt;4406: &quot;Exchange Server 2000 Service Pack 3&quot;&lt;/li&gt;
&lt;li&gt;6870: &quot;Exchange Server 2003 RTM&quot;&lt;/li&gt;
&lt;li&gt;6936: &quot;Exchange Server 2003 Service Pack 3&quot;&lt;/li&gt;
&lt;li&gt;10628:&quot;Exchange Server 2007 RTM&quot;&lt;/li&gt;
&lt;li&gt;11116:&quot;Exchange Server 2007 Service Pack 1&quot;&lt;/li&gt;
&lt;li&gt;11222:&quot;Exchange Server 2007 Service Pack 2&quot;&lt;/li&gt;
&lt;li&gt;14625:&quot;Exchange Server 2007 Service Pack 3&quot;&lt;/li&gt;
&lt;li&gt;12640:&quot;Exchange Server 2010 RTM&quot;&lt;/li&gt;
&lt;li&gt;13214:&quot;Exchange Server 2010 Service Pack 1&quot;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
Now we will understand how can we achieve this via Java code.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Exchange Server Version information using Java Utility &lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1.&lt;/b&gt; First, you need to establish connection with LDAP server.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hashtable env = new Hashtable();&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; env.put(Context.INITIAL_CONTEXT_FACTORY,&quot;com.sun.jndi.ldap.LdapCtxFactory&quot;);&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; env.put(Context.SECURITY_AUTHENTICATION, &quot;Simple&quot;);&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; env.put(Context.SECURITY_PRINCIPAL, userID);&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; env.put(Context.SECURITY_CREDENTIALS, password);&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; env.put(Context.PROVIDER_URL, ldapURL);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ctx = new InitialLdapContext(env, null);&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. &lt;/b&gt;Once connection is done, you would need to search required attribute with filter information.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SearchControls controls = new SearchControls();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; controls.setSearchScope(SearchControls.SUBTREE_SCOPE);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String[] attributes = {&quot;rangeUpper&quot;};&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; controls.setReturningAttributes(attributes);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String filter = &quot;&quot;;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filter = &quot;(&amp;amp;(objectClass=top)(objectClass=attributeSchema))&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NamingEnumeration values = ctx.search(dirSearch, filter, controls);&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3.&lt;/b&gt; Now you get attribute value from values enumerator. &lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/7783129590222782277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/7783129590222782277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/7783129590222782277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/7783129590222782277'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2011/02/exchange-server-version-information.html' title='Track version info for any Exchange server'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixU8Mb_pRZXBmB_nwpplSdELEdIWfT0eCN9DjvWfH0MzzUpQ5iippTQ9ac8lLZcLJDP0WoY81YE5wJLYSlXWSSeRSdhU2F7gz5EUesq4-E9Oxczqa6VtgcKVDUnayCDYYRGeNOy7erksw/s72-c/a.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-594001340806857602</id><published>2010-10-05T08:47:00.000-07:00</published><updated>2010-10-05T08:56:06.712-07:00</updated><title type='text'>JSR 286 Portlet filter feature</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;JSR 286 introduces a new feature of portlet filter which is not included in earlier version of JSR specification. In this post, I am going to describe portlet filter feature briefly along with implementation code and example.&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;What is Portlet Filter? &lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;Portlet filter is a piece of code that can transform content of portlet request and response. The concept is almost same as we already learnt from Servlet filter. &lt;br /&gt;
A filter by implementing one of the javax.portlet.filter.XYZFilter interfaces and providing a public constructor taking no arguments. A filter is declared using the &amp;lt;filter&amp;gt; element in the portlet deployment descriptor. A filter or collection of filters can be configured for invocation by defining &amp;lt;filter-mapping&amp;gt; elements in the portlet deployment descriptor. &lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;Portlet Filter Lifecycle - &lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;When request comes for portlet access, portlet container locate list of filters first and create instances of filters from the list and then calls init(FilterConfig config) method of filter.&lt;br /&gt;
When the container receives an incoming request, it takes the first filter instance in the list and calls its doFilter method, passing in the PortletRequest and PortletResponse, and a reference to the FilterChain object it will use.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Depending on target method of doFilter call, the PortletRequest and PortletResponse must be instances of the following interfaces:&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1)&lt;/b&gt; ActionRequest and ActionResponse for processAction calls&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; EventRequest and EventResponse for processEvent calls&lt;br /&gt;
&lt;b&gt;3)&lt;/b&gt; RenderRequest and RenderResponse for render calls&lt;br /&gt;
&lt;b&gt;4)&lt;/b&gt; ResourceRequest and ResourceResponse for serveResource calls&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;Before a filter instance can be removed from service by the portlet container, the portlet container must first call the destroy method on the filter to enable the filter to release any resources and perform other cleanup operations. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;Portlet Filter Configurations on application -&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;A filter is defined in the deployment descriptor using the &amp;lt;filter&amp;gt; element. In this element, the programmer declares the following:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1)&lt;/b&gt; filter-name: used to map the filter to a portlet&lt;br /&gt;
&lt;b&gt;2) &lt;/b&gt;filter-class: used by the portlet container to identify the filter type&lt;br /&gt;
&lt;b&gt;3)&lt;/b&gt; lifecycle: used to determine for which lifecycles the filter should be applied&lt;br /&gt;
&lt;b&gt;4)&lt;/b&gt; init-params: initialization parameters for a filter&lt;br /&gt;
&lt;br /&gt;
Here is an example of a filter declaration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;filter&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;filter-name&amp;gt;MyPortletFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;filter-class&amp;gt;com.ibm.portletfiltersexample.MyPortletFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt;
&amp;lt;lifecycle&amp;gt;RENDER_PHASE&amp;lt;/lifecycle&amp;gt;&lt;br /&gt;
&amp;lt;/filter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once a filter has been declared in the portlet deployment descriptor, the &amp;lt;filter-mapping&amp;gt; element is used to define portlets in the portlet application to which the filter is to be applied. Filters can be associated with a portlet using the &amp;lt;portlet-name&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
PortletFiltersExample portlet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;filter-name&amp;gt;MyPortletFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;portlet-name&amp;gt;PortletFiltersExample&amp;lt;/portlet-name&amp;gt;&lt;br /&gt;
&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filters can be associated with groups of portlets using the ‘*’ character as a wildcard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;portlet-name&amp;gt;*&amp;lt;/portlet-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A portlet filter can be applied to different lifecycle method calls: processAction, processEvent, render, serveResource. The following constants are valid values for the &amp;lt;lifecycle&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1) ACTION_PHASE&lt;/b&gt; requesting that the portlet container processes this filter for the processAction lifecycle method. The filter implementation must implement the ActionFilter interface.&lt;br /&gt;
&lt;b&gt;2) EVENT_PHASE&lt;/b&gt; requesting that the portlet container processes this filter for the processEvent lifecycle method. The filter implementation must implement the EventFilter interface.&lt;br /&gt;
&lt;b&gt;3) RENDER_PHASE&lt;/b&gt; requesting that the portlet container processes this filter for the render lifecycle method. The filter implementation must implement the RenderFilter interface.&lt;br /&gt;
&lt;b&gt;4) RESOURCE_PHASE&lt;/b&gt; requesting that the portlet container processes this filter for the serveResource lifecycle method. The filter implementation must implement the ResourceFilter interface.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;filter&amp;gt;&lt;br /&gt;
&amp;lt;filter-name&amp;gt;MyPortletFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;filter-class&amp;gt;com.ibm.portletfiltersexample.MyPortletFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;lifecycle&amp;gt;ACTION_PHASE&amp;lt;/lifecycle&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;lifecycle&amp;gt;RENDER_PHASE&amp;lt;/lifecycle&amp;gt;&lt;br /&gt;
&amp;lt;/filter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example the portlet filter is applied to the action and render phase.&lt;br /&gt;
&lt;br /&gt;
And the code of filter class, which implements RenderFilter interface, is as&lt;b&gt;:&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
public class MyPortletFilter implements RenderFilter {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;public void init(javax.portlet.filter.FilterConfig arg0) throws PortletException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;// TODO Auto-generated method stub&lt;br /&gt;
&amp;nbsp; }&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&amp;nbsp; public void doFilter(RenderRequest req, RenderResponse res, FilterChain chain) throws IOException,PortletException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; System.out.println(&quot; DEBUG: M Portlet Filter Pre-processing a render request&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // Hand off control to the next filter in the chain, or the portlet itself if no more filters &amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;&amp;nbsp; chain.doFilter(req, res);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; System.out.println(&quot; DEBUG: M Portlet Filter Post-processing a render request&quot;); &lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; public void destroy()&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; System.out.println(&quot;DEBUG: Destroying My Portlet :-(&quot;);&amp;nbsp; &lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
If you need any sample application of portlet filter, you please click on followning link and download the attached applicaton &#39;PortletFiltersExample.war&#39; in dilip&#39;s post.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.ibm.com/developerworks/forums/thread.jspa?threadID=316941&amp;amp;tstart=0&quot;&gt;http://www.ibm.com/developerworks/forums/thread.jspa?threadID=316941&amp;amp;tstart=0&lt;/a&gt;&amp;nbsp; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/594001340806857602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/594001340806857602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/594001340806857602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/594001340806857602'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/10/jsr-286-portlet-filter-feature.html' title='JSR 286 Portlet filter feature'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-6639275801076909715</id><published>2010-08-23T03:14:00.000-07:00</published><updated>2011-04-11T11:59:35.375-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSR286"/><title type='text'>Serving resource using JSR 286</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=1931182280&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;In JSR 286, one more method is getting introduced in portlet life cycle that is serveResource, the advantage of this method is, we can get resource in portlet response which is not possible in JSR 168.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;Let&#39;s take an example for better understanding the use of serveResource method. Suppose, you have a collection of images and you need to display different images according to the selection. What you will do is?&lt;br /&gt;
First, you need to create a resource URL as mentioned below,&lt;/div&gt;&lt;br /&gt;
ResourceURL resourceURL = renderResponse.createResourceURL();&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;Now, you need to make a hiperlink through which you call the serveResource method. The code for reference is, &lt;/div&gt;&amp;lt;a href=&quot;&amp;lt;%=resourceURL.toString() %&amp;gt;&quot;&amp;gt;Resource&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;When you click on this link, it makes an Ajax call using resourceURL and call the serveResource method. Once it is called you can set the response for images (which is not effected in JSR 168) and write this byte format of image in XML format. Now response is ready which is called using Ajax callback methods. The reference code lines are,&lt;/div&gt;&lt;br /&gt;
public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;response.setContentType(&quot;image/jpeg&quot;);&lt;br /&gt;
&amp;nbsp;// Image in byte stream&lt;br /&gt;
&amp;nbsp;byte[] b = getImage(); //Returns image bytes&lt;br /&gt;
&amp;nbsp;// writing image byte stream on portlet response&lt;br /&gt;
&amp;nbsp;response.getPortletOutputStream().write(b);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Also, you can use different types of resources. What you need to do is?&lt;br /&gt;
you have to add the following code with resourceURL,&lt;br /&gt;
resourceURL.setResourceID(&quot;image&quot;);&lt;br /&gt;
&lt;br /&gt;
Through this ID you can perform your logic according to the image resource ID. You can get Id in serveResource method using code below,&lt;br /&gt;
&lt;br /&gt;
request.getResourceID().&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/6639275801076909715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/6639275801076909715' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/6639275801076909715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/6639275801076909715'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/08/serving-resource-using-jsr-286.html' title='Serving resource using JSR 286'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-3236370348444705632</id><published>2010-08-22T06:10:00.000-07:00</published><updated>2011-04-11T11:42:29.902-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>JSF Page navigation using RAD 7 Add Rule feature</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=1598727966&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;JSF provides page navigation using navigation-rule of faces-config.xml file. In this rule, you need to mention source JSP, destination JSP file and a token which returns from managed-bean method. &lt;br /&gt;
I will do the same thing using ‘Add Rule’ feature of RAD 7. Let’s see how we can do it?&lt;br /&gt;
&lt;br /&gt;
First you need to open the JSP page in design view and single click on ‘SAVE’ button. Thereafter, you need to select ‘Properties’ tab (Lower middle portion of RAD) and then select ‘hx:commandExButton’ option. There you can see Add Rule button.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLWfBywqsG1apMCuIvPE-Pv5UzAXOulxZCUEQtRRvgIrE4afYEWpgh_3C3G-kAr-JitFwqozbqLSD7q5cdLFECTi2LBXFj6aQgXm2m7oCNx1UTb1ndODG2IIDMVapBW18Df_Tk6tM3HWE/s1600/1.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;222&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLWfBywqsG1apMCuIvPE-Pv5UzAXOulxZCUEQtRRvgIrE4afYEWpgh_3C3G-kAr-JitFwqozbqLSD7q5cdLFECTi2LBXFj6aQgXm2m7oCNx1UTb1ndODG2IIDMVapBW18Df_Tk6tM3HWE/s320/1.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Please click on ‘Add Rule’ button (Right upper portion of properties tab). You will get ‘Add Navigational Rule’ window. Here you will mention final JSP page, the outcome name and action if required. Press OK button once you fill all the required information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMC10HJBnzpZPnD-ecLqJF6TuBhDDTzXX_pnY79CMhRWfyht1UDNfA2G5AYaXX1SGkETwrab_35XjJP_9IwUewXwy5_Z6N_jKrXQR837E5AaYMTS5pantZUtgaymdAkH-Mt4X9ea3UDmQ/s1600/2.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMC10HJBnzpZPnD-ecLqJF6TuBhDDTzXX_pnY79CMhRWfyht1UDNfA2G5AYaXX1SGkETwrab_35XjJP_9IwUewXwy5_Z6N_jKrXQR837E5AaYMTS5pantZUtgaymdAkH-Mt4X9ea3UDmQ/s320/2.GIF&quot; /&gt;&lt;/a&gt;&lt;/div&gt;You can see the added code in faces-config.xml file as,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;navigation-rule&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;from-view-id&amp;gt;/UserInformationView.jsp&amp;lt;/from-view-id&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;navigation-case&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;from-outcome&amp;gt;success&amp;lt;/from-outcome&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;to-view-id&amp;gt;/UserInfoDetails.jsp&amp;lt;/to-view-id&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/navigation-case&amp;gt;&lt;br /&gt;
&amp;lt;/navigation-rule&amp;gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/3236370348444705632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/3236370348444705632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/3236370348444705632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/3236370348444705632'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/08/jsf-page-navigation-using-rad-7-add.html' title='JSF Page navigation using RAD 7 Add Rule feature'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLWfBywqsG1apMCuIvPE-Pv5UzAXOulxZCUEQtRRvgIrE4afYEWpgh_3C3G-kAr-JitFwqozbqLSD7q5cdLFECTi2LBXFj6aQgXm2m7oCNx1UTb1ndODG2IIDMVapBW18Df_Tk6tM3HWE/s72-c/1.GIF" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-347732397856261704</id><published>2010-08-22T04:32:00.000-07:00</published><updated>2011-04-11T11:49:15.180-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>JSF page design using drag and drop feature</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B000053VC3&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;JSF is a standard specification for building user interfaces. In this specification, drag and drop feature is also useful. In this feature, you can use existing beans for designing the web page. Through drag and drop feature, we can design our page very fast. For designing, we will use ‘page data’ option of RAD which will available in ‘web’ perspective.&lt;/div&gt;First, you need to create a bean in which you can use two fields username and address. Codes for bean are,&lt;br /&gt;
&lt;br /&gt;
public class UserInfo {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String userName;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String address;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getAddress() { return address; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setAddress(String address) { this.address = address; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getUserName() { return userName; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setUserName(String userName) { this.userName = userName; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Now, you will need to use Page Data (lower left portion of the RAD) option of RAD in ‘web’ perspective. You would need to create a new ‘Page Bean’ using existing bean named ‘UserInfo’. You can create new ‘Page Bean’ once you right click on ‘Page Bean’ option and come into New&amp;gt;Java Bean option and click on ‘Java Bean’ option. You can see the picture below,&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkciEgYdo00UBcT93sCEgNtKKNoFtP4oiGZQIl6vCfcwD1FNO0Mayd4_JF9478zgXG1-VSedLw5HYLaa725p1Hpnq1DES9BRkR1K6dJHUbgQyZanwnnjME6Uns9M1kw5DIoEPgXwiZstQ/s1600/1.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkciEgYdo00UBcT93sCEgNtKKNoFtP4oiGZQIl6vCfcwD1FNO0Mayd4_JF9478zgXG1-VSedLw5HYLaa725p1Hpnq1DES9BRkR1K6dJHUbgQyZanwnnjME6Uns9M1kw5DIoEPgXwiZstQ/s320/1.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;You can see ‘Add JavaBean’ window where you can provide a new name (name starts with first lower case character) and add existing java-bean class. Also, if you want to make this bean class as managed bean, you can check the checkbox and select the scope of bean and press finish button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtF4R_-ZmJwusbdle0ZbqL853B6wIplYvi-LGXJa1X2LJMl4gJpA0p2MnyCEhxFtSwPAqkX3Up2hBGrA79XWY6mCpgCbD0-kuXtLGc6W0xyBhZ-qSiEtqcTwpUoVfKAzbE5Y2aaK1A7Vo/s1600/2.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;270&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtF4R_-ZmJwusbdle0ZbqL853B6wIplYvi-LGXJa1X2LJMl4gJpA0p2MnyCEhxFtSwPAqkX3Up2hBGrA79XWY6mCpgCbD0-kuXtLGc6W0xyBhZ-qSiEtqcTwpUoVfKAzbE5Y2aaK1A7Vo/s320/2.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Now, you need to drag the ‘userInfo’ Page Bean and drop it into cursor location of JSP page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEV4jGt7c9N1BlQhxnhyVd_5NfpL3uk6ylFKItacViP3mQu-bqqZna357Z1CYstAv5_8dnW369HS1BlhEOMINpZQT97lMIQbboXpEUp3qy6czykDsu7jIpyuERbo9VmBf_BpuRJe1UxvE/s1600/3.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;222&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEV4jGt7c9N1BlQhxnhyVd_5NfpL3uk6ylFKItacViP3mQu-bqqZna357Z1CYstAv5_8dnW369HS1BlhEOMINpZQT97lMIQbboXpEUp3qy6czykDsu7jIpyuERbo9VmBf_BpuRJe1UxvE/s320/3.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;You will see ‘Insert JavaBean’ wizard in picture below. Here you will see java bean entries as input field of JSP page. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ_ER9gVAGGFcQ_gzt8QYHRFU_jSWTPizy9A2kc5u5GcQESMw1kudvsRYOQqtjm_KGBtVbma1cBRIHRkQOAUSqka218Fb9QIq1O2Gt79cMWu-BfS-HY4PlP8t84BfZXDqwAEcw4adwQu4/s1600/4.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ_ER9gVAGGFcQ_gzt8QYHRFU_jSWTPizy9A2kc5u5GcQESMw1kudvsRYOQqtjm_KGBtVbma1cBRIHRkQOAUSqka218Fb9QIq1O2Gt79cMWu-BfS-HY4PlP8t84BfZXDqwAEcw4adwQu4/s320/4.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;You can add submit button also using ‘options’ button. When you click on options button, you will get following window. Provide label name and press OK button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfi6psG3gPayuYZlRqfe_V4wC_eHb4rJHyct_v1FtwBN8WY2NZZebnljuMMViz8sjYi46oFO9k8rC9OpK9td3jL9jasqjYLP53LbX8L-zHvwxBsV-8sCOlpSPjfWIUt6jSGC595PrVwY0/s1600/5.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfi6psG3gPayuYZlRqfe_V4wC_eHb4rJHyct_v1FtwBN8WY2NZZebnljuMMViz8sjYi46oFO9k8rC9OpK9td3jL9jasqjYLP53LbX8L-zHvwxBsV-8sCOlpSPjfWIUt6jSGC595PrVwY0/s320/5.GIF&quot; /&gt;&lt;/a&gt;&lt;/div&gt;You can see additional JSP code in picture below,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDkkctxh5_yaJ4trqdtogSez3deGnT9l6g4jtFTkR0iZ3LkyS4dDwH2e7JSsLPPFzwcTnK60D2k65PHDoSswkeFQlZLpjhSQBeAqVf1fe_OTKydXze5DUvoYPf0ZinDn5SFwgKNVDrioE/s1600/6.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;160&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDkkctxh5_yaJ4trqdtogSez3deGnT9l6g4jtFTkR0iZ3LkyS4dDwH2e7JSsLPPFzwcTnK60D2k65PHDoSswkeFQlZLpjhSQBeAqVf1fe_OTKydXze5DUvoYPf0ZinDn5SFwgKNVDrioE/s320/6.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;The preview of JSP page as, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqIshudiTP5pPd57jfpzYm5Fm1UcGCf0IjcAOPJXaPAGV9gvZtD_GZyi27LT7uSMWeTsEcy7QcedD0wVdZ6kScXUF9l6xGkrA-zH8MNMu0doV1aniefS-lR0hHT7tikWuZQusyPTb0ugU/s1600/7.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;54&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqIshudiTP5pPd57jfpzYm5Fm1UcGCf0IjcAOPJXaPAGV9gvZtD_GZyi27LT7uSMWeTsEcy7QcedD0wVdZ6kScXUF9l6xGkrA-zH8MNMu0doV1aniefS-lR0hHT7tikWuZQusyPTb0ugU/s320/7.GIF&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;In this way, we can implement drag and drop feature using java-bean classes. Apart from this, JSF provides lots of components in palette which you can drag and drop it in JSP file for designing your page vary efficiently. For each page, JSF automatically creates java-code which you can find in pagecode package.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/347732397856261704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/347732397856261704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/347732397856261704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/347732397856261704'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/08/jsf-page-design-using-drag-and-drop.html' title='JSF page design using drag and drop feature'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkciEgYdo00UBcT93sCEgNtKKNoFtP4oiGZQIl6vCfcwD1FNO0Mayd4_JF9478zgXG1-VSedLw5HYLaa725p1Hpnq1DES9BRkR1K6dJHUbgQyZanwnnjME6Uns9M1kw5DIoEPgXwiZstQ/s72-c/1.GIF" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-2127530327638204949</id><published>2010-08-22T04:12:00.000-07:00</published><updated>2011-04-11T11:50:04.097-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>JSF portlet application directory structure and required JAR files</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;You can see directory structure of basic JSF portlet application in picture below,&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmLfd2MHUPlfDbKv0bcqhEAFICDb-U4bXGdS4d1iFXvg_DZgpR2vJc8ai5DZsgMfkUG8SqohLplz-ZHm6zbIfAqbWBG5ansAc7GZcf_l8Qmp_8dw3wS6CyQRcihkw0hqBasxR2wiDpbpA/s1600/5.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmLfd2MHUPlfDbKv0bcqhEAFICDb-U4bXGdS4d1iFXvg_DZgpR2vJc8ai5DZsgMfkUG8SqohLplz-ZHm6zbIfAqbWBG5ansAc7GZcf_l8Qmp_8dw3wS6CyQRcihkw0hqBasxR2wiDpbpA/s400/5.GIF&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0048CIDVE&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;In this diagram, you can see ‘src’ folder which contains all the source code and WebContent folder which contains the web pages and WEB-INF directory. In WEB-INF directory, we do have three required files these are,&lt;br /&gt;
&lt;br /&gt;
1) faces-config.xml file&lt;br /&gt;
2) portlet.xml file&lt;br /&gt;
3) web.xml file&lt;br /&gt;
&lt;br /&gt;
and we do have four required JAR files. These are,&lt;br /&gt;
&lt;br /&gt;
1) icu4j_3_4_1.jar&lt;br /&gt;
2) jsf-ibm.jar&lt;br /&gt;
3) jsf-impl-messages.jar&lt;br /&gt;
4) jsf-portletbridge.jar&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/2127530327638204949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/2127530327638204949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/2127530327638204949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/2127530327638204949'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/08/jsf-portlet-application-directory.html' title='JSF portlet application directory structure and required JAR files'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmLfd2MHUPlfDbKv0bcqhEAFICDb-U4bXGdS4d1iFXvg_DZgpR2vJc8ai5DZsgMfkUG8SqohLplz-ZHm6zbIfAqbWBG5ansAc7GZcf_l8Qmp_8dw3wS6CyQRcihkw0hqBasxR2wiDpbpA/s72-c/5.GIF" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-868027159066042008</id><published>2010-08-22T04:07:00.000-07:00</published><updated>2011-04-11T11:50:41.798-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>JSF portlet development using RAD 7.0</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=1430219580&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;IBM RAD 7.0 provides integrated feature for developing JSF based portlets.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Through RAD, you can develop basic JSF portlet. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Let’s see, how can we develop JSF portlet using RAD 7.0? First you need to open the RAD 7.0 and come into File&amp;gt;New&amp;gt;Project option. You can see the picture below.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo7cy2WVigFtdCyQh2MgmS6BREQYbXmeiDt7kqSUEdZyxeJlZy9pRos1BXsgLLOTpwLdBP-0dXc94Qyrwxv0OoMOFHJ5wfiGt9WRLmQqxRPhvBSrGFKNlY6Q695Fz5NYe5uJ52GBQ4oGE/s1600/1.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo7cy2WVigFtdCyQh2MgmS6BREQYbXmeiDt7kqSUEdZyxeJlZy9pRos1BXsgLLOTpwLdBP-0dXc94Qyrwxv0OoMOFHJ5wfiGt9WRLmQqxRPhvBSrGFKNlY6Q695Fz5NYe5uJ52GBQ4oGE/s320/1.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;While creating new project, please select portlet project option and press Next button.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkJuWlOv08Wg8cuoOuesc0EOuhQ9VYYO7noGg9G6vuWUbLqpJIen-7gJGSXOBZlwyCbTOEhHv0Whva_HcRUGwBhVKWuscsaSIjoytm420h82xIizsIXMURWy2acbGhSATPTD7P-Wr34ZE/s1600/2.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkJuWlOv08Wg8cuoOuesc0EOuhQ9VYYO7noGg9G6vuWUbLqpJIen-7gJGSXOBZlwyCbTOEhHv0Whva_HcRUGwBhVKWuscsaSIjoytm420h82xIizsIXMURWy2acbGhSATPTD7P-Wr34ZE/s320/2.GIF&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;You will get ‘New Portlet Project’ wizard where you need to mention project name, portal server version, portlet API and portlet type. Press Next once you fill all the required information.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMjnSP7C95lIBHzsiwkAh3kE-oOYEQ1lpb-ZUjrDGt1en2EX9ITL_0FkwYomdQ4AiRQg6umFpik5PuA3BGWMS-kNRdbP9g76Fcufq9zqpXuzP2qab2JNaNjQ0J5ZN2Mrbbc8a35zH2ADo/s1600/3.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMjnSP7C95lIBHzsiwkAh3kE-oOYEQ1lpb-ZUjrDGt1en2EX9ITL_0FkwYomdQ4AiRQg6umFpik5PuA3BGWMS-kNRdbP9g76Fcufq9zqpXuzP2qab2JNaNjQ0J5ZN2Mrbbc8a35zH2ADo/s320/3.GIF&quot; width=&quot;287&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;Now you need to add portlet modes and press finish button and you will get a basic JSF portlet application with required JAR file and configuration files.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrIJWFp_OT7MaV1rPg9FFi_rEw4pdHGkdjngPtITgHFVHWADPddMYLxYp6NbpcHqMvY9lNbtAiCnwWRerogP0oCgTG2qkYYnW1vljVwlG5zuoNBEC_QGPLtNduV7c7HwJGdSmgCs5D7Vc/s1600/4.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrIJWFp_OT7MaV1rPg9FFi_rEw4pdHGkdjngPtITgHFVHWADPddMYLxYp6NbpcHqMvY9lNbtAiCnwWRerogP0oCgTG2qkYYnW1vljVwlG5zuoNBEC_QGPLtNduV7c7HwJGdSmgCs5D7Vc/s320/4.GIF&quot; width=&quot;287&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/868027159066042008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/868027159066042008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/868027159066042008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/868027159066042008'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/08/jsf-portlet-development-using-rad-70.html' title='JSF portlet development using RAD 7.0'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo7cy2WVigFtdCyQh2MgmS6BREQYbXmeiDt7kqSUEdZyxeJlZy9pRos1BXsgLLOTpwLdBP-0dXc94Qyrwxv0OoMOFHJ5wfiGt9WRLmQqxRPhvBSrGFKNlY6Q695Fz5NYe5uJ52GBQ4oGE/s72-c/1.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-1715065209845624830</id><published>2010-07-07T05:31:00.000-07:00</published><updated>2011-04-11T12:00:29.531-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSR286"/><title type='text'>How portlet modes work in portal environment?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B00008L3U4&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;I have one JSR-168 based portlet in which I am using all kinds of modes. These are,&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1)&lt;/b&gt; View Mode&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; Edit Mode&lt;br /&gt;
&lt;b&gt;3)&lt;/b&gt; Help Mode&lt;br /&gt;
&lt;b&gt;4)&lt;/b&gt; Edit-Default Mode&lt;br /&gt;
&lt;b&gt;5)&lt;/b&gt; Config Mode&lt;br /&gt;
&lt;br /&gt;
Now, I have one question in my mind. What is the use of these modes? If we take an example of any web-based application which is deployed on web container and this application does not have any kind of mode. Here I am going to describe a brief description of portlet modes which are helpful to understand the benefits of portlet application over web-based J2EE application.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 2px;&quot;&gt;&lt;b&gt;View Mode -&lt;/b&gt;&lt;/div&gt;This is the landing page of the portlet.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;Edit Mode -&lt;/b&gt;&lt;/div&gt;This is the different page of the portlet for storing personalized settings. These settings allowed for a particular instance of the portlet for particular portal user. If we make another instance of portlet in another page, personalized variable is not allowed to accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;Edit - Default Mode -&lt;/b&gt;&lt;/div&gt;This is also different page of the portlet. We are using this mode for storing the configuration parameters of the portlet which are accessible for all portal users for the same portlet instances. For Example. An admin stores some parameters in edit-default mode of portlet and check the availability of these parameters in other portal users. These parameters are available for all portal users for a particular instance of the portlet suppose you add same portlet in different page, you will not allowed to see stored parameters for different instances of portlet.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;Config Mode -&lt;/b&gt;&lt;/div&gt;This is also different page of the portlet. We are using this mode for storing the configuration parameters of portlets which is accessible for all portal users for all portlet instances. &lt;br /&gt;
&lt;br /&gt;
Now we have a big picture, how these modes are working in portal environment? We have tested this procedure for IBM Web Sphere portal server 6.0 using RAD 7.0 and JSR 168 specification.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/1715065209845624830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/1715065209845624830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/1715065209845624830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/1715065209845624830'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/07/how-portlet-modes-work-in-portal.html' title='How portlet modes work in portal environment?'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-654172385920246217</id><published>2010-06-29T23:45:00.000-07:00</published><updated>2011-04-11T11:53:07.922-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>JSF portlet example using datatable</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B004FEG2MM&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;This is also a good feature of JSF in which we are using datatable tag of JSF html tab library. You can find this tag on Palette portion. For implementing into webpage, you just need to drag this from palette and drop this in cursor position of webpage.&lt;br /&gt;
&lt;br /&gt;
You will get the default code in webpage and there is no need to provide loop for table items. This tag manages all the list items according to the prototype provided by us.&lt;br /&gt;
Only one thing you need to keep in mind the value field in datatable tag which makes a call for perInfoAll method from syncExLoginManagedBean and the var field is the name of the table through which we can fetch the table items.&lt;br /&gt;
In datatable tag, facet tag provides the header of table and outputText provides the text value in data table.&lt;/div&gt;&lt;br /&gt;
&amp;lt;hx:dataTableEx border=&quot;0&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;&lt;br /&gt;
columnClasses=&quot;columnClass1&quot; headerClass=&quot;headerClass&quot;&lt;br /&gt;
footerClass=&quot;footerClass&quot; rowClasses=&quot;rowClass1, rowClass2&quot;&lt;br /&gt;
id=&quot;tableEx1&quot; styleClass=&quot;dataTableEx&quot; value=&quot;#{syncExLoginManagedBean.perInfoAll}&quot; var=&quot;item&quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;f:facet name=&quot;header&quot;&amp;gt;&lt;br /&gt;
&amp;lt;h:outputText value=&quot;This is &#39;SyncEx data Table&#39; demo&quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/f:facet&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;lt;hx:columnEx id=&quot;columnEx1&quot;&amp;gt;&lt;br /&gt;
&amp;lt;f:facet name=&quot;header&quot;&amp;gt;&lt;br /&gt;
&amp;lt;h:outputText id=&quot;text1&quot; styleClass=&quot;outputText&quot; value=&quot;ID&quot;&amp;gt;&amp;lt;/h:outputText&amp;gt;&lt;br /&gt;
&amp;lt;/f:facet&amp;gt;&lt;br /&gt;
&amp;lt;h:outputText value=&quot;#{item.id}&quot;&amp;gt;&amp;lt;/h:outputText&amp;gt;&lt;br /&gt;
&amp;lt;/hx:columnEx&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;lt;hx:columnEx id=&quot;columnEx2&quot;&amp;gt;&lt;br /&gt;
&amp;lt;f:facet name=&quot;header&quot;&amp;gt;&lt;br /&gt;
&amp;lt;h:outputText id=&quot;text2&quot; styleClass=&quot;outputText&quot; value=&quot;Name&quot;&amp;gt;&amp;lt;/h:outputText&amp;gt;&lt;br /&gt;
&amp;lt;/f:facet&amp;gt;&lt;br /&gt;
&amp;lt;h:outputText value=&quot;#{item.name}&quot;&amp;gt;&amp;lt;/h:outputText&amp;gt;&lt;br /&gt;
&amp;lt;/hx:columnEx&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;lt;hx:columnEx id=&quot;columnEx3&quot;&amp;gt;&lt;br /&gt;
&amp;lt;f:facet name=&quot;header&quot;&amp;gt;&lt;br /&gt;
&amp;lt;h:outputText id=&quot;text3&quot; styleClass=&quot;outputText&quot; value=&quot;Phone&quot;&amp;gt;&amp;lt;/h:outputText&amp;gt;&lt;br /&gt;
&amp;lt;/f:facet&amp;gt;&lt;br /&gt;
&amp;lt;h:outputText value=&quot;#{item.phone}&quot;&amp;gt;&amp;lt;/h:outputText&amp;gt;&lt;br /&gt;
&amp;lt;/hx:columnEx&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;lt;hx:columnEx id=&quot;columnEx4&quot;&amp;gt;&lt;br /&gt;
&amp;lt;f:facet name=&quot;header&quot;&amp;gt;&lt;br /&gt;
&amp;lt;h:outputText id=&quot;text4&quot; styleClass=&quot;outputText&quot; value=&quot;City&quot;&amp;gt;&amp;lt;/h:outputText&amp;gt;&lt;br /&gt;
&amp;lt;/f:facet&amp;gt;&lt;br /&gt;
&amp;lt;h:outputText value=&quot;#{item.city}&quot;&amp;gt;&amp;lt;/h:outputText&amp;gt;&lt;br /&gt;
&amp;lt;/hx:columnEx&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;lt;f:facet name=&quot;footer&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;h:outputText value=&quot;The End&quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/f:facet&amp;gt;&lt;br /&gt;
&amp;lt;/hx:dataTableEx&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXgcBH9f-wJt61wJFPZbOp0k-8WExAoYhFFNqMEdhET9tToPNcpzKFXKtV93PZxQtKMQOR5Jfuqhk1CjMqThyMj-nwuQhFP_eVtpadqeR0aNqjiS5Tx4lAI54G-b5ml6TUZMXpr9lN9ns/s1600/1.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXgcBH9f-wJt61wJFPZbOp0k-8WExAoYhFFNqMEdhET9tToPNcpzKFXKtV93PZxQtKMQOR5Jfuqhk1CjMqThyMj-nwuQhFP_eVtpadqeR0aNqjiS5Tx4lAI54G-b5ml6TUZMXpr9lN9ns/s400/1.GIF&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/654172385920246217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/654172385920246217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/654172385920246217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/654172385920246217'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/06/jsf-portlet-example-using-datatable.html' title='JSF portlet example using datatable'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXgcBH9f-wJt61wJFPZbOp0k-8WExAoYhFFNqMEdhET9tToPNcpzKFXKtV93PZxQtKMQOR5Jfuqhk1CjMqThyMj-nwuQhFP_eVtpadqeR0aNqjiS5Tx4lAI54G-b5ml6TUZMXpr9lN9ns/s72-c/1.GIF" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-6812218431547404300</id><published>2010-06-29T23:39:00.000-07:00</published><updated>2011-04-11T11:55:30.674-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>JSF page script code using RAD quick edit feature</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0041VYKZU&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;First you need to open the JSP page in design view and single click on ‘SAVE’ button. Thereafter, you need to select ‘Quick Edit’ tab (Lower middle portion of RAD) and then select required function which will execute when you click on SAVE button. Suppose you want to implement onclick function once you click on SAVE button so you need to select onclick once and then click on right portion where you can add the required code for onclick java script function.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7VUP2N_DNx8RssysyzWsg5LIhWItyyps0yy0CU46xc6z-_Sm6KNhmuhiVwF2DdlYw9M-cn2OGiUb6BIn7hDciyvMdaDGoYTfr59bk5Q-9x1BVnK3-35rhON2hg21CDlRq0UpdktF1qoA/s1600/1.GIF&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;277&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7VUP2N_DNx8RssysyzWsg5LIhWItyyps0yy0CU46xc6z-_Sm6KNhmuhiVwF2DdlYw9M-cn2OGiUb6BIn7hDciyvMdaDGoYTfr59bk5Q-9x1BVnK3-35rhON2hg21CDlRq0UpdktF1qoA/s400/1.GIF&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the added code in JSP file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
function &lt;portlet:namespace&gt;func_1(thisObj, thisEvent) {&lt;br /&gt;
//use &#39;thisObj&#39; to refer directly to this component instead of keyword &#39;this&#39;&lt;br /&gt;
//use &#39;thisEvent&#39; to refer to the event generated instead of keyword &#39;event&#39;&lt;br /&gt;
alert(&quot;hello&quot;);&lt;br /&gt;
}&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hx:commandExButton id=&quot;button1&quot; styleClass=&quot;commandExButton&quot; type=&quot;submit&quot; value=&quot;SAVE&quot; action=&quot;#{pc_UserInformationView.doButton1Action}&quot; onclick=&quot;return #{facesContext.externalContext.response.namespace}func_1(this, event);&quot;&amp;gt;&lt;br /&gt;
&amp;lt;/hx:commandExButton&amp;gt; &lt;/portlet:namespace&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/6812218431547404300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/6812218431547404300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/6812218431547404300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/6812218431547404300'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/06/jsf-page-script-code-using-rad-quick.html' title='JSF page script code using RAD quick edit feature'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7VUP2N_DNx8RssysyzWsg5LIhWItyyps0yy0CU46xc6z-_Sm6KNhmuhiVwF2DdlYw9M-cn2OGiUb6BIn7hDciyvMdaDGoYTfr59bk5Q-9x1BVnK3-35rhON2hg21CDlRq0UpdktF1qoA/s72-c/1.GIF" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-6135271073455089196</id><published>2010-06-20T07:02:00.000-07:00</published><updated>2011-04-11T11:55:52.164-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>JSF tags reference</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B001UV4XHY&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;While developing JSF pages, we require a good understanding of JSF tags libraries. Mainly JSF provides two kind of tags library one is for core and second is for HTML.&lt;br /&gt;
Let&#39;s try to understand, how these two tags library has been used in JSF pages? You have to add the following lines in JSF pages,&lt;br /&gt;
&lt;br /&gt;
JSF tag libraries-core&lt;br /&gt;
%@ taglib uri=&quot;http://java.sun.com/jsf/core&quot; prefix=&quot;f&quot; %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JSF tag libraries-HTML&lt;br /&gt;
&amp;lt;%@ taglib uri=&quot;http://java.sun.com/jsf/html&quot; prefix=&quot;h&quot; %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For understanding the core tags library in detail, you can go through the following link ,http://myfaces.apache.org/core20/myfaces-impl/tlddoc/f/tld-summary.html&lt;br /&gt;
&lt;br /&gt;
For understanding the HTML tags library in detail, you can go through the following link &lt;br /&gt;
http://myfaces.apache.org/core20/myfaces-impl/tlddoc/h/tld-summary.html&lt;br /&gt;
&lt;br /&gt;
In my searching I found some others links which are good to understand the basics of tags library. These are,&lt;br /&gt;
&lt;br /&gt;
http://www.exadel.com/tutorial/jsf/jsftags-guide.html&lt;br /&gt;
http://www.roseindia.net/jsf/JSF_Core_Tag_Reference.shtml&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/6135271073455089196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/6135271073455089196' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/6135271073455089196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/6135271073455089196'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/06/jsf-tags-reference.html' title='JSF tags reference'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-8475386021399173684</id><published>2010-06-19T06:00:00.000-07:00</published><updated>2011-04-11T11:14:07.029-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>JSF inter portlet communication</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0977240630&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Let me start with Inter portlet communication feature of portlets. Firstly, I will give you a brief idea about Inter portlet communication. This is not a new terminology. As web-developers who are using servlets, JSPs and portlets for development purpose. If they want to pass some parameters from one resource to another resource what they will do? In servlets, they can use RequestDispatcher to achieve this functionality and for portlets itself, they can use Inter portlet communication feature.&lt;br /&gt;
&lt;br /&gt;
In portlets, Inter portlet communication can implement by following ways.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1)&lt;/b&gt; Using portlet session in Application scope.&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; Using IBM&#39;s property broker services (portlet wiring).&lt;br /&gt;
&lt;b&gt;3)&lt;/b&gt; Eventing using JSR -286 specifications.&lt;br /&gt;
&lt;b&gt;4)&lt;/b&gt; Public render parameter using JSR-286 specification.&lt;br /&gt;
&lt;br /&gt;
In this post, I will describe Inter portlet communication using portlet session (first point) and JSF eventing feature. You can see detail description of &lt;a href=&quot;http://diliptechnotes.blogspot.com/2010/06/understanding-java-server-faces-portlet.html&quot;&gt;JSF portlet framework flow&lt;/a&gt; in one of our posts. &lt;br /&gt;
&amp;nbsp;&amp;nbsp; I am taking an example of two portlets. First portlet is calculator portlet which contains two numbers and four submit buttons (for ADD, SUBTRACT, MULTIPLY and DIVIDE operations) and second portlet shows the result according to the operation performed by first portlet. You can see the whole picture of Inter portlet communication in the picture below,&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij5iXfRU0Jv6S5ASGphsz9kkcZfbo5EFGfkIRc9XyqCbkKKbk6XFdwkP3GiR3Wog9Mf6c5QktvPrNZiDpJ-ZVYt4_ZylGyMOn-9XtQpufUAMR0djXkCSNq7dwZLCmL-XSFID5ATmKGkuo/s1600/untitled.bmp&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij5iXfRU0Jv6S5ASGphsz9kkcZfbo5EFGfkIRc9XyqCbkKKbk6XFdwkP3GiR3Wog9Mf6c5QktvPrNZiDpJ-ZVYt4_ZylGyMOn-9XtQpufUAMR0djXkCSNq7dwZLCmL-XSFID5ATmKGkuo/s320/untitled.bmp&quot; width=&quot;236&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, you need to add portlet configuration for both portlets in portlet.xml file. You need to add init parameters which tell the JSF portlet about the render file (JSP file).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;For SyncExCalculator portlet:&lt;/b&gt;&lt;br /&gt;
&amp;lt;init-param&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;com.ibm.faces.portlet.page.view&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;value&amp;gt;/SyncExCalculatorView.jsp&amp;lt;/value&amp;gt;&lt;br /&gt;
&amp;lt;/init-param&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;For SyncExCalculatorResult portlet:&lt;/b&gt;&lt;br /&gt;
&amp;lt;init-param&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;com.ibm.faces.portlet.page.view&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;value&amp;gt;/SyncExCalculatorResultView.jsp&amp;lt;/value&amp;gt;&lt;br /&gt;
&amp;lt;/init-param&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Now, both portlets are rendered successfully and call both JSPs which look as given picture below.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUiFML8fi7scRPISPmM1-ScEAnj5_lik8F7VNWbzT08dH7uKe0C2uXLjLJC2r1OFLJxivEySYnBagI9AMqXoUUx_ekHr45UfBAGUC0kmXF7r9WHTNu924O6hpqwj-mO_vILhcOOIaSATs/s1600/portlet+screens.bmp&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUiFML8fi7scRPISPmM1-ScEAnj5_lik8F7VNWbzT08dH7uKe0C2uXLjLJC2r1OFLJxivEySYnBagI9AMqXoUUx_ekHr45UfBAGUC0kmXF7r9WHTNu924O6hpqwj-mO_vILhcOOIaSATs/s320/portlet+screens.bmp&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&amp;nbsp; We need to understand how the action is being created from  SyncExCalculatorView.jsp (first portlet).&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;lt;h:commandButton id=&quot;addsubmit&quot;  action=&quot;#{&lt;b&gt;CalculatorController.add&lt;/b&gt;}&quot; type=&quot;submit&quot; value=&quot;ADD&quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here, you can see the action which is for add() method of CalculatorController bean. Now we need to understand how JSF gets executed add method. When I click on ADD button of portlet, JSF portlet looks up the entry of the managed bean (CalculatorController) in faces-config.xml file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;managed-bean&amp;gt;&lt;br /&gt;
&amp;lt;managed-bean-name&amp;gt;CalculatorController&amp;lt;/managed-bean-name&amp;gt;&lt;br /&gt;
&amp;lt;managed-bean-class&amp;gt;com.yash.beans.CalculatorController&amp;lt;/managed-bean-class&amp;gt;&lt;br /&gt;
&amp;lt;managed-bean-scope&amp;gt;&lt;b&gt;session&lt;/b&gt;&amp;lt;/managed-bean-scope&amp;gt;&lt;br /&gt;
&amp;lt;/managed-bean&amp;gt; &lt;br /&gt;
Here, scope of bean is session which contains the bean in session scope.&lt;br /&gt;
&lt;br /&gt;
In this way, JSF looks up the bean and calls add method of bean. In add method of bean we provide all business logics (perform logic for adding two numbers) and store the results in FacesContext using ApplicationMap. I am storing the result value in ApplicationMap since I need to use result value in other portlet. The code lines are,&lt;br /&gt;
&lt;br /&gt;
FacesContext context = FacesContext.getCurrentInstance();&lt;br /&gt;
context.getExternalContext().getApplicationMap().put(&quot;result&quot;, new Integer(result));&lt;br /&gt;
&lt;br /&gt;
&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0910627878&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;The result has been saved in FacesContext. Now I have to retrieve the same result value in other portlet so what will I do? I will make another method which retrieves the result value from FacesContext. The code lines are,&lt;br /&gt;
&lt;br /&gt;
FacesContext context = FacesContext.getCurrentInstance();&lt;br /&gt;
Map requestParams = context.getExternalContext().getApplicationMap();&lt;br /&gt;
result1 = ((Integer)requestParams.get(&quot;result&quot;)).intValue();&lt;br /&gt;
&lt;br /&gt;
You can get the result value in JSP (SyncExCalculatorResultView.jsp) of another portlet as,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h:outputText value=&quot;#{CalculatorController.result1}&quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code of line does the same thing. This line makes a call for result1 method of CalculatorController bean and uses the same entry of managed bean which I have used earlier for first portlet.&lt;br /&gt;
&lt;br /&gt;
This is the way, We can implement Inter portlet communication feature using Java Server Faces Specification. You can mail us on &lt;a href=&quot;mailto:dilip.gupta2005@gmail.com&quot;&gt;my mail id&lt;/a&gt; for source code.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/8475386021399173684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/8475386021399173684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/8475386021399173684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/8475386021399173684'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/06/jsf-inter-portlet-communication.html' title='JSF inter portlet communication'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij5iXfRU0Jv6S5ASGphsz9kkcZfbo5EFGfkIRc9XyqCbkKKbk6XFdwkP3GiR3Wog9Mf6c5QktvPrNZiDpJ-ZVYt4_ZylGyMOn-9XtQpufUAMR0djXkCSNq7dwZLCmL-XSFID5ATmKGkuo/s72-c/untitled.bmp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-1537923885729384717</id><published>2010-06-18T12:45:00.000-07:00</published><updated>2011-04-11T11:57:00.719-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>Understanding Java Server Faces Portlet Workflow</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0000TII8C&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;For understanding the JSF portlet workflow, Let&#39;s start with portlet life cycle in which we are using two important methods. These are,&lt;br /&gt;
&lt;b&gt;1)&lt;/b&gt; doView()&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; processAction()&lt;br /&gt;
&lt;br /&gt;
When portlet renders first time, it calls doView() method of portlet life cycle. When we create any action (Click on link, submit button) processAction() method gets called, followed by doView() method. In doView() method, we usually include JSP which represents portlet&#39;s view. We perform these (portlet mode) operations on portlet class which includes in &amp;lt;portlet-class&amp;gt; tag under portlet.xml file. This class is modifiable.&lt;br /&gt;
&lt;br /&gt;
In the same way, Java Server Faces specification also looks the portlet entry in &amp;lt;portlet-class&amp;gt; tag under portlet.xml file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;portlet-class&amp;gt;com.ibm.faces.portlet.FacesPortlet&amp;lt;/portlet-class&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, FacesPortlet is not allowed to modify the code. It contains all modes as I described in portlet life cycle and it understands all actions and JSP page includes in its own way. Here, I will describe you how JSF will do this.Firstly, I will let you know how JSF includes JSP on rendering phase of portlet. You have to include following lines in portlet.xml file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;init-param&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;com.ibm.faces.portlet.page.view&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;value&amp;gt;/CalculatorPortletView.jsp&amp;lt;/value&amp;gt;&lt;br /&gt;
&amp;lt;/init-param&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JSF portlet class is much smarter which understands JSP file and includes in to render phase. We do not need to create an instance of RequestDispatcher and include the JSP file as we do in portlet life cycle.&lt;br /&gt;
&lt;br /&gt;
Now, we need to understand, how action is handled by JSF? since we can not modify FacesPortlet class as we can do in portlet life cycle. This is also a very tricky approach which is done by JSF. When we click on any button or link in JSP page, JSF internally makes a call of processAction() method of portlet which finds managed bean class in faces-config.xml file and creates an instance of bean in different scope (request, session). You can understand this by following example,&lt;br /&gt;
&lt;br /&gt;
&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0009SPS8W&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Here, we are creating one action which executes when we click on submit button. It creates an action add which will get in CalculatorController managed bean .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h:commandButton id=&quot;submit&quot; action=&quot;#{CalculatorController.add}&quot; value=&quot;ADD&quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The managed bean entry is present in faces-config.xml which creates a instance of CalculatorController bean and calls add() (event action called from JSP page) method in it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;managed-bean&amp;gt;&lt;br /&gt;
&amp;lt;managed-bean-name&amp;gt;CalculatorController&amp;lt;/managed-bean-name&amp;gt;&lt;br /&gt;
&amp;lt;managed-bean-class&amp;gt;com.yash.CalculatorController&amp;lt;/managed-bean-class&amp;gt;&lt;br /&gt;
&amp;lt;managed-bean-scope&amp;gt;session&amp;lt;/managed-bean-scope&amp;gt;&lt;br /&gt;
&amp;lt;/managed-bean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now action created from JSP file executes completely. Thereafter, it looks up the navigation rule which provides the way for redirecting control to another JSP file or the same file. The codes for navigation rule are,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;navigation-rule&amp;gt;&lt;br /&gt;
&amp;lt;from-view-id&amp;gt;/CalculatorPortletView.jsp&amp;lt;/from-view-id&amp;gt;&lt;br /&gt;
&amp;lt;navigation-case&amp;gt;&lt;br /&gt;
&amp;lt;from-outcome&amp;gt;success&amp;lt;/from-outcome&amp;gt;&lt;br /&gt;
&amp;lt;to-view-id&amp;gt;/result.jsp&amp;lt;/to-view-id&amp;gt;&lt;br /&gt;
&amp;lt;/navigation-case&amp;gt;&lt;br /&gt;
&amp;lt;navigation-case&amp;gt;&lt;br /&gt;
&amp;lt;from-outcome&amp;gt;failure&amp;lt;/from-outcome&amp;gt;&lt;br /&gt;
&amp;lt;to-view-id&amp;gt;/CalculatorPortletView.jsp&amp;lt;/to-view-id&amp;gt;&lt;br /&gt;
&amp;lt;/navigation-case&amp;gt;&lt;br /&gt;
&amp;lt;/navigation-rule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code represents source JSP file CalculatorPortletView.jsp (form-view-id) from where the action creates and according to the return statement of add method, it forwards the request to another JSP file.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/1537923885729384717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/1537923885729384717' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/1537923885729384717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/1537923885729384717'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/06/understanding-java-server-faces-portlet.html' title='Understanding Java Server Faces Portlet Workflow'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-4434735510839444784</id><published>2010-06-18T04:05:00.000-07:00</published><updated>2011-04-11T11:58:26.607-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>Java Server Faces Page Lifecycle</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;This section discusses the various phases involved in a typical JSF page life cycle. JSF life cycle is expressed in the following phases:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_WlwnayD_hxDh9M-iUKDNlaoma2gbfAoAoVS0hn2pNI_mJW4OimzyvSX6SkIEmwVqWs5p64f1dxxPgaYkf1qR2ts_XZ2cC7YJpTJHVZxqLgJHL1kjoX6f9OTupaPOQla1ZpFPMScxMLg/s1600/untitled.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_WlwnayD_hxDh9M-iUKDNlaoma2gbfAoAoVS0hn2pNI_mJW4OimzyvSX6SkIEmwVqWs5p64f1dxxPgaYkf1qR2ts_XZ2cC7YJpTJHVZxqLgJHL1kjoX6f9OTupaPOQla1ZpFPMScxMLg/s320/untitled.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B002C7489S&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Reconstruct Component Tree&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
This phase is initiated when a page request is submitted to the server (i.e a user clicks a submit button on a web page). During this phase the server creates a hierarchical tree of UI components which represent the elements constituting the page. The JSF engine parses this component tree and wires all the declared event handlers and validators to the specific components. All this information is finally persisted in a FacesContext. A faces context is nothing but a snapshot, an object tree representation of the incoming page. This information is utilized in the following phases until the response is rendered.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;Apply Request Values&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
In this phase the JSF engine applies the values from the request object (parameters) to the respective components in the component tree (available from the current FacesContext) created in the previous phase. These values are stored locally in the UI components. In the event that conversion errors occur during storage of these values, they are queued up in the FacesContext, so they can be displayed when the content is finally rendered. If any event handlers were associated with specific components, they are notified of the relevant events.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;Perform Validations&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
After the request values have been applied, the JSF page enters the validation phase, wherein all the registered validators are applied to relevant UI components. The locally stored values of these components are run through the associated validators and validation errors, if any, are queued in the FacesContext. If validation errors occur in this phase, the JSF engine skips the next two phases and the page enters the Render Response phase. The page is reconstructed from the component tree and displayed along with the validation errors and any errors or messages queued up in the FacesContext from the Apply Request Values phase. If no validation errors are detected, the page enters the Synchronize Model phase and any events generated at this point are broadcast to the interested event handlers.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;Synchronize Model&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
In this phase any model objects associated with UI components are synchronized to the UI component&#39;s local value. If any conversion error occurs at this point, (e.g. a String value is mapped to an Integer property in a model object and cannot be parsed into an integer), the errors are queued in the FacesContext and the page enters the Render Response. The page is recreated from the component tree and rendered to the user displaying the conversion errors which occurred in this phase. Also any events generated at this point are broadcast to the interested event handlers.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;Invoke Application Logic&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
After the model has been successfully synchronized, the page enters this phase. In this phase the JSF engine handles all application level events, such as linking to another page, performing updates to back end services, database updates, etc. When processing an application level event, a default ActionListener determines the outcome of the Action and passes the outcome to the NavigationHandler. The NavigationHandler then looks up the response to be generated from the navigation rule defined in the application configuration file, based on the outcome of the application logic, i.e. success or failure. The component tree for the next page to be generated is constructed and the page enters the final stage.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0046UY3X0&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Render Response&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
In this phase the JSF engine renders the UI components in the component tree persisted in the FacesContext. If any errors or messages have been queued up from previous phases, they are rendered along with the page. This component tree is persisted so subsequent requests to this page can access it and it is readily available to the Reconstruct Component Tree phase.&lt;br /&gt;
&lt;br /&gt;
Reference taken by: http://jnb.ociweb.com/jnb/jnbAug2003.html&amp;nbsp;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/4434735510839444784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/4434735510839444784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/4434735510839444784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/4434735510839444784'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/06/java-server-faces-page-lifecycle.html' title='Java Server Faces Page Lifecycle'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_WlwnayD_hxDh9M-iUKDNlaoma2gbfAoAoVS0hn2pNI_mJW4OimzyvSX6SkIEmwVqWs5p64f1dxxPgaYkf1qR2ts_XZ2cC7YJpTJHVZxqLgJHL1kjoX6f9OTupaPOQla1ZpFPMScxMLg/s72-c/untitled.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8241569963896140917.post-615826964545983629</id><published>2010-06-17T11:26:00.000-07:00</published><updated>2011-04-11T11:54:47.416-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><title type='text'>Quick Understanding of Java Server Faces (JSF)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0035X1BMU&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;I would like to share my experience when I started work on JSF specification. I have development experience on portlets using JSR-168 and I tried to search technical notes which helps me to understand the JSF specification for portlet development. In my searching, I am not able to get any helpful technical note. Here, I am trying to describe all the things which I have learn t for JSF portlet development.&lt;br /&gt;
&lt;br /&gt;
In this post, I will cover the basics of JSF and in other posts I will cover other features of JSF with examples.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;Why we use JSF?&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
Before introducing Java Server Faces, developers who built web applications often relied on building HTML user interface components with portlets or servlets or Java Server Pages (JSP pages). This is mainly because HTML user interface components are the lowest common denominator that web browsers support. The implication, of course, is that such web applications do not have rich user interfaces, compared with standalone fat clients, and therefore less functionality and/or poor usability.&lt;br /&gt;
&lt;br /&gt;
For years ago, Microsoft has evangelized the benefits of drag-and-drop support when advertising their Visual Basic product which provides quick and easy to build applications. JSF provides the same kind of development approach in multi-threaded environment.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;What is JSF?&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
Java Server Faces (JSF) is a very powerful, component-based technology that is being led by Sun Microsystems as JSR 127 under the Java Community Process (JCP). JSF is a user interface (UI) framework for web-applications. JSF lets you build web applications that run on a Java server and render the user interface back to the client. This technology provides web application life cycle management through a controller, and a rich component model with event handling and component rendering. JSF provides standard specification for building User Interfaces for server side applications. &lt;br /&gt;
&lt;br /&gt;
Java Server Faces technology is based on the Model View Controller (MVC) architecture for separating logic from presentation, so if you have been practicing this, you&#39;ll feel at home with JSF.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;What are the benefits of JSF?&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1) Benefits over Software vendors&lt;/b&gt;&lt;br /&gt;
Several software vendors have updated their toolkits to support JSF, promising rapid development and ease of use through drag-and-drop support when creating JSF-based web applications.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2) Benefits over rich user interface tools&lt;/b&gt;&lt;br /&gt;
There are a number of options out there today for building rich server-side user interfaces, such as Flash, Swinglets, and Jade. However, these solutions are proprietary; the tools and runtimes that support their development are usually only available through a single vendor. JSF is, above all, a standard, which means that the developer does not get locked into a single vendor. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3) Benefits over different components&lt;/b&gt;&lt;br /&gt;
Component Vendors provide reusable building blocks for application development and integration into JSF-based tools. Components cover a wide range of uses including reporting, charts and graphs, fields, and navigational components. Here are some of the vendors who offer components that support the Java Server Faces specification.&lt;br /&gt;
&lt;br /&gt;
1) Otrix WebMenu&lt;br /&gt;
2) ILOG JViews&lt;br /&gt;
3) Quest Software JClass&lt;br /&gt;
4) Software FX Chart FX&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4) Benefits at User level&lt;/b&gt;&lt;br /&gt;
Several types of users can benefit from this technology, including:&lt;br /&gt;
1) Page authors who use markup languages, such as HTML, will use the JSP tag library for expressing JavaServer Faces rich user interface components.&lt;br /&gt;
2) Application developers who write the model objects and event handlers.&lt;br /&gt;
3) Component developers who will create custom components based on the JSF components.&lt;br /&gt;
4) Tools vendors who will provide tools that incorporate JSF technology into a new generation of tools that simplify the development of multi tier web-based applications.&lt;br /&gt;
5) Application Server vendors who provide a runtime environment that incorporates JSF technology into a new generation of Application Servers that can deploy multi tier web-based applications that use JSF technology.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5) Integrated Ajax support&lt;/b&gt;&lt;br /&gt;
You can use jQuery, Dojo, or Ext-JS with servlets and JSP. However, JSF lets you use Ajax without explicit JavaScript programming and with very simple tags. Also, the Ajax calls know about the server-side business logic.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6) Form field conversion and validation&lt;/b&gt;&lt;br /&gt;
JSF has builtin capabilities for checking that form values are in the required format and for converting from strings to various other data types. If values are missing or in an improper format, the form can be automatically redisplayed with error messages and with the previously entered values maintained.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7) Centralized file-based configuration&lt;/b&gt;&lt;br /&gt;
Rather then hard-coding information into Java programs, many JSF values are represented in XML or property files. This loose coupling means that many changes can be made without modifying or recompiling Java code, and that wholesale changes can be made by editing a single file. This approach also lets Java and Web developers focus on their specific tasks without needing to know about the overall system layout.&lt;br /&gt;
&lt;br /&gt;
This technology also opens up the market for reusable web user interface components. Developers and vendors can use JSF as the building blocks for developing custom faces.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: none repeat scroll 0% 0% rgb(153, 153, 204); color: white; padding: 1px;&quot;&gt;&lt;b&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=widgetsamazon-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0137012896&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Disadvantages of JSF&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1) Bigger learning curve&lt;/b&gt;&lt;br /&gt;
To use MVC with the standard RequestDispatcher, you need to be comfortable with the standard JSP and servlet APIs. To use MVC with JSF, you have to be comfortable with the servlet API and a large and elaborate framework that is almost equal in size to the core system.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2)&lt;/b&gt; Similarly, if you have an existing app and want to add in some small amounts of Ajax functionality, it is moderately easy with jQuery (quite easy if you know JavaScript already). Switching your app to JSF 2.0 is a big investment.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3) Less transparent&lt;/b&gt;&lt;br /&gt;
With JSF applications, there is a lot more going on behind the scenes than with normal Java-based Web applications. As a result, JSF applications are:&lt;br /&gt;
1) Harder to understand&lt;br /&gt;
2) Harder to benchmark and optimize&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4) Undeveloped tool support&lt;/b&gt;&lt;br /&gt;
There are many IDEs with strong support for standard servlet and JSP technology. JSF 2.0 is pretty new, and IDE support is weak as of 5/2010.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5) Much weaker automatic validation&lt;/b&gt;&lt;br /&gt;
Struts comes with validators for email address, credit card numbers, regular expressions, and more. JSF only comes with validators for missing values, length of input, and numbers in a given range.&lt;br /&gt;
You can use the Struts/Commons validation library with JSF, but still not as powerful as Struts.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6) Lack of client-side validation&lt;/b&gt;&lt;br /&gt;
Struts supports JavaScript-based form-field validation; JSF does not.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diliptechnotes.blogspot.com/feeds/615826964545983629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8241569963896140917/615826964545983629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/615826964545983629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8241569963896140917/posts/default/615826964545983629'/><link rel='alternate' type='text/html' href='http://diliptechnotes.blogspot.com/2010/06/quick-understanding-of-java-server.html' title='Quick Understanding of Java Server Faces (JSF)'/><author><name>dilip gupta</name><uri>http://www.blogger.com/profile/07027941538805612657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicHUQpAoNU-_fNOAa3sUpc17asM2ZY_5-bmNizohf1m6WOuohljMp3I4hWr8VNSsMfViF0A9WDhpwZbm4nAki5YAFNeOm2Rsvi7uJwwy3SMYg3lwXakMmrZdAAQ5wrUQ/s220/11.JPG'/></author><thr:total>0</thr:total></entry></feed>