<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Masoud Kalali&apos;s Blog</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/" />
<modified>2008-07-14T19:44:17Z</modified>
<tagline></tagline>
<id>tag:weblogs.java.net,2008:/blog/kalali/317</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2008, kalali</copyright>
<entry>
<title>GlassFish refcard is available for download for free</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2008/07/glassfish_refca.html" />
<modified>2008-07-14T19:44:17Z</modified>
<issued>2008-07-14T08:28:33Z</issued>
<id>tag:weblogs.java.net,2008:/blog/kalali/317.10110</id>
<created>2008-07-14T08:28:33Z</created>
<summary type="text/plain">If you are a GlassFish user then you will definitely like this reference card as it contains many of day to day information which you may need. It will ease the pain of looking for a command or tip in the web or reference manuals.</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community: Glassfish</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>


<table>
<tr>
<td>
<img src="http://refcardz.dzone.com/sites/all/files/refcardz/covers/3638.png" alt="GlassFish Application Server" align="left" height="266" width="206" />
</td>
<td>
<p>In case that you are a glassfish administrator or a developer who uses glassfish in day to day development tasks then you will find GlassFish Reference Card a valuable source of information to keep you away from searching the web or administration references.</p>
<p>The reference card contains most important administration commands, security tips, performance tuning tips, clustering and monitoring instructions along with explanation around troube shooting and GlassFish directory structure.</p>

<p>Just navigate to <a href="http://refcardz.dzone.com/announcements/glassfish">http://refcardz.dzone.com/announcements/glassfish</a> and download the reference card.</p>

<p>
You can find many other refcardz in variety of topics at <a href="http://refcardz.dzone.com/">http://refcardz.dzone.com/</a> 
</p>

</td>


</tr>

</table>
<br/>
<hr/>]]>

</content>
</entry>
<entry>
<title>NetBeans Platform Certification and training.</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2008/05/netbeans_platfo_1.html" />
<modified>2008-07-16T13:34:35Z</modified>
<issued>2008-05-20T10:43:16Z</issued>
<id>tag:weblogs.java.net,2008:/blog/kalali/317.9834</id>
<created>2008-05-20T10:43:16Z</created>
<summary type="text/plain">Do you know that you can get certified in developing softwares based on NetBeans platform?</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community: NetBeans</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>


<p>Netbeans is well known for beeing a great IDE for developing <a href="http://www.netbeans.org/features/java/index.html">Java SE</a>, <a href="http://www.netbeans.org/features/web/java-ee.html">Java EE</a>, <a href="http://www.netbeans.org/features/cpp/index.html">C++</a>, <a href ="http://www.netbeans.org/features/javame/index.html">Java ME</a>, Sun SPOT, <a href="http://www.netbeans.org/features/ruby/index.html">Ruby on Rail</a>, <a href="http://www.netbeans.org/kb/61/php/installing-and-configuring-required-software.html">PHP</a>, Groovy, ... but NetBeans has more to offer when it come to developing highly modular desktop applications. The desktop application can be from any possible category like Business oriented, scientific, utilities, development tools, entertinement, etc. You can find a list of applications based on NetBeans platform <a href="http://platform.netbeans.org/screenshots.html">here</a> And it is provided by the NetBeans platform which what NetBeans IDE and all of its complementary packs and plugins are developed based on it.<p>

<p>If you are a <a href="http://platform.netbeans.org/">Platform</a> developer you may already know that there are many <a href="http://www.netbeans.org/kb/support.html">valuable resources</a> like <a href="http://www.sun.com/books/catalog/rich_client_programming.xml">books</a> and <a href="http://platform.netbeans.org/tutorials">articles</a> already available to start with developing applications on top of NetBeans platform. In addition to all of there resources, NetBeans provides you with another option, <a href="http://edu.netbeans.org/courses/nbplatform-certified-training/">
NetBeans Platform Certified Training</a>, through this program you can freely attend training courses and get certification based on the level of knowledge and experience that you demonestrate at the end or through the program. </p>

<br/>
<HR/>
<br/>

<table width="100%"> <tr>

<td><a href="http://wiki.netbeans.org/wiki/view/NetBeansDreamTeam">
<img alt="110x32_anim_v1.gif" src="http://weblogs.java.net/blog/kalali/archive/images/110x32_anim_v1.gif" width="110" height="32" /></a>
</td>


<td><a href="http://clustrmaps.com/counter/maps.php?url=http://weblogs.java.net/blog/kalali/" id="clustrMapsLink"><img src="http://clustrmaps.com/counter/index2.php?url=http://weblogs.java.net/blog/kalali/" border=1 alt="Locations of visitors to this page"onError="this.onError=null; this.src='http://www.meetomatic.com/images/clustrmaps-back-soon.jpg'; document.getElementById('clustrMapsLink').href='http://clustrmaps.com/'">
</a>
</td>

<td>

<script type="text/javascript">
<!--
 document.write("<a href='mailto:&#75;&#97;&#108;&#97;&#108;&#105;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;'>"); document.write("<img alt='email_address.png' src='http://weblogs.java.net/blog/kalali/archive/images/email_address.png' width='127' height='21' />");
 document.write("</a>");
// -->
</script>


</td>
<td><script src="http://mapstats.blogflux.com/button.js.php?id=15585" language="JavaScript" type="text/javascript"></script>
<noscript><a href="http://mapstats.blogflux.com/"><img src="http://mapstats.blogflux.com/button.php?id=15585" alt="Blog Flux MapStats: Stats and Web Counter" border="0" /></a></noscript></td>


</tr> </table>



]]>

</content>
</entry>
<entry>
<title>How to Secure GlassFish installation,  Part II</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2008/02/how_to_secure_g.html" />
<modified>2008-07-16T13:34:32Z</modified>
<issued>2008-02-17T20:34:15Z</issued>
<id>tag:weblogs.java.net,2008:/blog/kalali/317.9216</id>
<created>2008-02-17T20:34:15Z</created>
<summary type="text/plain">How to Secure GlassFish installation,  Part II: Secure all ports and listeners that application server uses to interact with outside applications.</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community: Java Enterprise</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>

<p>
In order to secure the application server you need to secure its communication ways with outside world, It means you will need to secure all ports and listeners.
</p>

<p>There are 3 kind of listeners in Glassfish application server that you will need to take care of them</p>
<p>First of all make sure that you secured the administration listener, make sure that you have enabled <strong>Security</strong> for administrator listener and set an specific IP address for it to listen on. Usually we are not going to use administration console from outside of the internal network, so let it listen only on interfaces that you need it to listen 
perhaps the interface that connect the server to your LAN. In order to do this, open administration console and navigate to:</p>
<pre>
<code>
Configuration> HTTP Service> HTTP Listeners> admin-listener
</code>
</pre>
<p>Change the <strong>Network Address</strong> as appropriated, check the <strong>Security </strong>check box, and in the <strong>SSL Tab</strong> enable <strong>Client Authentication</strong>, in order to find out how you should use Client Certificate, take a look at my 
previous posts about SSL and securing GlassFish Application Server. 
You have two other Http listeners to take care of, so make sure that you change their Network Address and enable the Security facilities if required</p>


<p> There is another listener which you need to take care of, It is your IIOP listener. IIOP listener let you create a context to lookup into your JNDI, etc. In order to configure the IIOP listeners you should navigate to: </p>

<pre>
<code>
Configuration> ORB> IIOP Listeners
</code>
</pre>

<p>Here you can see that there are 3 different listeners already created and configure for different purposes. You should not allow the first non-secure listener (<Strong>orb-listener-1</Strong>) to listen over a public network as there is no authentication or transfer layer security for this listener, but the second one (<Strong>SSL</Strong>) have transport layer security and the third one (<Strong>SSL_MUTUALAUTH</Strong>) has mutual 
authentication which guarantee that listener will only process request come after a client cert authentication. make sure that you configure the listeners to listen on correct Network address and remove or disable the listeners those that you do not need. You can disable a listener by looking at listener details page which provides a check box for it.
</p>

<p>Another listener which you need to take care of is your JMX connector listener, You can view and edit its configuration by navigating to:</p>

<pre>
<code>
Configuration> Admin Service> system
</code>
</pre>
<p>Here you are able to change the realm that this listener use to authenticate the users that are trying to connect to JMX listener, you can change the realm to an specific realm which you have made only for JMX users or let it use you administration realm. You can change the Network Address that this listener is using along with enabling the SSL and Client Cert Authentication in order to secure the data transfer and guarantee that only users with correct digital certification can use your JMX connector to control the application server</p>


<p>PS: All of the listeners that you can configure in your administration console allows you to have <strong>Mutual Authentication</strong> (Client Cert Authentication) which ensure that both parties have verify-able certifications. This certifications can come from well known providers like 
VeriSign or your own CA.
on the other hand all listeners allows you to specify an specific alias for them, which means that each listener mutual authentication can be configured completely independent from other 
listeners, for example you can have two alias one for administration console and one for JMX connector in order to prevent JMX users to connect to administration console.
</p>

<p>For more information you can take a look at my older posts related to this matter:</p>
<ul>


<li>
<a href="http://weblogs.java.net/blog/kalali/archive/2007/12/how_to_secure_g_1.html">
How to secure GlassFish application server, Part I</a></li>
<li>
<a href="http://weblogs.java.net/blog/kalali/archive/2007/08/how_to_have_you_1.html">
Make your Own CA using EJBCA, Part I</a></li>
<li>
<a href="http://weblogs.java.net/blog/kalali/archive/2007/08/how_to_have_you.html">
Make you own CA using EJBCA, Part II</a></li>
</ul>
<br>
<hr>
<br>]]>

</content>
</entry>
<entry>
<title>The train starts running, NetBeans Innovators Grants has just announced.</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2008/01/the_train_start.html" />
<modified>2008-07-16T13:34:37Z</modified>
<issued>2008-01-29T15:41:47Z</issued>
<id>tag:weblogs.java.net,2008:/blog/kalali/317.9087</id>
<created>2008-01-29T15:41:47Z</created>
<summary type="text/plain">NetBeans Innovators Grants is a program in which 20 NetBeans related projects will be selected to become sponsored by Sun Microsystems. 10 large projects with US $11500 and 10 small projects with US $2000 will receive SUN Sponsorship.</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community: NetBeans</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>


<p>
The train start running, NetBeans Innovators Grants has just announced.
</p>
<ul>
<li>
Are you an <b>RCP</b> developer looking for some financial support to implenent some modules on top of NetBeans RCP?</li>
<li>Are you familiar with <b>NetBeans IDE</b> and also you have some ideas in your sleeve, ideas to enhance the IDE functionalitis, ideas about new functionalities, etc?</li>
<li>Do you know some bugs/ RFEs in issuzilla which you can fix them, but you were looking for financial support?</li>
<li>Do you have some cool ideas about some sample projects or blueprints showing How one can develop Java/ J2EE/ J2ME/ Ruby/ C++ projects using NetBeans IDE and its capabilities?</li>
</ul>
<p>
If you fit into one of the above categories, you can join the <a href="http://www.netbeans.org/grant/" > NetBeans Innovators Grants</a>, a sub program of 
<a href="http://www.sun.com/aboutsun/pr/2007-12/sunflash.20071205.1.xml"> SUN Microsystems US$ 1 million Program </a> which is intended to help people develop open source projects sponsored by  SUN Microsystems.</p>
<p>
Take a look at <a href="http://www.netbeans.org/grant/" > NetBeans Innovators Grants Home Page</a>, read it carefully, check <a href="http://www.netbeans.org/grant/grantdetails.html" >SubMission Details</a> page to gain some understanding of what is expected in your submission, and after you prepared your project proposal you can come to <a href="http://www.netbeans.org/grant/grant-submission-form.html" >Proposal Submission</a>  page and file in the forms with your project details in order to jump into the contest train.</p>
<p>

Another item which could be the subject of a project is contributing articles, tutorials and sample codes to NetBeans Zone located at <a href="http://netbeans.dzone.com/"> Netbeans Zone</a>, this web site. it is intended to be the most complete source of articles, links,.... for NetBeans platform and IDE.</p>
<p>
P.S: Make sure that you read the legal page located at: <a href="http://www.netbeans.org/grant/grantlegal.html" >Legal information</a> 
</p>






<br>
<br>
<hr>
]]>

</content>
</entry>
<entry>
<title>Four open source Java application servers compared</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2007/12/four_open_sourc.html" />
<modified>2008-07-16T13:34:51Z</modified>
<issued>2007-12-11T21:11:35Z</issued>
<id>tag:weblogs.java.net,2007:/blog/kalali/317.8805</id>
<created>2007-12-11T21:11:35Z</created>
<summary type="text/plain">An small addition to Jonathan Campbell article at http://www.javaworld.com/javaworld/jw-12-2007/jw-12-appservers.html , I add Glassfish column and some related description here to extend the comparison.</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>J2EE</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>

<p>
I was looking at feeds that my email client fetched during the day and I find am interesting one which lead me to an article written by Jonathan Campbell. Article can be found at 
<a href="http://www.javaworld.com/javaworld/jw-12-2007/jw-12-appservers.html">http://www.javaworld.com/javaworld/jw-12-2007/jw-12-appservers.html</a> </p> 

<p>Jonathan compared 3 different application server/ servlet container by thier support of Java EE 5 and some other factors. article explained about each feature that he compared application servers based on it. Jonathan did not included <a href="http://GlassFish.dev.java.net">GlassFish</a> in his review of "open source Java application servers" and only included 3 application servers/ Servlet containers including Tomcat, Jboss and Geronimo. :-), So I thought I should include some facts here in order to make the comparison fair to all parties.</p>
<p> Including Glassfish into Jonathan matrix will give us the following table:  <b>*Notice*</b></p> 
                     <table style="clear:both" border="1" title="Table 1. Java EE feature comparison">
                        <tbody>
                           <tr>
                              <th>Feature</th>
                              <th>JBoss 4.2</th>
                              <th>Geronimo 2</th>
                              <th>Tomcat 6</th>
<th><a href="http://GlassFish.dev.java.net">GlassFish</a> 2</th>
                           </tr>
                           <tr>
                              <td>Java EE 5 compliance</td>
                              <td>Partial</td>
                              <td>Yes</td>
                              <td>No</td>
                              <td>Yes</td>
                           </tr>

                           <tr>
                              <td>EJB 3.0 capable</td>
                              <td>Yes</td>
                              <td>Yes</td>
                              <td>Available</td>
				<td>Yes</td>
                           </tr>
                           <tr>

                              <td>JSP 2.1 and 2.5 capable</td>
                              <td>Yes</td>
                              <td>Yes</td>
                              <td>Yes</td>
				<td>Yes</td>
                           </tr>
                           <tr>
                              <td>JavaServer Faces 1.2 support</td>

                              <td>Yes</td>
                              <td>Yes</td>
                              <td>Available</td>
				<td>Yes</td>	
                           </tr>
                           <tr>
                              <td>Custom plug-in support</td>
                              <td>Yes</td>

                              <td>Yes</td>
                              <td>No</td>
			  <td>?</td>
                           </tr>
                           <tr>
                              <td>Business-rules engine support</td>
                              <td>Available</td>
                              <td>Available</td>

                              <td>Available</td>
				<td>Available</td>
                           </tr>
                           <tr>
                              <td>Hibernate 3.x support</td>
                              <td>Yes</td>
                              <td>Available</td>
                              <td>Available</td>
				<td>Yes, based on below description</td>
                           </tr>
                           <tr>
                              <td>JBoss Seam support</td>
                              <td>Yes</td>
                              <td>Yes</td>
                              <td>Available</td>
<td>Yes</td>
                           </tr>

                           <tr>
                              <td>Clustering support</td>
                              <td>Yes</td>
                              <td>Yes</td>
                              <td>Partial</td>
<td>Yes</td>
                           </tr>
                           <tr>

                              <td>Eclipse IDE connector support</td>
                              <td>Yes</td>
                              <td>Yes</td>
                              <td>Yes</td>
<td>Yes</td>
                           </tr>
                        </tbody>
                     </table>

<br>
<p><b>Following descriptions further explain some of what Glassfish can provides in relation of the above table</b></p>
<ul>
<li><a href="http://GlassFish.dev.java.net">GlassFish</a> fully support Java EE 5 with all its related JSRs like  JSP 2.1 (JSR 245), Servlet 2.5(154), EJB 3.0(JSR 245), etc.</li>
<li><a href="http://GlassFish.dev.java.net">GlassFish</a> support clustering and cluster management out of the box, a cluster can be configured from both CLI and Administration console.</li>
<li><a href="http://GlassFish.dev.java.net">GlassFish</a> administration console allows you to configure your load balancer :-), for example you can configure a Sun Java Web Server which works as load balancer to add or add/ remove an instance from its list of servers, either manually or automatically if a new node joined the cluster or removed from the cluster</li>
<li><a href="http://GlassFish.dev.java.net">GlassFish</a> allows you to manage resources for entire cluster at once instead of applying them for each instance, for example you can deploy a web application into a cluster of 10 instances instead of deploying it seperately for each instance.</li>
<li><a href="http://GlassFish.dev.java.net">GlassFish</a> has a very wide array  documentation both from Sun Microsystems (for free) and from <a href="http://GlassFish.dev.java.net">GlassFish</a> community.</li>
<li><a href="http://GlassFish.dev.java.net">GlassFish</a> installation is as easy as executing 2 commands.</li>
<li>Deploying applications into <a href="http://GlassFish.dev.java.net">GlassFish</a> or even an entire cluster of glassfish instances is just 2 clicks away.</li>
<li>Quality of <a href="http://GlassFish.dev.java.net">GlassFish</a> components is out of any question, Metro is well known for supporting new WS-* standards, EJB support uses Toplink Essentials, MQ server is Sun open sourced MQ, etc.</li>
<li><a href="http://GlassFish.dev.java.net">GlassFish</a> has very good interoperability with some other open source projects like, OpenESB and OpenSSO which allows you to have what you need to kick start your J2EE application without looking at any additional configuration.</li>
<li>Certainly performance is something which everyone should have in mind before considering other feaures, take a look at http://www.spec.org/jAppServer2004/results/res2007q3/jAppServer2004-20070703-00073.html and http://weblogs.java.net/blog/sdo/archive/2007/07/sjsas_91_glassf.html to find out more about how much capable <a href="http://GlassFish.dev.java.net">GlassFish</a> is.</li>
<li><a href="http://GlassFish.dev.java.net">GlassFish</a> has connectors for both Eclipse and Netbeans, although other mentioned servers have a connector in Netbeans and Eclipse.</li>
<li>Seam support is available from <a href="http://GlassFish.dev.java.net">GlassFish</a> 1 upward.</li>
<li>Business rule engine support is available from OpenESB project integration.</li>
<li>About hibernate support, I cannot understand whether Jonathan means to use Hibernate as a persistence provider or plainly as an ORM, by the way both of this  ?features? are available for <a href="http://GlassFish.dev.java.net">GlassFish</a> users.</li>
<li><a href="http://GlassFish.dev.java.net">GlassFish</a> has an Update center, which allows you to update your application server from a remote repository.</li>
<li><a href="http://GlassFish.dev.java.net">GlassFish</a> runs on all mentioned platforms, from Windows to AIX (Glasdfish 2 update 1 runs on AIX) and there is no restriction for you to run it on your platform of choice.</li>
</ul>
<p>Mentioned items are in relation to what orginal article tried to compare. <a href="http://GlassFish.dev.java.net">GlassFish</a> can be used by a ROR developer by its integration with first class ROR IDE (Netbeans 6), It can serve you VOIP and SIP requirement by means of sailfin,etc. Any user with any kind of requirement will find <a href="http://GlassFish.dev.java.net">GlassFish</a> a suitable application server.</p>

<p> Although Jonathan did not mentioned <a href="http://GlassFish.dev.java.net">GlassFish</a> directly, but he gives his opinion by writing:<i>In my experience commercial application servers have more bugs than the open source servers compared in this article, and they are more difficult to install. Deployment can also be an issue -- <b>at least with the recent version of Sun's Java Application Server.</b></i> The article could be more complete if Jonathan included <a href="http://GlassFish.dev.java.net">GlassFish</a> in his comparsion chart and at then end he could write that <a href="http://GlassFish.dev.java.net">GlassFish</a> has problematic deployment procedure<p> 

<p>An statement which looks odd to me is: <i>In my experience commercial application servers have more bugs than the open source servers compared in this article, and they are more difficult to install.</i>, 
Althogh it will be a complex procedure to setup a Cluser of Websphere (as a commercial application servers ) using websphere XD, Object Grid, and other available packages that faciliate enterprise scale deployment of Websphere, but WebSphere has a decent performance and reliability which is very hard to deny. </p>


<p><b>Notice:</b> Some parts of this table taken from Jonathan Campbell article published by javaworld and is available at <a href="http://www.javaworld.com/javaworld/jw-12-2007/jw-12-appservers.html">http://www.javaworld.com/javaworld/jw-12-2007/jw-12-appservers.html</a></p>
<br>

<hr>
<br>]]>

</content>
</entry>
<entry>
<title>How to Secure GlassFish installation.</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2007/12/how_to_secure_g_1.html" />
<modified>2008-07-16T13:34:53Z</modified>
<issued>2007-12-05T21:49:30Z</issued>
<id>tag:weblogs.java.net,2007:/blog/kalali/317.8764</id>
<created>2007-12-05T21:49:30Z</created>
<summary type="text/plain">Some tips about securing GlassFish installation.</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community: Java Enterprise</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>

<p>
It is some days that I saw some posts about securing Glassfish in production environment, so I thought I write some of my experience here to let other secure the glassfish easier.
There are some basic items that you will need to relay on in order to have a secure Glassfish installation.
<p>
<ol>
<li>secure access to administration console, both web based and CLI.</li>
<li>secure all ports and listeners that application server uses to interact with outside applications.</li>
<li>secure your environment from GlassFish;  Yes, glassfish can be evil if you have buggy software installed on you application server.</li>
<li>secure your application server from the environment that it is operating on it.</li>
<li>secure glassfish directories in order to prevent any accidental changes, use, etc in glassfish configuration files.</li>
<li>Take care of all logging if you are not going to secure Glassfish on the file system.</li>
<li>tips and tricks which are not mentioned in the above sections.</li>
<li>firewalls, network security, clustered environment tips and tricks </li>
</ol>
<br>
<p>
But how you can do these, I will explain each item in as much details as I can begin with securing your administration console.
As you know administration console is the main interaction point with an application server, however must of application servers let you perform all changes from a CLI or direct editing of server.xml, domain.xml and so on.
But Web based administration console is the most open to access part of application server, So let’s see how we can secure it:</p>

<p>You will need to change administration password from the default one, do it by using the following command in CLI when your application server is running. </>
<pre>
<code>
change-admin-password
</pre>
</code>
<br>
<p>Using this command you can change your administration password both for CLI and Web based console. The output of the command may differ from version or profile to another version and profile but it will asks you to enter old and new password, in case that it asks to accept a certificate accept it, you will change it later.</p>
<p>
Second thing that you should change is master-password, make sure that you stop your application server before issuing the command as it will not work when the as is running. Following command in asadmin console will do it for you. Default master password value is “changeit”</p>
<pre>
<code>
change-master-password
</pre>
</code>
<br>
<p>
Now you are sure that your administration console and keystore files are protected using a new password which you know.
</p>
<p>
Its time to take a closer look at application server web based console protection, you need to make sure that you have most possible protection over your administration console by limiting access to it using firewalls and after that you can add another level of protection and transmission integrity by using a mutual authentication using Digital Certificate. </p>
<p>
By changing the administration http listener to use an a digital certificate specific for administration console and changing its setting to use client-cert authentication or mutual authentication you can ensure that your administration console will only opens in a browser which has a digital certificate signed by a CA known to your administration listener. </p> <p>This way you can be sure that only the guys with that specific digital certificate will have access to your admin console and the administrator will not fool by anyone to connect to a mock server. On the other hand you have full protection of SSL over your transmitted data. To learn how you can setup your own CA and add keys to glassfish keystore take a look at some older entry of my weblog. however those entry shows how you can use digital certificate when your AS uses jks files ant certDB files.</p>

</p>
<br>
<br>
<hr>


<table width="100%"> <tr>

<td><a href="http://wiki.netbeans.org/wiki/view/NetBeansDreamTeam">
<img alt="110x32_anim_v1.gif" src="http://weblogs.java.net/blog/kalali/archive/images/110x32_anim_v1.gif" width="110" height="32" /></a>
</td>


<td><a href="http://clustrmaps.com/counter/maps.php?url=http://weblogs.java.net/blog/kalali/" id="clustrMapsLink"><img src="http://clustrmaps.com/counter/index2.php?url=http://weblogs.java.net/blog/kalali/" border=1 alt="Locations of visitors to this page"onError="this.onError=null; this.src='http://www.meetomatic.com/images/clustrmaps-back-soon.jpg'; document.getElementById('clustrMapsLink').href='http://clustrmaps.com/'">
</a>
</td>

<td>

<script type="text/javascript">
<!--
 document.write("<a href='mailto:&#75;&#97;&#108;&#97;&#108;&#105;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;'>"); document.write("<img alt='email_address.png' src='http://weblogs.java.net/blog/kalali/archive/images/email_address.png' width='127' height='21' />");
 document.write("</a>");
// -->
</script>


</td>
<td><script src="http://mapstats.blogflux.com/button.js.php?id=15585" language="JavaScript" type="text/javascript"></script>
<noscript><a href="http://mapstats.blogflux.com/"><img src="http://mapstats.blogflux.com/button.php?id=15585" alt="Blog Flux MapStats: Stats and Web Counter" border="0" /></a></noscript></td>


</tr> </table>

]]>

</content>
</entry>
<entry>
<title>How to have your Own CA and configure Glassfish and your clients for mutual authentication?, Part II</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2007/08/how_to_have_you.html" />
<modified>2008-07-16T13:35:12Z</modified>
<issued>2007-08-23T22:19:26Z</issued>
<id>tag:weblogs.java.net,2007:/blog/kalali/317.8096</id>
<created>2007-08-23T22:19:26Z</created>
<summary type="text/plain">In Second part of this series you can find how you can utilize EJBCA to create certifications for your client application in order to have client cert authentication.</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community: Java Enterprise</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>How to have your Own CA and conf</title>
<style type="text/css">
.style1 {
	direction: ltr;
}
</style>
</head>

<body>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>

<p class="style1">In the second part of the series, you can see how we can 
utilize EJBCA to create certification for a client side application which will 
communicate with Glassfish server when Client cert authentication (Mutual 
Authentication) is enabled whether by changing the listener attributes or by 
describing it in the web-config.xml.</p>
<p>In order to create client certification we will need to perform following 
steps as described in <strong>4 sections</strong>:</p>
<h5>Section 1: Creating clients certification profile:</h5>
<ul>
	<li class="style1">Go to <a href="https://localhost:8080/ejbca/">
	https://localhost:8080/ejbca/</a> and select <strong>Administration</strong>.</li>
	<li>Select <strong>Edit Certification profiles </strong>from the left side 
	menu.</li>
	<li>Enter a name for the profile and press add button. I choose <strong>Clients</strong> as the name.</li>
	<li>From the list select <strong>Clients</strong> Item and press <strong>
	Edit </strong>button.</li>
	<li>Now profile edit page will open change the attribute as follow:<ul>
		<li>for <strong>Key Usage </strong>&nbsp;you should select at least 
		Digital Signature and <strong>Key Encypherment.</strong></li>
		<li>From&nbsp; <strong>Extended Key Usage </strong>select <strong>Client Authentication</strong></li>
	</ul>
	</li>
	<li>press save button.</li>
</ul>
<h5>Section 2: Create servers end entities profile:</h5>
<p>Now you have create a profile which in next sections you can create 
certifications which will comply with it. Now we will need to create an <strong>
End Entity Profile</strong> so follow these steps to create it.</p>
<ul>
	<li>From the left side menu click on&nbsp; <strong>edit end entities profile
	</strong>.</li>
	<li>Enter <strong>ClientsProfile</strong> as profile name and press add 
	button.</li>
	<li>From the list select <strong>ClientsProfile </strong>and press <strong>
	Edit End Entity Profile</strong> button.</li>
	<li>Enter a user name and a password for the profile, I choose cAdmin/ 
	cAdminAdmin.</li>
	<li>Enter the common name</li>
	<li>From the list of <strong>Available Certificate Profiles&nbsp; </strong>
	select <strong>Clients </strong>which we made in last step.</li>
	<li>select <strong>JKS </strong>as <strong>default token.</strong></li>
	<li>click Save</li>
</ul>
<p>Now we are reaching an step in which we will create the real certificate that 
client will use&nbsp;to prove its identity and initiate SSL enabled session. To create the 
certificate perform following steps:</p>
<h5>Section 3: Create Client certification</h5>
<ul>
	<li>From the left side menu select <strong>add end entity </strong>link.</li>
	<li>Select <strong>ClientsProfile </strong>as <strong>End Entity Profile.</strong></li>
	<li>Enter all information as you like.</li>
	<li>Select <strong>JKS </strong>as <strong>Token.</strong></li>
	<li>press <strong>add end entity</strong> button</li>
</ul>
<h5>Section 4: Use the certification in Client Application.</h5>
<p>You are done, the certification is ready to be downloaded and used. </p>
<ul>
	<li>Go to <a href="https://localhost:8080/ejbca/">https://localhost:8080/ejbca/</a>&nbsp; 
	and select <strong>Certification Enrollment.</strong></li>
	<li>Select Manually for a Server</li>
	<li>Enter user name and password which you have entered for end entity in 
	previous step.</li>
	<li>Click OK. </li>
</ul>
<p>By pressing OK a JKS file will download to your computer. </p>
<p>Create two copies of the file and Rename them&nbsp; to keystore.JKS and 
	cacerts.jks. In order to create a SSL enabled client, either web service 
client or any type of socket client which need to use SSL you can follow one of 
the following path:</p>
<ul>
	<li>When you want to run your java application pass following parameter to 
	JVM, it will ask JVM to use your cacerts.jks and keystore.jks during 
	initialing SSL communication and authentication. </li>
</ul>
<pre><code>-Djavax.net.ssl.trustStore="Truststore_Location"    -Djavax.net.ssl.trustStorePassword="Truststore_Password"   -Djavax.net.ssl.keyStore ="Keystore_Location" -Djavax.net.ssl.keyStorePassword="Keystore_Password"</code></pre>
<ul>
	<li>Second way is adding the same parameter to your JVM during execution of 
	your application code. using this way you are not forced to pass parameter 
	and disclose your key stores passwords.</li>
</ul>

<pre><code>
System.getProperties.put("javax.net.ssl.trustStore","Truststore_Location");
System.getProperties.put("javax.net.ssl.trustStorePassword","Truststore_Password");
System.getProperties.put("javax.net.ssl.keyStore","Keystore_Location"); 
System.getProperties.put("javax.net.ssl.keyStorePassword","Keystore_Password");
</code></pre>

<p>Make sure that you are using correct location and password for your files, 
passwords are same as one you used to download the JKS files.</p>
<p>I should say again that you can explore and perhaps learn more about jks files, keys and certification by exploreing your stores, you can use jks file editor located at
<a href="http://members.aon.at/bhuber14/nbm.html">http://members.aon.at/bhuber14/nbm.html</a>. Also if you are may 
find more cool key store editor in <a href="plugins.netbeans.org/PluginPortal/">
NetBeans Module Portal</a></p>


<p>For more information or maybe to find some of your questions answered you may 
take a look at: </p>
<ul>
	<li>
	<a href="http://www.ryandelaplante.com/rdelaplante/entry/ssl_and_http_basic_authentication">
	http://www.ryandelaplante.com/rdelaplante/entry/ssl_and_http_basic_authentication</a></li>
	<li><a href="blogs.sun.com/swchan/entry/how_to_use_verisign_cert">
	blogs.sun.com/swchan/entry/how_to_use_verisign_cert</a></li>
</ul>

<br>
<hr>
<br>
</body>

</html>
]]>

</content>
</entry>
<entry>
<title>How to have your Own CA and configure Glassfish and your clients for mutual authentication?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2007/08/how_to_have_you_1.html" />
<modified>2008-06-24T19:17:03Z</modified>
<issued>2007-08-16T17:05:51Z</issued>
<id>tag:weblogs.java.net,2007:/blog/kalali/317.8030</id>
<created>2007-08-16T17:05:51Z</created>
<summary type="text/plain">In these two entries i will demonestrate how you can use EJBCA to secure you GlassFish application server and achieve Client Cert (mutual) authentication with Certifications issued by your own CA.</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community: Java Enterprise</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>How to have your Own CA and conf</title>
<style type="text/css">
.style1 {
	direction: ltr;
}
</style>
</head>

<body>
<p>One of the most repeated question in GlassFish mailing list is SSL, Certification, Mutual Authentication,.... In this 
Entry I will try to address some of this questions by giving an step by step guide for using EJBCA to issue certificate, use them in both glassfish and clients which connect to glassfish in some manner. clients like web browser, standalone java applications,...</p>
<p class="style1">There are several tutorial and blog entry about configuring 
glassfish to use some specific certification in order to perform server 
authentication for clients over SSL and each of those weblog is an invaluable 
source of information. In this blog entry and perhaps the next one I will address another concerns which 
some people has for their <a href="http://glassfish.dev.java.net">GlassFish</a> and client security. Some times we are 
running an application within an enterprise and we need to have mutual 
authentication for every clients that connect to server so we will need to have 
one certification for client and another one for our glassfish server. both of 
this certification should be valid (issued by an already known CA within 
glassfish trust store and client trust store). For these two entries I assume that 
our client and server will just accept certification issued by our own CA which 
is based on EJBCA.</p>
<p>Before we start the main job you will need to download and install EJBCA from its
<a href="http://sourceforge.net/projects/ejbca">web site</a>, then you will need 
to install it according to its manual which you can find in 
<a href="http://ejbca.sourceforge.net/manual.html">documentation</a> 
section. After you installed and could view EJBCA administration console then 
you can follow the rest of the entry.</p>
<h5>&nbsp;</h5>
<p>In order to create server certification we will need to perform following 
steps as described in <strong>4 sections</strong>:</p>
<h5>Section 1: Creating servers certification profile:</h5>
<ul>
	<li class="style1">Go to <a href="https://localhost:8080/ejbca/">
	https://localhost:8080/ejbca/</a> and select <strong>Administration</strong>.</li>
	<li>Select <strong>Edit Certification profiles </strong>from the left side 
	menu.</li>
	<li>Enter a name for the profile and press add button. I choose <strong>
	servers</strong> as the name.</li>
	<li>From the list select <strong>servers </strong>Item and press <strong>
	Edit </strong>button.</li>
	<li>Now profile edit page will open change the attribute as follow:<ul>
		<li>for <strong>Key Usage </strong>&nbsp;you should select at least 
		Digital Signature and <strong>Key Encypherment.</strong></li>
		<li>From&nbsp; <strong>Extended Key Usage </strong>select <strong>Server 
		Authentication</strong></li>
	</ul>
	</li>
	<li>press save button.</li>
</ul>
<h5>Section 2: Create servers end entities profile:</h5>
<p>Now you have create a profile which in next sections you can create 
certifications which will comply with it. Now we will need to create an <strong>
End Entity Profile</strong> so follow these steps to create it.</p>
<ul>
	<li>From the left side menu click on&nbsp; <strong>edit end entities profile
	</strong>.</li>
	<li>Enter <strong>ServersProfile</strong> as profile name and press add 
	button.</li>
	<li>From the list select <strong>ServersProfile </strong>and press <strong>
	Edit End Entity Profile</strong> button.</li>
	<li>Enter a user name and a password for the profile, I choose sAdmin/ 
	sAdminAdmin.</li>
	<li>Enter the common name</li>
	<li>From the list of <strong>Available Certificate Profiles&nbsp; </strong>
	select <strong>Servers </strong>which we made in last step.</li>
	<li>select <strong>JKS </strong>as <strong>default token.</strong></li>
	<li>click Save</li>
</ul>
<p>Now we are reaching an step in which we will create the real certificate that 
Glassfish will use&nbsp; in its SSL enabled listener. To create the 
certificate perform following steps:</p>
<h5>Section 3: Create server certification</h5>
<ul>
	<li>From the left side menu select <strong>add end entity </strong>link.</li>
	<li>Select <strong>ServersProfile </strong>as <strong>End Entity Profile.</strong></li>
	<li>Enter all information as you like but make sure that CN should be Exact 
	and fully qualified name of your sever as will access it from clients, for 
	example if you are going to access the serve as <strong>
	computer1.mydomain.com</strong> then the CN should be the same if you are 
	going to access it as Comuter1 then the CN should be that.</li>
	<li>Select <strong>JKS </strong>as <strong>Token.</strong></li>
	<li>press <strong>add end entity</strong> button</li>
</ul>
<h5>Section 4: Use the certification in Application Server.</h5>
<p>You are done, the certification is ready to be downloaded and used. </p>
<ul>
	<li>Go to <a href="https://localhost:8080/ejbca/">https://localhost:8080/ejbca/</a>&nbsp; 
	and select <strong>Certification Enrollment.</strong></li>
	<li>Select Manually for a Server</li>
	<li>enter user name and password which you have entered for end entity in 
	previous step.</li>
	<li>Click OK. </li>
</ul>
<p>By pressing OK a JKS file will download to your computer. </p>
<ul>
	<li>Create two copies of the file and Rename them&nbsp; to keystore.JKS and 
	cacerts.jks. </li>
	<li>Goto Glassfish/domains/domain1 (If domain 1 is the domain that you want 
	to configure for SSL).</li>
	<li>Make sure that application server is stopped by issuing the following 
	command.</li>
	</ul>
	<pre><code>	Glassfish_home/bin/asadmin  stop-domain domain1	</code></pre>
<ul>
	<li>Now we need to change the master password in order to let glassfish open our 
new cacert.jks and keystore.jks so perform following command.</li>
</ul>
	<pre><code>	Glassfish_home/bin/asadmin  change-master-password  \\\Here you should write the password that you choosed in last step/// --savemasterpassword=true</code></pre>
<ul>
	<li>Now Goto glassfish_home/domains/domain1/config and create a backup from 
	cacert.jks and keystore.jks.</li>
	<li>Copy files that we create in first step of this section to this folder 
	(overwrite the original files).</li>
	<li>Open domain.xml (it is in domain1/config folder) by a text editor and 
	replace all <strong>s1as </strong>occurrences with<strong> CN</strong> name 
	that you have choose in <strong>section 3</strong>. </li>
	<li>Start the application server.</li>
</ul>
<p>You are done, you application server should start normally, but you have some 
more steps before you complete the mutual authentication capability.</p>
<h5>Section 5: Enabling mutual authentication for a listener.</h5>
<p>Open application server administration console and from the left side menu 
select <strong>Configuration&gt; HTTP Service&gt; HTTP Listeners&gt; http-listener-2,
</strong>now you should check the <strong>Security </strong>check box and select
<strong>SSL </strong>tab, now make sure that you have checked <strong>Client 
Authentication </strong>check box.</p>
<p>You are done, point your browser to
<a href="https://computer1.mydomain.com:8181">
https://computer1.mydomain.com:8181</a> you will see that this page will only 
open for the browser that you have imported EJBCA administration certification. 
it means that both server and client must prove their identity before they could 
communicate.</p>
<p>In next entry of this series I will demonstrate steps that you need to follow 
in order to create a stand alone web service client.</p>
<p>Make sure that you need to delete the private key of you server from 
cacerts.jks (it is not necessary by the way). Best way to explore you key stores 
is using keytool which you can find more information about it
<a href="http://members.aon.at/bhuber14/nbm.html">Here</a>. Also if you are may 
find more cool key store editor in <a href="plugins.netbeans.org/PluginPortal/">
NetBeans Module Portal</a></p>
<p>For more information or maybe to find some of your questions answered you may 
take a look at: </p>
<ul>
	<li>
	<a href="http://www.ryandelaplante.com/rdelaplante/entry/ssl_and_http_basic_authentication">
	http://www.ryandelaplante.com/rdelaplante/entry/ssl_and_http_basic_authentication</a></li>
	<li><a href="blogs.sun.com/swchan/entry/how_to_use_verisign_cert">
	blogs.sun.com/swchan/entry/how_to_use_verisign_cert</a></li>
</ul>

<hr>


</body>

</html>
]]>

</content>
</entry>
<entry>
<title>SHIFT+ALT+ENTER, a cool NetBeans shortcut</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2007/06/shiftaltenter_a.html" />
<modified>2008-07-16T13:35:24Z</modified>
<issued>2007-06-14T19:14:09Z</issued>
<id>tag:weblogs.java.net,2007:/blog/kalali/317.7636</id>
<created>2007-06-14T19:14:09Z</created>
<summary type="text/plain">I find a cool NetBeans shortcut, you may try it out if you have not done it yet.</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community: NetBeans</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>

<P>Today accidentally I find a coll shortcut in NetBeans, it do something fun, if you press ALT+SHIFT+ENTER IDE switch to full screen, it will remove Title bar, status bar, and toolbar to give you a little more space when you are writing your code.</p>

<p>Here is an image of netbeans in this mode, you will find it usefull.</p>

<p>
<a href="http://weblogs.java.net/blog/kalali/archive/images/full-screen.png" ><img alt="full-screen-thumb.png" src="http://weblogs.java.net/blog/kalali/archive/images/full-screen-thumb.png" width="250" height="200" /></a>
</p>

<p>Also If you are looking for some NetBeans sample you can take a look at <A HREF="http://www.netbeans.org/kb/samples/index.html">NetBeans IDE Sample Applications</A> which is a good start point for you to find some ready to run samples for different platform from java SE to RoR which is fully supported in NetBeans 6.</p>

 

<hr>]]>

</content>
</entry>
<entry>
<title>something fun in Feisty Fawn</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2007/06/something_fun_i.html" />
<modified>2008-07-16T13:35:31Z</modified>
<issued>2007-06-01T19:24:04Z</issued>
<id>tag:weblogs.java.net,2007:/blog/kalali/317.7544</id>
<created>2007-06-01T19:24:04Z</created>
<summary type="text/plain">I find something nice in feisty fawn (Ubuntu 7.04) without looking for it :-)</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community: linux.java.net</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>

<p>It is sometimes that I use Ubuntu in home as primary OS, a shortcut that I am used to use is ALT+Space to minimize, maximize or restore a window. But in Ubuntu or maybe in Gnome, It is my first time that i use Gnome as primary desktop, this key combination act differently. </p>
<p>When I pressed ALT+Space as i used to do it and  it showd a semi transparent window which let me select one of application links that are present in Gnome/Ubuntu menu a link to some web site, a folder in my home directory or something  else which i have not descovered yet.</p>
<p>The opened window allows you shows all menu items that begins with your typed character and let you select your target shortcut</p>
<p>Here is an screenshot of this window. a wonderful thingy, by the way maybe it is not Gnome built in feature and one of additional packages that i installed add it to Gnome.</p>

<img alt="fun_with_ubunut.png" src="http://weblogs.java.net/blog/kalali/archive/images/fun_with_ubunut.png" width="484" height="330" />

<br>
<hr>]]>

</content>
</entry>
<entry>
<title>GlassFish version 2 monitoring capabilities</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2007/05/glassfish_versi_1.html" />
<modified>2008-07-16T13:35:41Z</modified>
<issued>2007-05-27T22:59:24Z</issued>
<id>tag:weblogs.java.net,2007:/blog/kalali/317.7512</id>
<created>2007-05-27T22:59:24Z</created>
<summary type="text/plain">GlassFish version 2 provides a good monitoring service which allows developers to monitor all application server related activities in order to improve their applications or hunt bugs or ....</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community: Java Enterprise</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>

<h3>
GlassFish version 2 monitoring capabilities
</h3>
<p>GlassFish version 2 provides good mentoring information about different aspects of application server and all of your applications that are deployed into GlassFish but before it can show those statistical information you need to configure its monitoring  service. Figure 1.</p>
<p>Although this statistical and monitoring information and the way that they are presented is not as luxurious as weblog and websphere one's  but they are good enought to help you track what is going in your server.</p>
<p>To enable monitoring service of GlassFish you need Commence with openning  administration console, Locate the configuration node and expand it now select monitoring now choose all components that you want to monitor, select high for more details and sure more overhead and low for less details and less overhead. Figure 1.</p>

<p>
<img src="http://weblogs.java.net/blog/kalali/archive/images/gf_monit_f1.png" alt="Configure your monitoring" />
</p>

<p>Now you should be able to see some monitoring detailsby going to monitoring pages, monitorig pages are placed under different nodes in administration console based on your installation profile. If you are not sure about your glassfish profile, follow the developer profile item.</p> 

<ul>
<li>For the cluster or enterprise profile In the tree component, select Common Tasks, then click View Monitoring Data.</li>
<li>For the developer profile, in the tree component, select the Application Server node. Click the Monitor tab.</li>
</ul> 

<P>Glassfish categorize monitoring information under three categories, these categories are as follow:</p>

<p><Strong>Call Flow:</Strong>shows you how many requests are replyed successfully or with a failure  and how much time consumed for that request in different layer of application server. Figure 2</p>

<p>
<img src="http://weblogs.java.net/blog/kalali/archive/images/gf_monit_f2.png" alt="Call Flow" />
</p>

<p><Strong>Runtime:</Strong>this category provides information about JVM, Garbage Collection, HTTP service, Listeners (http/s), ect. for example under JMV node of these category you can use memory item to view fine grained details about your application server heap.  Figure 3</p>

<p>
<img src="http://weblogs.java.net/blog/kalali/archive/images/gf_monit_f3.png" alt="Runtime" />
</p>
<p><Strong>Applications:</Strong>Let you select an application and view details about that application components, for example you can view how much time a servlet has called and how time its call taked. Figure 4</p>

<p>
<img src="http://weblogs.java.net/blog/kalali/archive/images/gf_monit_f4.png" alt="Applications" />
</p>
<p><Strong>Resources:</Strong>here you can view detailed information about all of your resources like connection pools, connectors, jms connection factories, etc. For example you can view fair amount of details about your connection pool in order to hunt possible connection leake or to tune your connection pool. Figure 5</p>
<p>
<img src="http://weblogs.java.net/blog/kalali/archive/images/gf_monit_f5.png" alt="Resources" />
</p>
<p><Strong>Transactions:</Strong>These allows you to view what is state of transactions that are running inside your application server.</p>

<p>It is my first blow entry written from my Ubuntu 7.04 installation and I am happy with my switch from OpenSuse to Feisty Fawn :-)</p>

<br>
<br>
<hr>


<table width="100%"> <tr>

<td><a href="http://wiki.netbeans.org/wiki/view/NetBeansDreamTeam">
<img alt="110x32_anim_v1.gif" src="http://weblogs.java.net/blog/kalali/archive/images/110x32_anim_v1.gif" width="110" height="32" /></a>
</td>


<td><a href="http://clustrmaps.com/counter/maps.php?url=http://weblogs.java.net/blog/kalali/" id="clustrMapsLink"><img src="http://clustrmaps.com/counter/index2.php?url=http://weblogs.java.net/blog/kalali/" border=1 alt="Locations of visitors to this page"onError="this.onError=null; this.src='http://www.meetomatic.com/images/clustrmaps-back-soon.jpg'; document.getElementById('clustrMapsLink').href='http://clustrmaps.com/'">
</a>
</td>

<td>

<script type="text/javascript">
<!--
 document.write("<a href='mailto:&#75;&#97;&#108;&#97;&#108;&#105;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;'>"); document.write("<img alt='email_address.png' src='http://weblogs.java.net/blog/kalali/archive/images/email_address.png' width='127' height='21' />");
 document.write("</a>");
// -->
</script>


</td>
<td><script src="http://mapstats.blogflux.com/button.js.php?id=15585" language="JavaScript" type="text/javascript"></script>
<noscript><a href="http://mapstats.blogflux.com/"><img src="http://mapstats.blogflux.com/button.php?id=15585" alt="Blog Flux MapStats: Stats and Web Counter" border="0" /></a></noscript></td>


</tr> </table>
]]>

</content>
</entry>
<entry>
<title>How to install and  use OpenSSO CLI (Command Line Administration Interface)</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2007/05/how_to_install.html" />
<modified>2008-07-16T13:35:49Z</modified>
<issued>2007-05-18T00:04:32Z</issued>
<id>tag:weblogs.java.net,2007:/blog/kalali/317.7446</id>
<created>2007-05-18T00:04:32Z</created>
<summary type="text/plain">Opensso which is open source branch of sun java access manager has several modules, one of them is CLI administration console which i will discussd in this entry</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Security</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>

<p>
<a href="https://opensso.dev.java.net">OpenSSO</a>&nbsp; which is open source 
branch of Sun Java Access Manager has several module which you should install 
and configure in case that you want to have similar bundle from its open source 
branch.</p>
<p>
One of main components is OpenSSO itself which you can obtain from&nbsp; <a href="http://download.java.net/general/opensso/nightly/amserver">Its nightly 
builds page</a>; just make sure to select <strong>latest</strong> link which 
will take you to the download page with links to OpenSSO modules.<br />
OpenSSO file name should be <strong>OpenSSO.war</strong>; this file is server 
side application that handle all authentication and authorization related 
activities. in the download page you can see several other modules, for this 
blog entry I will give you some details about installing OpenSSO and <strong>
Administration Command Line Tools. </strong>((It should be last row link in 
component download page).</p>
<p>
To install OpenSSO, you can follow a detailed installation instruction in <a href="http://blogs.sun.com/aorhan/resource/installation-guide.pdf">OpenSSO 
easy installation</a> just make sure that you remember value that you determined 
for&nbsp; <strong>Configuration directory </strong>because we will use it to 
install CLI (<strong>C</strong>ommand <strong>L</strong>ine administration
<strong>I</strong>nterface).</p>
<p>
Now that you have installed OpenSSO you can install its CLI package. Download
<strong>amAdminTools.zip </strong>and extract it somewhere in your hard dist. 
after you have extracted it follow this sequence to complete its installation 
open a terminal (cmd)&nbsp; and navigate to directory that you extract the
<strong>amAdminTools.zip; </strong>execute: setup -p&nbsp; 
&lt;OPENSSO_CONFIGURATION_DIRECTORY&gt;</p>
<p>
It should echo some text indicating that installation is successful. If you 
want to know more, Installation is nothing more than creation of batch files 
that I will talk about one of&nbsp; them in next step. this batch files use some files that 
are located in opensso configuration directory to perform their operations.

</p>
<p>the file that I will talk about is named <strong>amadm.bat
</strong>or <strong>amadm.sh </strong>this file let you manage your OpenSSO 
installation from a command line interface even if opensso server is running. 
all sub commands of this command has a set of 2 common parameter</p>
<ol>
	<li>
-u amAdmin : this is default administration username. you 
	can create more users with administration privileges.
	</li>
	<li>
-w &lt;password&gt; it is your password which you determined 
	during opensso installation.
	</li>
	
</ol>
<p>Now lets try some commands</p>

<pre>
<code>
amadm.bat create-realm -e /realm12 -u amAdmin -w adminadmin
</code>
</pre>
This command will create a new realm and put its parent is root realm.

<pre>
<code>
amadm.bat list-realms -e / -u amAdmin -w adminadmin
</code>
</pre>
This command list all realms that are created under parentship of root realm.



<pre>
<code>
amadm.bat list-identities -e / -x "*" -t User -u amAdmin -w adminadmin
</code>
</pre>
This command list all identities of type User which are exists in root realm.


you can find a list of all sub commands by calling

<pre>
<code>
amadm.bat
</code>
</pre>

<p>By default root realm is named openSSO and your created realm will be a child of that realm, Now you can open openSSO web based administraton console and check the result of CLI with it</p>

]]>

</content>
</entry>
<entry>
<title>What happend to JavaRSS.com?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2007/05/what_happend_to.html" />
<modified>2008-07-16T13:35:57Z</modified>
<issued>2007-05-12T00:26:06Z</issued>
<id>tag:weblogs.java.net,2007:/blog/kalali/317.7379</id>
<created>2007-05-12T00:26:06Z</created>
<summary type="text/plain">What happend to www.JavaRSS.com? I really miss it because I can not go to one single web site and see what is going in all other java related web sites.
</summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>
<dc:subject>Community</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>

<p >It is some times that <a href="http://www.javarss.com/">
http://www.javarss.com/</a> is not as it was before, indeed it looks to be 
<a href="http://en.wikipedia.org/wiki/Hack">hacked</a> or something like that. What I really want to know is, what will happen 
next? why its host provider did not take any action&nbsp; to remove
<a href="http:/weblogs.java.net/blog/kalali/archive/images/java_rss.JPG">this</a>
ugly 
page from the web site front page? </p>
<p>
I hope website owner could find a way to make 
it functional again.</p>

<hr>
]]>

</content>
</entry>
<entry>
<title>A scenario based tutorial about using NetBeans BPEL, JBI and Web service developemt features</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/kalali/archive/2007/05/a_scenario_base.html" />
<modified>2008-07-16T13:36:06Z</modified>
<issued>2007-05-11T21:33:43Z</issued>
<id>tag:weblogs.java.net,2007:/blog/kalali/317.7375</id>
<created>2007-05-11T21:33:43Z</created>
<summary type="text/plain">In thie entry you can see what does NetBeans 5.5.1 provides about developing web services, BPEL and composite applications in a complete scenario. You can learn casa editor, BPEL designer and some JBI terms and features that are provided in NetBeans and Glassfish </summary>
<author>
<name>kalali</name>

<email>kalali@gmail.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/kalali/">
<![CDATA[<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-137107-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>

NetBeans Enterprise pack 5.5.1 
provides several new features in as well as those ones in version 5.5. One of the 
most important features is related to ESB. In this article I will cover some of 
NetBeans capabilities to develop application based on the SOA paradigm.</font></font></font>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><font size="2">
<font face="Arial, sans-serif"><font color="#333333">You will see what ESB is and 
how it can ease development and deployment. I will also show what BPEL is and how 
it can affect your development, while demonstrating NetBeans’ level of support for 
ESB and BPEL. Building a scenario-based sample which uses some of NetBeans Enterprise 
Pack features in the BPEL and ESB area is the final things I will demonstrate.</font></font></font>
</p>
<p align="LEFT" lang="pt-BR" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.12in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#000080"><font face="Arial Narrow, sans-serif"><font size="4">
<strong><span style="FONT-WEIGHT: medium">What can an ESB do for us?</span></strong></font></font></font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2">An ESB which can act as a JBI compliant 
is an infrastructure that manages, monitors or enhances service&#39;s capabilities in 
several ways like providing more connectivity mechanisms which has been added to 
ESB by binding components. Binding components can interact with resources outside 
the ESB. For example a JDBC binding component can act like a consumer and poll a 
database table for new records and whenever new records become available transforms 
them to a standard message named Normalized Message and sends it to the other participants 
by using a message router named Normalized Message Router or NMR. Messages that 
are produced by binding components may require transformation in order to meet business 
rules or making usable messages for other binding components or service engines. 
A service engine provides and consumes services within ESB. BPEL service engine 
which hosts long running business process based on BPEL standard is as a sample 
of service engine. </font></font></font></p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2">JBI compliant ESBs are based on XML-web 
services standards and usually support several WS-I standards like WS-Addressing, 
WS-Security and etc. When you install NetBeans enterprise pack you are adding a 
wide range of capabilities to your IDE for developing composite applications which 
are equal to JBI service assemblies. At the same time, installing Enterprise pack 
will install a version of glassfish integrated with Open-ESB 2.0 that addresses 
all your needs.</font></font></font> </p>
<p align="LEFT" lang="pt-BR" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.12in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#000080"><font face="Arial Narrow, sans-serif"><font size="4">
<strong><span style="FONT-WEIGHT: medium">What is BPEL role in your </span>
</strong><b><span lang="en-US">SOA</span></b><strong><span style="FONT-WEIGHT: medium">?</span></strong></font></font></font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2">I am not going to talk about technical 
details of BPEL; I would prefer to say what it can do. BPEL allows us to orchestrate 
some fine grained web services to perform a more coarse grained long lived asynchronous 
or short lived synchronous business operations. For example you can develop a web 
service that persists data based on some meta-data which are attached to your data, 
a web service that check validation against pre-defined rules, a service that sends 
email to some recipients. Now you can use BPEL and some other features that are 
provided by BPEL engine to perform a business operation like order saving and customer 
registration; so BPEL provides us with features that can highly reduce amount of 
fine grained web services that we develop in our entire enterprise. </font>
</font></font></p>
<p align="LEFT" lang="pt-BR" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.12in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#000080"><font face="Arial Narrow, sans-serif"><font size="4"><b>
<span lang="en-US">What does NetBeans as a development tools?</span></b></font></font></font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2">NetBeans enterprise pack provides 
us with a first class designer for BPEL, WSDL and XSD. Another very good feature 
that is introduced in Enterprise pack 5.5.1 is <i>CASA</i> editor<b><font color="#ff0000">.</font></b> 
Composite Application Service Assembly editor let developers to see a high-level 
view of how the Service Assembly is connected and configured. More importantly, 
users can modify connections between elements within the Service Assembly. The routing 
of Service Units and Binding Components can be easily tweaked, or completely redone 
as it provide visual editor enriched with a component palette for all available 
artifacts like binding components and service units. 
<br>

]]>
<![CDATA[<p>
<font color="#000080"><font face="Arial Narrow, sans-serif"><font size="4"><b>The 
Case Study</b></font></font></font> </p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2">In this article I will develop a sample 
application based on a fictional scenario that shows how we can leverage BPEL and 
binding components in our development. Here is the scenario; there is a sample store 
which takes orders from its customer trough a web service. Order will enter into 
a business process, business process stores the order to local database and checks 
the order shipping cost, if shipping cost is greater than 1000, the order should 
be sent to a supplier that handles orders greater than 1000. This supplier has a 
JMS queue to receive orders. The order shipping cost will be written to an xml file 
as the second supplier monitors if it is lower than 1000.</font></font></font>
</p>
<p>
<font color="#000080"><font face="Arial Narrow, sans-serif"><font size="4"><b>Requirements:</b></font></font></font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2">You will need: most recent version 
of NetBeans 5.5.1 and Enterprise pack 5.5.1, basic knowledge of Java and NetBeans 
IDE.</font></font></font> </p>
<p>
<font color="#333333"><font face="Arial, sans-serif"><font size="2">The following 
8 steps are necessary to complete the sample scenario: </font></font></font></p>
<ul>
	<li>
	<p align="LEFT" class="western" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0in">
	<font color="#333333"><font face="Arial, sans-serif"><font size="2">Create BPEL 
	module project.</font></font></font> </p>
	</li>
	<li>
	<p>
	<font color="#333333"><font face="Arial, sans-serif"><font size="2">Create a 
	Web service from PURCHASE_ORDER table which is present in NetBeans bundled JavaDB 
	sample Database. </font></font></font></p>
	</li>
	<li>
	<p>
	<font size="2"><font face="Arial, sans-serif"><font color="#333333">Create PlaceOrder, 
	SaveToFile and SendToJMS WSDLs. </font></font></font></p>
	</li>
	<li>
	<p>
	<font color="#333333"><font face="Arial, sans-serif"><font size="2">Create BPEL 
	process. </font></font></font></p>
	</li>
	<li>
	<p>
	<font color="#333333"><font face="Arial, sans-serif"><font size="2">Create Composite 
	Application project.</font></font></font> </p>
	</li>
	<li>
	<p>
	<font color="#333333"><font face="Arial, sans-serif"><font size="2">Use CASA 
	editor to configure service assemblies.</font></font></font> </p>
	</li>
	<li>
	<p>
	<font size="2"><font face="Arial, sans-serif"><font color="#333333">Configure 
	application server resources.</font></font></font> </p>
	</li>
	<li>
	<p>
	<font color="#333333"><font face="Arial, sans-serif"><font size="2">Test the 
	application.</font></font></font> </p>
	</li>
	<li>
	<p align="LEFT" class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0.19in">
	<font color="#333333"><font face="Arial, sans-serif"><font size="2">Conclusion.</font></font></font>
	</p>
	</li>
</ul>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#0000ff"><font face="Arial Narrow, sans-serif"><font size="2"><i>
<b>Creating the BPEL Module Project</b></i></font></font></font> </p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in">
<font size="2"><font face="Arial, sans-serif">Click the <i>New Project</i> icon 
and select the <i>Service Oriented Architecture</i> category; in the projects list, 
select the <i>BPEL Module</i> and click next; enter </font></font><em><b>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333">OrdersBP</font></font></font></span></b></em><font size="2"><font face="Arial, sans-serif"> 
as project name and click Finish.<span lang=""><font color="#333333"> </font>
</span></font></font></p>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#0000ff"><font color="#333333"></font></font></p>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#0000ff"><font face="Arial Narrow, sans-serif"><font size="2"><i>
<b>Creating web service from database</b></i></font></font></font> </p>
<p class="western" style="MARGIN-BOTTOM: 0in"><font size="2">
<font face="Arial, sans-serif">NetBeans provides some wizards to create a web service 
from database table; the generated web service can perform CRUD operation on selected 
table. </font></font></p>
<p class="western" style="MARGIN-BOTTOM: 0in"><font size="2">
<font face="Arial, sans-serif">To create a web service from database right click 
on <b>OrdersBP</b> project and from pop-up menu select <i>File &gt; New &gt; File/Folder...;
</i>select <i>Service Oriented Architecture</i> category and in the file type tree 
select <i>WSDL from Database</i>..., click <i>Next</i>. Type </font></font><em>
<b><span style="FONT-STYLE: normal"><font size="2">
<font face="Arial, sans-serif">Orders</font></font></span></b></em><font size="2"><font face="Arial, sans-serif"> 
as file name and advance to next step. In this page you should select database that 
you want to generate a web service from one of its tables; select the sample data 
source from the list as shown in <b>Figure 1</b>. Username and password for database 
is app/app if you have not provided NetBeans with them until now. </font></font>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><font size="2">
<font face="Arial, sans-serif">As you can see in the wizard page you can add a table 
from available list to the selected list; just add <b>PURCHASE_ORDER</b> table to 
selected list and click <i>Next</i>. Now you will see a page that asks you to select 
table that you want to generate CRUD operation for it as web service operations.
</font></font></p>
<p class="western" style="MARGIN-BOTTOM: 0in"><font size="2">
<font face="Arial, sans-serif">For now we can just select one table for each wsdl 
file but in next versions you can select more tables and in this page you can determine 
which of CRUD operations for which tables you want to be included in the web service. 
Choose <b>Purchase_Order </b>table and proceed to the next page; this page will 
ask you about JNDI name for a connection pooling that is configured to provide connections 
for the same database that you select its table in previous step, type <b>jdbc/soa_sample</b> 
as JNDI name; we will configure <b>jdbc/soa_sample</b> data source and the connection 
pooling later.</font></font> </p>
<p align="LEFT" class="western" lang="" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.17in">
<img alt="image-2.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-2.png" width="422" height="43" />
</p>
<p align="LEFT" class="western" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.17in">
Figure1: select sample data source to create wsdl from one of its tables. </p>
<p class="western" lang="" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0in; MARGIN-BOTTOM: 0.17in">
<img alt="image-3.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-3.png" width="385" height="118" />

</p>
<p align="LEFT" class="western" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif">Figure 2: choosing Purchase_Order 
table to create a wsdl from it.</font></font> </p>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#0000ff"><font face="Arial Narrow, sans-serif"><font size="2"><i>
<b>Creating <em>PlaceOrder</em>, <em>SaveToFile</em> and <em>SendToJMS</em> WSDLs..</b></i></font></font></font>
</p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif"><font color="#333333">If you remember 
the scenario, </font></font></font>one of the requirements<font size="2"><font face="Arial, sans-serif"><font color="#333333"> 
was communication with </font></font></font>the client to receive orders using a 
web service and the other one was saving the order into a file or sending it as 
JMS message to a JMS Queue. </p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif"><font color="#333333">To communicate 
with client we will create a web service starting from creating its wsdl. So
</font><b><font color="#ff0000">r</font></b><font color="#333333">ight click on
<b>OrdersBP</b> node and select <i>New &gt; WSDL Document...</i> type </font>
</font></font><em><b><font size="2"><font face="Arial, sans-serif">
<font color="#333333">PlaceOrder</font></font></font></b></em> <font size="2">
<font face="Arial, sans-serif"><font color="#333333">for its name and make sure 
to check import XML schema file(s). We need to import the XSD file to use its definition 
for order type in our web service. To import the XSD file click <i>Browse </i>and 
select <b>srcPURCHASE_ORDER.xsd</b> and proceed to the next step. In this step we 
need to define what is our input message content or type and whether we have output 
message and fault message for our web service or not. </font></font></font></p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif"><font color="#333333">For <i>input 
part</i>: change <i>message part</i> name to </font></font></font><b><i>inputOrder<font color="#ff0000">.</font>
</i></b><font size="2"><font face="Arial, sans-serif"><font color="#333333">We should 
change the message element to <b>PURCHASE_ORDER</b> element that is created by NetBeans 
during previous steps. Click on change button in right side of xsd:string; <i>Select 
Element Or Type</i> window will open, select <b>PURCHASE_ORDER </b>Element as shown 
in <b>Figure 4.</b></font></font></font> </p>
<p class="western" lang="" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font color="#333333">
<img alt="image-4.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-4.png" width="350" height="274" />



</font>
</p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
Figure 4: Select element type for inputOrder </p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif"><font color="#333333">We need to change 
output message type to the same type that we selected for the input message</font><b><font color="#ff0000">;
</font></b><font color="#333333">so follow the same procedure and change output 
message type to <b>PURCHASE_ORDER</b></font><b><font color="#ff0000">;</font><font color="#333333">
</font></b><font color="#333333">make sure that you change the part name to
</font></font></font><b>outputOrder</b>, c<font size="2"><font face="Arial, sans-serif"><font color="#333333">lick 
Next, select <i>Document Literal</i> as<i> Binding Subtype</i> and click Finish.</font></font></font>
</p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif"><font color="#333333">Now we need 
to create the two other WSDLs which will connect our BPEL process to <i>File Binding 
Component</i> and <i>JMS Binding Component</i>. Creating these two files is very 
simple</font><b><font color="#ff0000">.</font></b><font color="#333333"> I will 
explain </font><font color="#ff0000">a</font><font color="#333333"> procedure to 
create one of them and you create the other one yourself.</font></font></font>
</p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif"><font color="#333333">To create
</font></font></font><b>SendToJMS</b><font size="2"><font face="Arial, sans-serif"><font color="#333333"> 
WSDL Right click on OrdersBP node and select <i>New &gt; WSDL Document...</i> type
</font></font></font><b>SendToJMS.wsdl</b><font size="2"><font face="Arial, sans-serif"><font color="#333333"> 
in the name field and make sure import XML schema file(s) check boxes have been 
checked, import <b>srcPURCHASE_ORDER.xsd</b> as you did for former WSDL file and 
proceed to the next step. </font></font></font></p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif"><font color="#333333">Both of File 
and JDBC WSDLs have a one way operation because we do not need an output value from 
them so select <i>One-Way Operation</i> as <i>operation type. </i>Change message 
part name to </font></font></font><i>inputOrder </i>and <font size="2">
<font face="Arial, sans-serif"><font color="#333333">change Element<i> or Type</i> 
to <b>PURCHASE_ORDER</b> as you did for previous wsdl. Click N<i>ext</i>, select
<i>Document Literal</i> as <i>Binding Subtype</i> and click <i>Finish</i>.</font></font></font>
</p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif"><font color="#333333">You may ask 
yourself what was all of those <i>Binding Subtype</i> available in its combo box, 
indeed each of the types stands for a <i>Binding Component</i> in Glassfish application 
server integrated ESB. You can choose any of those Binding type right when you create 
the WSDL or you can edit it in CASA editor which gives you easier configuration 
panels. </font></font></font></p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif"><font color="#333333">To create <b>
SaveToFile.wsdl</b><i> </i>you should follow the same procedure that you followed 
to create <b>SendToJMS.WSDL. </b>Just make sure that you change the file name to
<i>SaveToFile.wsdl.</i></font></font></font> </p>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#0000ff"><font face="Arial Narrow, sans-serif"><font size="2"><i>
<b>Creating the BPEL process file</b></i></font></font></font> </p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font size="2"><font face="Arial, sans-serif"><font color="#333333">As you read 
earlier in this article we use BPEL to weave our web services and create a more 
coarse grained business process over them. By now we create three web services which 
perform some fine grained tasks like inserting data into database, sending messages 
to JMS and etc; Now we want to create a BPEL process using these web services to 
perform order processing.</font></font></font> </p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font face="Arial, sans-serif"><font size="2"><font color="#333333">To create BPEL 
process, in the Projects window, expand the </font></font><b>OrdersBP</b><font color="#333333"><font size="2"> 
project node and right click on Process Files node, choose <i>New &gt; BPEL Process</i>. 
Enter </font>OrderProcess as file name in the <font size="2">New BPEL Process wizard 
opened window</font> and click</font></font><em><b><span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif"><font color="#ff0000">
</font></font></font></span></b></em><i><font face="Arial, sans-serif">
<font color="#333333">Finish</font></font></i><em><span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif"><font color="#333333">. 
BPEL editor which is one </font></font></font></span></em><font size="2">
<font face="Arial, sans-serif"><font color="#333333">of the bright features of enterprise 
pack will open and let you design your BPEL. IF Properties and Palette</font> windows 
are not opened <font color="#333333">so</font> activate them from Windows menu.</font></font>
</p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<em><span style="FONT-STYLE: normal"><font size="2">
<font face="Arial, sans-serif"><font color="#333333">Now we should add some partner 
link to our BPEL process, partner links allows BPEL process to communicate with 
other web services and indeed it allows us to use those web services in BPEL process 
elements. We need to create four partner links for four web services that we created 
in previous steps. To create a partner link for the <b>PlaceOrder</b> web service, 
Drag and Drop <b>PlaceOrder.wsdl</b> from project windows to BPEL designer, a window 
will opens that let you customize partner link creation, change its name to <b>PlaceOrderPL
</b>and click OK and its finished.</font></font></font></span></em> </p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<em><font color="#333333"><font size="2"><font face="Arial, sans-serif">
<span style="FONT-STYLE: normal">Now our BPEL process should wait until a customer 
call it with the PlaceOrder web service. So BPEL process should wait until it receives 
a message from its partner link. From </span>Palette<span style="FONT-STYLE: normal"> 
drag and drop a </span>Receive<span style="FONT-STYLE: normal"> element into <b>
OrderProcess</b> in BPEL designer. By Selecting receive element you will see a small 
envelop appears in its right side, select that envelop and connect it to PlaceOrderPL. 
By double clicking on the </span>receive<span style="FONT-STYLE: normal"> element,
</span>Property<span style="FONT-STYLE: normal"> editor window will open click on
</span>Create<span style="FONT-STYLE: normal"> button to create a variable which 
will carry our order from <b>PlaceOrder</b> web service into the process, accept 
defaults, select OK for </span>new input variable<span style="FONT-STYLE: normal"> 
window again press OK for </span>Property<span style="FONT-STYLE: normal"> editor. 
Your Designer should show something similar to <b>figure 5</b>.</span></font></font></font></em>
</p>
<p class="western" lang="" style="MARGIN-BOTTOM: 0in"><font color="#333333">
<img alt="image-5.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-5.png" width="504" height="456" />


</font>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333">Figure 5: BPEL designer after adding first receive and first 
partner link.</font></font></font></span></em> </p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<em><font size="2"><font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">Now we should add a partner link for <b>Orders</b> 
web services so drag and drop <b>Orders.wsdl</b> from project windows to BPEL designer;
</span>Create New Partner Link<span style="FONT-STYLE: normal"> window will</span></font><span style="FONT-STYLE: normal"><b><font color="#ff0000">
</font></b><font color="#333333">opens, change name field to OrdersPL and click 
on Swap Roles button to swap partner link role to <b>jdbcPortTypeRole</b>.</font></span></font></font></em>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em><font size="2">
<font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">For using previous partner link we used a
</span>Receive<span style="FONT-STYLE: normal"> element to receive messages from 
it but now we are going to send our messages to this partner link so add an
</span>Invoke <span style="FONT-STYLE: normal">from </span>Palette<span style="FONT-STYLE: normal"> 
to BPEL designer. We want to invoke insert operation of <b>OrdersPL </b>so connect 
Invoke element to insert operation of <b>OrdersPL</b>. We need to send our order 
to this operation so we need some variables to carry our order from BPEL process 
to double click on invoke element, create a new input and output variable and for 
both of them accept default settings. Click </span>OK<span style="FONT-STYLE: normal"> 
to close the property editor.</span></font></font></font></em> </p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><em>
<font size="2"><font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">Now we have an Invoke element which will invoke 
Insert operation for us, also we have a variable which will carry our order information 
to <b>Insert</b> operation. But we need to assign real data to that variable before 
it can deliver them to <b>Insert</b> operation. Real order data is stored into variable 
that we defined to receive element in previous step. Assigning variables to each 
other is responsibility of <b>Assign</b> element in BPEL. So Drag and Drop an assign 
element from palette between Receive1 and Invoke1 elements; now select Assign1 element 
and </span>BPEL Mapper<span style="FONT-STYLE: normal"> will open. Connect variables 
as shown in <b>Figure 6</b>.</span></font></font></font></em> </p>
<p class="western" lang="" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in">


<img alt="image-6.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-6.png" width="815" height="333" />



</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333">Figure 6: BPEL Mapper when mapping variables for assign1 element</font></font></font></span></em>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><em>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333">Up to this step, we have received a message from PlaceOrder 
web service and we store it into database. Now we should decide where we should 
send the order; if it’s shipping cost is more than 1000, then we</font><b><font color="#ff0000">
</font></b><font color="#333333">have</font><b><font color="#ff0000"> </font>
</b><font color="#333333">to send it to the JMS queue for first supplier and if 
it is not that costly shipping we can send it to xml file for second supplier. Here 
we need to decide based on a condition; so we</font><b><font color="#ff0000">
</font></b><font color="#333333">should use a decision making statement like IF 
which its markup element is provided in BPEL standard and NetBeans has it in its 
BPEL palette.</font></font></font></span></em> </p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><em>
<font color="#333333"></font></em></p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><em>
<font color="#333333"><font size="2"><font face="Arial, sans-serif">
<span style="FONT-STYLE: normal">Drag and drop an IF element from </span>Structured 
Activities<span style="FONT-STYLE: normal"> category of palette right after Invoke 
1. Select </span>IF<span style="FONT-STYLE: normal"> element and </span>BPEL Mapper<span style="FONT-STYLE: normal"> 
will open, here we can make our Boolean expression based on variables that we have 
and tens of functions that </span>BPEL Mapper<span style="FONT-STYLE: normal"> let 
us use visually. From </span>Operators<span style="FONT-STYLE: normal"> select a
</span>Greater Or Equal<span style="FONT-STYLE: normal">, Its icon will appear in 
middle space of </span>BPEL Mapper<span style="FONT-STYLE: normal">.</span></font><span style="FONT-STYLE: normal"><b><font color="#ff0000">
</font></b><font color="#333333">Now connect it to <b>PlaceOrderOperationIn.inputOrder.SHIPPING_COST</b> 
in left pane and the result in right pane as shown in <b>figure 7</b>.</font></span></font></font></em>
</p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><br>
</p>
<p lang="" style="MARGIN-BOTTOM: 0.18in"><font color="#333333">

<img alt="image-7.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-7.png" width="815" height="332" />


</font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2"><em>
<span style="FONT-STYLE: normal">Figure 7: Creating IF condition for shipping cost.</span></em></font></font></font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2">Select IF Element and in <i>Properties</i> 
window click on the change button of <i>Condition</i> property<b><font color="#ff0000">.
</font></b>Condition property editor will open<b><font color="#ff0000">; </font>
</b>change it according to <b>figure 8</b>.</font></font></font> </p>
<p lang="" style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<img alt="image-8.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-8.png" width="380" height="195" />



</font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2">Figure 8:If condition property editor.</font></font></font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2"><em>
<span style="FONT-STYLE: normal">If you are a fan of visual editor and you don’t 
like to use textual editor even to edit a condition then instead of using property 
editor that is shown in <b>figure 8</b> you can add a </span>Number Literal<span style="FONT-STYLE: normal"> 
and then link it to any2 in </span>Greater Equal<span style="FONT-STYLE: normal"> 
operator</span></em>;<em><b><span style="FONT-STYLE: normal"><font color="#ff0000">
</font></span></b></em>but<em><span style="FONT-STYLE: normal"> using condition 
editor gives you more flexibility to write your condition using sophisticated XPath 
statements.</span></em></font></font></font> </p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em><font size="2">
<font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">Now we have our decision making statement in place, 
what we need is a call to appropriated web service in each branch of </span>IF<span style="FONT-STYLE: normal"> 
statement. In case that if condition return true then we should send the purchase 
order to JMS queue and in case that order shipping cost is less than $1000 then 
we </span></font></font></font></em><font color="#333333">have</font><em><b><span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif"><font color="#ff0000">
</font></font></font></span></b></em><font color="#333333">to</font><em><span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif"><font color="#333333"> 
send it to the XML file. For both of these operations we need to have partner link 
to their web services and </font></font></font></span></em>
<font color="#333333">invoke</font><em><font size="2"><font face="Arial, sans-serif"><font color="#333333"><span style="FONT-STYLE: normal"> 
element to invoke those web services. To involve <b>SaveToFile</b> web service Drag 
and Drop the <b>SaveToFile.wsdl </b>from </span>Projects<span style="FONT-STYLE: normal"> 
window to BPEL editor, </span>Create New Partner Link<span style="FONT-STYLE: normal"> 
window will appear. Change partner link name to <b>SaveToFilePL</b> and click on
</span>Swap Roles<span style="FONT-STYLE: normal"> button to change the role of 
invoker and receiver. Now that we have partner link in place we need to invoke its 
operation; so drag and drop an Invoke element into BPEL editor.Make sure to put 
Invoke element in false branch (branch in right side) of IF statement. Connect it 
to <b>SaveToFilePL</b> partner link. Now we should define input and output variables</span></font><span style="FONT-STYLE: normal"><b><font color="#ff0000">;</font></b><font color="#333333"> 
so double click on invoke element and create input and output variables with default 
settings. </font></span></font></font></em></p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em><font size="2">
<font face="Arial, sans-serif"><span style="FONT-STYLE: normal">
<font color="#333333">Now drag and drop the</font><b><font color="#ff0000">
</font>SendToJMS.wsdl<font color="#ff0000"> </font></b><font color="#333333">from 
Projects window to BPEL editor as we should add latest partner link to our BPEL 
process. </font></span><font color="#333333">Create New Partner Link<span style="FONT-STYLE: normal"> 
window will appear, Change its name to <b>SendToJMSPL</b> and click on </span>Swap 
Roles<span style="FONT-STYLE: normal"> button. To invoke <b>SendToJMS</b> operation 
drags and drop an </span>Invoke<span style="FONT-STYLE: normal"> element into BPEL
</span></font><span style="FONT-STYLE: normal">editor<b>.<font color="#ff0000">
</font>Make</b><font color="#333333"> sure to put Invoke element in true branch 
(branch in left side) of IF statement. Connect it to <b>SendToJMSPL</b> partner 
link and to create variables double click on invoke element and create input and 
output variables with default settings. </font></span></font></font></em></p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em><font size="2">
<font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">We have two new Invoke elements and variables that 
carry our information; what we need is to assign some value to these variables. 
Select </span>Assign1<span style="FONT-STYLE: normal"> element in BPEL designer,
</span>BPEL Mapper<span style="FONT-STYLE: normal"> will appear; from </span>
</font><span style="FONT-STYLE: normal">right <b>side</b> connect <b>PlaceOrderOperationIn.inputOrder</b> 
to <b>SendToJMSOperationIn.inputOrder</b> variable in left side to determine what 
we want to send to JMS queue. Again from right <b>side</b> connect <b>PlaceOrderOperationIn.inputOrder</b> 
to <b>SaveToFileOperationIn.inputOrder variable</b> in left side to determine what 
will be stored in our XML file. </span>BPEL Mapper<span style="FONT-STYLE: normal"> 
should look like <b>figure 9.</b></span></font></font></em> </p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" lang="" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in">
<font color="#333333">



<img alt="image-9.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-9.png" width="814" height="351" />






</font>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333"><b>Figure 9: </b>BPEL Mapper after mapping all variables in 
BPEL process.</font></font></font></span></em> </p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p>
<em><font color="#333333"></font><font size="2"><font face="Arial, sans-serif">
<span style="FONT-STYLE: normal">Now That the Business process finishes and we want 
to send reply to initiator in order to confirm that his/her shipping order has been 
placed. We send back the same order that we received as a confirmation to initiator. 
So drag and drop a </span>Reply<span style="FONT-STYLE: normal"> element right before
</span>Process End<span style="FONT-STYLE: normal"> element, connect it to <b>PlaceOrderPL</b>. 
Now we should define variables and assign what is going to be send as reply<b>;</b> 
so double click on newly created Reply element and create a normal response output 
variable with default options.</span></font></font></em> </p>
<p>
<em><font size="2"><font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">Now we should assign the original order to this 
variable, so select </span>Assign1<span style="FONT-STYLE: normal"> element in BPEL 
designer; </span>BPEL Mapper <span style="FONT-STYLE: normal">will appear, from 
right connect <b>PlaceOrderOperationIn.inputOrder</b> to <b>PlaceOrderOperationOut.outputOrder</b> 
variable in left side now </span>BPEL Designer<span style="FONT-STYLE: normal"> 
should be similar to <b>figure 10.</b></span></font></font></font></em> </p>
<p class="western" lang="" style="MARGIN-BOTTOM: 0in"><font color="#333333">


<img alt="image-10.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-10.png" width="501" height="808" />




</font>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333">Figure 10: BPEL designer after completing the design.</font></font></font></span></em>
</p>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; FONT-STYLE: normal; page-break-after: avoid">
<br>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<br>
</p>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#0000ff"><font face="Arial Narrow, sans-serif"><font size="2"><i>
<b>Create Composite Application project</b></i></font></font></font> </p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333">Composite application is our means to create service assembles.
</font>These service assemblies will<font color="#333333"> be deployed into our 
ESB service engines based on their type. Now that we have a BPEL process and we 
want to deploy it into our ESB we need to create a </font>composite<font color="#333333"> 
application project to hold our BPEL project module. </font></font></font>
</span></em></p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em><font size="2">
<font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">From the IDE&#39;s main menu, choose </span>File &gt; 
New Project<span style="FONT-STYLE: normal">. The New Project wizard opens, select
</span>Service Oriented Architecture<span style="FONT-STYLE: normal"> and in the
</span>Projects<span style="FONT-STYLE: normal"> list, select the </span>Composite 
Application<span style="FONT-STYLE: normal">. Proceed to next step and </span>
</font><span style="FONT-STYLE: normal">in<font color="#333333"> the </font>
</span><font color="#333333">Project Name<span style="FONT-STYLE: normal"> field, 
type <b>OrdersCA </b>and click Finish.</span></font></font></font></em> </p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em><font size="2">
<font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">Now we need to add our BPEL module to this composite 
application so in the </span>Projects<span style="FONT-STYLE: normal"> window, right-click 
on <b>OrdersCA</b> and choose Add JBI Module from the pop-up menu; when </span>Select 
Project<span style="FONT-STYLE: normal"> dialog box </span></font>
<span style="FONT-STYLE: normal">opens<font color="#333333"> select <b>OrdersBP</b> 
project you created earlier in this article and click Add Project JAR Files.</font></span></font></font></em>
<em><span style="FONT-STYLE: normal"><font size="2">
<font face="Arial, sans-serif"><font color="#333333">Your Projects window should 
look like <b>figure 11</b> if you expand all nodes.</font></font></font></span></em>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" lang="" style="MARGIN-BOTTOM: 0in"><font color="#333333">


<img alt="image-11_.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-11_.png" width="227" height="393" />





</font>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333">Figure 11: Projects window after expanding all nodes.</font></font></font></span></em>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><br>
<br>
</p>
<p>
<em><span style="FONT-STYLE: normal"><font size="2">
<font face="Arial, sans-serif"><font color="#333333">Now we can use CASA editor 
to configure and change our service assemblies. Before going any further, right 
click on OrdersCA and select Build from pop-up menu. This will initiate OrdersCA.casa 
file with the current configuration and elements.</font></font></font></span></em>
</p>
<p>
<em><span style="FONT-STYLE: normal"><font size="2">
<font face="Arial, sans-serif"><font color="#333333">To configure CASA, right click 
on OrdersCA node in projects window and select Edit, you will see something similar 
to <b>figure 12</b>. This is CASA editor and you can use it to configure your binding 
components, service units and endpoints. </font></font></font></span></em></p>
<p lang="" style="MARGIN-BOTTOM: 0.18in"><font color="#333333">


<img alt="image-12.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-12.png" width="856" height="478" />




</font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2"><em>
<span style="FONT-STYLE: normal">Figure 12: CASA editor before configuring components 
binding. </span></em></font></font></font></p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2"><em>
<span style="FONT-STYLE: normal">As you can see in the picture, <b>SendToJMS</b> 
and <b>SaveToFile</b> are connected to SOAP binding components which is not what 
we need; delete both SaveToFilePort and SaveToJMSPort from WSDL Ports section.<b><font color="#ff0000">
</font></b>We will add one JMS and one File Binding Component to this part in order 
to configure using them with <b>SaveToFile</b> and <b>SendToJMS</b> web services.</span></em></font></font></font>
</p>
<p>
<em><font size="2"><font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">To Add and configure File Binding Component drag 
and drop a </span>fie<span style="FONT-STYLE: normal"> element from Palette into
</span>WSDL Ports<span style="FONT-STYLE: normal"> section of CASA editor then connect
<b>SaveToFile</b> consumer endpoint to the newly dropped File BC&#39;s Provider endpoint. 
CASA editor will give a name to your newly dropped File BC. The name can be something 
like <b>casaPort1</b>. Select <b>casaPort1</b>; </span>Navigator<span style="FONT-STYLE: normal"> 
window has to show <b>casaPort1</b> elements. If </span>Navigator<span style="FONT-STYLE: normal"> 
window is not visible open it from </span>Windows &gt; Navigator<span style="FONT-STYLE: normal"> 
menu. </span>Navigator<span style="FONT-STYLE: normal"> should be similar to <b>
figure 13</b>.</span></font></font></font></em> </p>
<p lang="" style="MARGIN-BOTTOM: 0.18in"><font color="#333333">

<img alt="image-13.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-13.png" width="304" height="467" />




</font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2"><em>
<span style="FONT-STYLE: normal">Figure 13:</span></em> <em>
<span style="FONT-STYLE: normal">Navigator window when <b>casaPort1</b> (File Binding 
Component) is selected.</span></em></font></font></font> </p>
<p>
<em><font size="2"><font face="Arial, sans-serif">
<span style="FONT-STYLE: normal"><font color="#333333">In <b>figure 13</b> you can 
see two important elements of <b>casaPort1</b> marked with Number 1 and Number 2. 
When you select any of these elements</font><b><font color="#ff0000">,</font></b><font color="#333333">
</font></span><font color="#333333">Properties<span style="FONT-STYLE: normal"> 
windows will show customizable property of these elements. File:address element 
which is marked with number 1 lets you configure file path. This path will be used 
whether a File BC acts as provider or as consumer. Change the path if it is not 
suitable for you. <b>file:message </b>element which is marked with number 2 lets 
you customize how your BC will interact with the file when it acts as consumer or 
provider. For more information about File BC look at resources section.</span></font></font></font></em>
</p>
<p>
<em><font size="2"><font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">To configure <b>SendToJMS</b> web service end point, 
drag and drop a </span>jms<span style="FONT-STYLE: normal"> element from </span>
Palette<span style="FONT-STYLE: normal"> into </span>WSDL Ports<span style="FONT-STYLE: normal"> 
section of CASA editor</span></font><span style="FONT-STYLE: normal"><b><font color="#ff0000">;</font></b><font color="#333333"> 
then connect <b>SendToJMS</b> consumer endpoint to newly dropped JMS BC’s Provider 
endpoint. CASA editor will give a name to your newly dropped JMS BC the name can 
be something like <b>casaPort2</b>. Select <b>casaPort2</b>, Navigator window should 
show <b>casaPort2</b> elements. If navigator window is not visible open it from
</font></span><font color="#333333">Windows &gt; Navigator<span style="FONT-STYLE: normal"> 
menu. Navigator should be similar to figure 14.</span></font></font></font></em>
</p>
<p lang="" style="MARGIN-BOTTOM: 0.18in"><font color="#333333">

<img alt="image-14.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-14.png" width="302" height="466" />


</font>
</p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2"><em>
<span style="FONT-STYLE: normal">Figure 14: Navigator window when casaPort2 (JMS 
Binding Component) is selected.</span></em></font></font></font> </p>
<p style="MARGIN-BOTTOM: 0.18in"><font color="#333333">
<font face="Arial, sans-serif"><font size="2"><em>
<span style="FONT-STYLE: normal">As you can see in figure14 </span>jms:address<span style="FONT-STYLE: normal"> 
which is marked as number one let you configure <b>connectionURL</b>, <b>username</b> 
and <b>password</b>. To view and modify properties that are exposed for this element 
you can use Properties window. For now JMS BC just support SUN MQ. Assuming that 
you do not changed usename, password and port number of your SUN MQ server; so you 
have to use settings that are included in table 1.</span></em></font></font></font>
</p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><em>
<font size="2"><font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">Elements that are marked with number 2, let you 
configure how BC should handle your message and deliver it to JMS queue or topic. 
To select general options of JMS binding component you can use </span>jms:operation<span style="FONT-STYLE: normal"> 
element. This element allows you to select topic/queue that you want to use and 
other JMS connection properties like transaction, delivery mode, time out and etc. 
If you specify an already created queue (from application server admin console for 
example) your messages will be delivered to that queue, otherwise Sun MQ will create 
a temporary queue and save your messages there. Make sure that you have selected</span></font><span style="FONT-STYLE: normal"><b><font color="#ff0000">
</font></b></span><font color="#333333">jms:message<span style="FONT-STYLE: normal"> 
which is marked as number 2 and have changed its textPart property to</span></font><span style="FONT-STYLE: normal"><b><font color="#ff0000">
</font>inputOrder<font color="#ff0000"> </font></b><font color="#333333">from Properties 
window.</font></span></font></font></em> <br>
<br>
</p>
<p class="style1"><em>
<span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;font-style:
normal"><o:p>&nbsp;</o:p></span></em></p>
<table border="0" cellpadding="0" style="width: 21%; mso-cellspacing: 1.5pt; height: 113px;" class="style2">
	<tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes;
  height:29.2pt">
		<td style="padding: .75pt .75pt .75pt .75pt; height: 29.2pt; width: 227px;">
		<table border="1" cellspacing="0" cellpadding="0" width="237" style="width: 178.0pt; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" class="style3">
			<tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;height:16.3pt">
				<td width="106" valign="top" style="width: 79.75pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #B4B4CA; mso-shading: white; mso-pattern: gray-50 navy; padding: 0in 5.4pt 0in 5.4pt; height: 16.3pt">
				<p class="MsoNormal"><em><b>
				<span style="font-size:
    10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333;font-style:normal">
				Property name<o:p></o:p></span></b></em></p>
				</td>
				<td width="131" valign="top" style="width: 98.25pt; border: solid windowtext 1.0pt; border-left: none; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; background: #B4B4CA; mso-shading: white; mso-pattern: gray-50 navy; padding: 0in 5.4pt 0in 5.4pt; height: 16.3pt">
				<p class="MsoNormal"><em><b>
				<span style="font-size:
    10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333;font-style:normal">
				Required value<o:p></o:p></span></b></em></p>
				</td>
			</tr>
			<tr style="mso-yfti-irow:1;height:15.35pt">
				<td width="106" valign="top" style="width:79.75pt;border:solid windowtext 1.0pt;
    border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:
    solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:15.35pt">
				<p class="MsoNormal"><em><b>
				<span style="font-size:
    10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333;font-style:normal">
				connectionURL<o:p></o:p></span></b></em></p>
				</td>
				<td width="131" valign="top" style="width:98.25pt;border-top:none;border-left:
    none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
    mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
    mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;
    height:15.35pt">
				<p class="MsoNormal"><em>
				<span style="font-size:10.0pt;
    font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333;font-style:normal">
				mq://localhost:7676<o:p></o:p></span></em></p>
				</td>
			</tr>
			<tr style="mso-yfti-irow:2;height:15.35pt">
				<td width="106" valign="top" style="width:79.75pt;border:solid windowtext 1.0pt;
    border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:
    solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:15.35pt">
				<p class="MsoNormal"><em><b>
				<span style="font-size:
    10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333;font-style:normal">
				username<o:p></o:p></span></b></em></p>
				</td>
				<td width="131" valign="top" style="width:98.25pt;border-top:none;border-left:
    none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
    mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
    mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;
    height:15.35pt">
				<p class="MsoNormal"><em>
				<span style="font-size:10.0pt;
    font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333;font-style:normal">
				admin<o:p></o:p></span></em></p>
				</td>
			</tr>
			<tr style="mso-yfti-irow:3;mso-yfti-lastrow:yes;height:16.3pt">
				<td width="106" valign="top" style="width:79.75pt;border:solid windowtext 1.0pt;
    border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:
    solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:16.3pt">
				<p class="MsoNormal"><em><b>
				<span style="font-size:
    10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333;font-style:normal">
				password<o:p></o:p></span></b></em></p>
				</td>
				<td width="131" valign="top" style="width:98.25pt;border-top:none;border-left:
    none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
    mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
    mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;
    height:16.3pt">
				<p class="MsoNormal"><em>
				<span style="font-size:10.0pt;
    font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333;font-style:normal">
				Admin<o:p></o:p></span></em></p>
				<p class="MsoNormal"><em>
				<span style="font-size:10.0pt;
    font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333;font-style:normal"><o:p>
				&nbsp;</o:p></span></em></p>
				</td>
			</tr>
		</table>
		</td>
		<td style="padding:.75pt .75pt .75pt .75pt;height:29.2pt">
		<p class="MsoNormal"><em>
		<span style="font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;
  color:#333333;font-style:normal"><o:p>&nbsp;</o:p></span></em></p>
		</td>
	</tr>
</table>
<p class="MsoNormal"><em>
<span style="font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333;font-style:normal">
Table 1: Setting required to configure <b>casaPort2 </b>(JMS binding component).<o:p></o:p></span></em></p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in">
<br>
</p>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#0000ff"><font face="Arial Narrow, sans-serif"><font size="2"><i>
<b>Configuring application server resources</b></i></font></font></font> </p>
<p>
<em><font size="2"><font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">If you remember, we have used a data source in 
our initial steps, now we need to create that data source in order to be able to 
proceed to the next step which is testing our application. To create application 
server resources open </span>Runtime<span style="FONT-STYLE: normal"> window in 
NetBeans IDE and expand Servers node and look for a Green arrow nearby Sun Java 
System Application Server 9; if green arrow was there, it means that your server 
is started, otherwise start the server by using provided pop-up menu. After starting 
application server right click on it and select </span>View Admin Console<span style="FONT-STYLE: normal">.</span></font></font></font></em>
</p>
<p align="LEFT" class="western" style="MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<em><span style="FONT-STYLE: normal"><font size="2">
<font face="Arial, sans-serif"><font color="#333333">Login with your username and 
password (admin/ adminadmin by default) then from left side navigation tree select 
Resources&gt; JDBC&gt; Connection Pools. Whenever the connection pooling page is opened 
click on the new button and file in information similar to <b>figure 15</b>.</font></font></font></span></em>
</p>
<p align="LEFT" class="western" lang="" style="MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font color="#333333">
<img alt="image-15.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-15.png" width="528" height="256" />




</font>
</p>
<p align="LEFT" class="western" style="MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<em><span style="FONT-STYLE: normal"><font size="2">
<font face="Arial, sans-serif"><font color="#333333">Figure 15: Creating connection 
pool wizard. </font></font></font></span></em></p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em><font size="2">
<font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">Now, click next and click finish buttons. Now you 
should see a table that contains several row, each row identifies a connection pooling 
that is defined in our application server. Click on <b>soa_sample_pool </b>which 
is our newly created connection pooling and select </span>Addition Properties<span style="FONT-STYLE: normal"> 
tab. Here you should see a table with tens of property value rows; remove all properties 
and make sure that you have just left properties like figure 16. (Property names 
and some values are case sensitive)</span></font></font></font></em> </p>
<p class="western" style="MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" lang="" style="MARGIN-BOTTOM: 0in"><font color="#333333">
<img alt="image-16.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-16.png" width="943" height="246" />



</font>
</p>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<br>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333">Figure 16: required properties in connection pool advanced 
tab</font></font></font></span></em> </p>
<p>
<em><font size="2"><font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">We have a connection pooling ready to be used but 
before we can use a connection pooling we need to define a JNDI entry for it. We 
know JNDI entry for connection pooling as data source. To define a data source for<b> 
soa_sample_pool , </b>from left tree navigate to </span>Resources&gt; JDBC&gt; JDBC Resources.
<span style="FONT-STYLE: normal">Click on the new button; make sure that field values 
are similar to <b>figure17</b>.</span></font></font></font></em> </p>
<p align="LEFT" class="western" lang="" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.19in; MARGIN-BOTTOM: 0.19in">
<font color="#333333">
<img alt="image-17.png" src="http://weblogs.java.net/blog/kalali/archive/images/image-17.png" width="401" height="238" />



</font>
</p>
<p>
<em><span style="FONT-STYLE: normal"><font size="2">
<font face="Arial, sans-serif"><font color="#333333">Figure 17: JDBC resource creation.</font></font></font></span></em>
</p>
<p>
<em><span style="FONT-STYLE: normal"><font size="2">
<font face="Arial, sans-serif"><font color="#333333">Click on OK button. Now you 
are ready to proceed to latest step in this article.</font></font></font></span></em>
</p>
<p align="LEFT" style="TEXT-INDENT: 0in; MARGIN-TOP: 0.08in; MARGIN-BOTTOM: 0in; page-break-after: avoid">
<font color="#0000ff"><font face="Arial Narrow, sans-serif"><font size="2"><i>
<b>Testing composite application</b></i></font></font></font> </p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><em>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333">NetBeans provides a good mechanism to test your Composite 
application, indeed you just select which method of which end point you want to 
test and NetBeans will generate SOAP message that you can customize if required 
and then NetBeans send this message to end point and let you see the result.</font></font></font></span></em>
</p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><em>
<span style="FONT-STYLE: normal"><font size="2"><font face="Arial, sans-serif">
<font color="#333333">Before proceeding to next step, deploy your project.</font></font></font></span></em>
</p>
<p class="western" style="TEXT-INDENT: 0in; MARGIN-BOTTOM: 0in"><br>
</p>
<p class="western" style="MARGIN-BOTTOM: 0in"><em><font size="2">
<font face="Arial, sans-serif"><font color="#333333">
<span style="FONT-STYLE: normal">For using NetBeans provided facilities to test 
your composite application in </span>Project<span style="FONT-STYLE: normal"> windows 
expand <b>OrdersCA</b> composite application and right click on </span>Test<span style="FONT-STYLE: normal"> 
node, from pop-up menu