<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5407133615063052532</id><updated>2012-02-16T05:27:45.206-08:00</updated><category term='test proxy telnet'/><title type='text'>fred's integration blog</title><subtitle type='html'>Matter faced during integration project</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-1869597621287481680</id><published>2011-03-30T08:00:00.000-07:00</published><updated>2011-03-30T09:06:58.206-07:00</updated><title type='text'>enable LDAP over SSL (LDAPS) in OC4J</title><content type='html'>To enable LDAP over SSL in OC4J, the certificate use by the LDAP server must be imported in the LDAP client. More specificaly it will be imported into the default keystore used for the JVM. The steps to do that are:&lt;br /&gt;&lt;br /&gt;1.&lt;br /&gt;Upload the certificate (mycert.cer) to your server &lt;br /&gt;&lt;br /&gt;2.&lt;br /&gt;Connect to your server and go to directory:  &lt;br /&gt;PATH_TO_ORACLE_INSTALL/ias/product/asmt_10131/jdk/jre/lib/security&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;3.&lt;br /&gt;Import the certificate: keytool -import -keystore cacerts -alias myAlias -file /home/j_smith/sgsroot.cer&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-CGbosaw5EAk/TZNUfYRbJ6I/AAAAAAAAAEQ/1xGGGg0O6zI/s1600/loaded.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 57px;" src="http://2.bp.blogspot.com/-CGbosaw5EAk/TZNUfYRbJ6I/AAAAAAAAAEQ/1xGGGg0O6zI/s400/loaded.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5589904460565129122" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;4.&lt;br /&gt;By default the password for the keystore is changeit&lt;br /&gt;&lt;br /&gt;5. &lt;br /&gt;Accept the import and this is it, certificate has been added to the keystore&lt;br /&gt;&lt;br /&gt;6.&lt;br /&gt;Then in OC4J you need to set LDAPS instead of LDAP and probably mention the correct port.&lt;br /&gt;At this point do not try to press the "Test LDAP Authorization" button as it will not work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-1869597621287481680?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/1869597621287481680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2011/03/enable-ldap-over-ssl-ldaps-in-oc4j.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/1869597621287481680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/1869597621287481680'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2011/03/enable-ldap-over-ssl-ldaps-in-oc4j.html' title='enable LDAP over SSL (LDAPS) in OC4J'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-CGbosaw5EAk/TZNUfYRbJ6I/AAAAAAAAAEQ/1xGGGg0O6zI/s72-c/loaded.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-2834596069752459104</id><published>2011-02-17T01:17:00.000-08:00</published><updated>2011-02-18T08:44:26.281-08:00</updated><title type='text'>Using AD authentication with OC4J within Oracle Enterprise Manager</title><content type='html'>Here are the steps to authenticate a WAR application using AD.&lt;br /&gt;&lt;br /&gt;1. Setup your file WEB-INF/web.xml in your web application with settings similar to above:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-DZFRf7rdOeA/TVzop8nWYwI/AAAAAAAAADw/-aYHY9TPDvU/s1600/web_xml.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 385px;" src="http://4.bp.blogspot.com/-DZFRf7rdOeA/TVzop8nWYwI/AAAAAAAAADw/-aYHY9TPDvU/s400/web_xml.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5574586246121284354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. As I set the group name in web.xml to be the one on the Active Directory, I don't need to edit/add the file META-INF/orion-application.xml. In case you need, you do it with settings similar to above:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-zUduIGdiD4g/TVzqs-SazbI/AAAAAAAAAD4/6l4ocL858rw/s1600/orion-application_xml.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 210px;" src="http://4.bp.blogspot.com/-zUduIGdiD4g/TVzqs-SazbI/AAAAAAAAAD4/6l4ocL858rw/s400/orion-application_xml.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5574588497133227442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Deploy your application to your Oracle Enterprise Manager&lt;br /&gt;&lt;br /&gt;4. Logon to your Oracle Enterprise Manager, select the applications you want to secure, select administration, select Security Provider, click Change Security Provider and select "Oracle Security Provider for 3rd Party LDAP Server"&lt;br /&gt;Then the setup I used are the following:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-GK3Q1ohnI0A/TVzuRTYpXbI/AAAAAAAAAEA/26Q71J1cYRU/s1600/oem.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 232px;" src="http://1.bp.blogspot.com/-GK3Q1ohnI0A/TVzuRTYpXbI/AAAAAAAAAEA/26Q71J1cYRU/s400/oem.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5574592419806666162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;you can note that we used LDAPS, that is LDAP over SSL. if you use this option too then you need to add the certificate used to secure your LDAP to your JVM keystore.&lt;br /&gt;Then note that you will not be able to test your connection through the "Test LDAP Authorization" button. It will always respond false.&lt;br /&gt;&lt;br /&gt;5.You would then need to restart your application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-2834596069752459104?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/2834596069752459104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2011/02/using-ad-authentication-with-oc4j.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/2834596069752459104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/2834596069752459104'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2011/02/using-ad-authentication-with-oc4j.html' title='Using AD authentication with OC4J within Oracle Enterprise Manager'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-DZFRf7rdOeA/TVzop8nWYwI/AAAAAAAAADw/-aYHY9TPDvU/s72-c/web_xml.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-6942802065974461938</id><published>2010-09-12T07:42:00.000-07:00</published><updated>2010-09-12T07:53:54.716-07:00</updated><title type='text'>Connecting to Ariba with a Java API</title><content type='html'>To connect to Ariba, you use the Ariba Integration Toolkit. It consists of java libraries and batch scripts.&lt;br /&gt;Using the batch script was uneasy for us, as it means we had to schedule 2 jobs: one to get or retrieve the files from Ariba and another job to process the file.&lt;br /&gt;&lt;br /&gt;A much easier solution, was to call the Ariba java library straight away from our java code. To do that we had to dig into the batch file and decompile the java code.&lt;br /&gt;Then to call the Ariba Java API, you simply add Ariba libraries to your classapth and you call the following code:&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:85%;color:#7f0055;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;public&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:85%;color:#7f0055;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;class&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt; CallAriba {&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;  &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:85%;color:#7f0055;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;public&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:85%;color:#7f0055;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;static&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:85%;color:#7f0055;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;void&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt; main(String[] args) {&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;    String[] s = &lt;i&gt;&lt;span style="font-style: italic;"&gt;buildArg&lt;/span&gt;&lt;/i&gt;();&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;    ariba.filetransferclient.Main.&lt;i&gt;&lt;span style="font-style: italic;"&gt;main&lt;/span&gt;&lt;/i&gt;(s);&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;  }&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;  &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:85%;color:#7f0055;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;private&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:85%;color:#7f0055;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;static&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt; String[] buildArg() {&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;    String[] arguments = {&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"get"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"-url"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"&lt;a href="https://s1.ariba.com/Buyer/filedownload?realm=" target="_blank"&gt;https://s1.ariba.com/Buyer/filedownload?realm=&lt;/a&gt;myCompanyRealm"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"-sharedSecret"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"myCompanySharedSecret"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"-downloadDir"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"C:/temp/ariba"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"-timestampFile"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"C:/temp/ariba/time.txt"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"-filePrefix"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"OK2Pay"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"-logFile"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"C:/temp/ariba/logs/log-test.log"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"-proxyHost"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"10.0.225.201"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"-proxyPort"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"8080"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"-unzipDirs"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"false"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"--"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"-event"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#2a00ff;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;"Export Payment Requests"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;};&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;    &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:85%;color:#7f0055;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;return&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt; arguments; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   lang="EN-US" &gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:black;"   &gt;}&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-6942802065974461938?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/6942802065974461938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2010/09/connecting-to-ariba-with-java-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/6942802065974461938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/6942802065974461938'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2010/09/connecting-to-ariba-with-java-api.html' title='Connecting to Ariba with a Java API'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-8545880525214981267</id><published>2010-03-03T09:18:00.000-08:00</published><updated>2010-03-03T09:25:29.195-08:00</updated><title type='text'>Sending SOAP request with JDK library</title><content type='html'>&lt;div align="left" class="java"&gt;&lt;table border="0" cellpadding="3" cellspacing="0" bg style="color:#ffffff;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left"&gt;&lt;code&gt;&lt;span style="color:#ffffff;"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;&lt;br /&gt;private static synchronized &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;String sendSOAPRequest&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;String soapMsg, String webserviceMethod, String soap_Endpoint&lt;/span&gt;&lt;span style="color:#000000;"&gt;) &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;throws &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;Exception &lt;/span&gt;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;    &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;try &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;URL url = &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;URL&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;soap_Endpoint&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#3f7f5f;"&gt;// setup HTTP Connecten to the service&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;HttpURLConnection connection = &lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;HttpURLConnection&lt;/span&gt;&lt;span style="color:#000000;"&gt;) &lt;/span&gt;&lt;span style="color:#000000;"&gt;url.openConnection&lt;/span&gt;&lt;span style="color:#000000;"&gt;()&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;connection.setRequestMethod&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;"POST"&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;connection.setDoOutput&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;true&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;connection.setDoInput&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;true&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span style="color:#3f7f5f;"&gt;// create SOAP Request&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;connection.setUseCaches&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;false&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;connection.setRequestProperty&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;"Content-type"&lt;/span&gt;&lt;span style="color:#000000;"&gt;, &lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;"text/xml; charset=iso-8859-1"&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;connection.setRequestProperty&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;"SOAPAction"&lt;/span&gt;&lt;span style="color:#000000;"&gt;, webserviceMethod&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;System.out.println&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;"SOAP-Endpoint: " &lt;/span&gt;&lt;span style="color:#000000;"&gt;+ url&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;System.out.println&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;"SOAP-Action:   " &lt;/span&gt;&lt;span style="color:#000000;"&gt;+ webserviceMethod&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#3f7f5f;"&gt;// send SOAP-Request&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;[] &lt;/span&gt;&lt;span style="color:#000000;"&gt;bytes = soapMsg.getBytes&lt;/span&gt;&lt;span style="color:#000000;"&gt;()&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;connection.setRequestProperty&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;"Content-length"&lt;/span&gt;&lt;span style="color:#000000;"&gt;, String.valueOf&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;bytes.length&lt;/span&gt;&lt;span style="color:#000000;"&gt;))&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;OutputStream out = connection.getOutputStream&lt;/span&gt;&lt;span style="color:#000000;"&gt;()&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;out.write&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;bytes&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;out.close&lt;/span&gt;&lt;span style="color:#000000;"&gt;()&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span style="color:#3f7f5f;"&gt;// read SOAP-response&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;BufferedReader in;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;try &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;        &lt;/span&gt;&lt;span style="color:#000000;"&gt;in = &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;BufferedReader&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;InputStreamReader&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;connection.getInputStream&lt;/span&gt;&lt;span style="color:#000000;"&gt;()))&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;} &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;catch &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;IOException e&lt;/span&gt;&lt;span style="color:#000000;"&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;        &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;if &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;connection.getResponseCode&lt;/span&gt;&lt;span style="color:#000000;"&gt;() &lt;/span&gt;&lt;span style="color:#000000;"&gt;== &lt;/span&gt;&lt;span style="color:#990000;"&gt;500&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;          &lt;/span&gt;&lt;span style="color:#000000;"&gt;in = &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;BufferedReader&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;InputStreamReader&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;connection.getErrorStream&lt;/span&gt;&lt;span style="color:#000000;"&gt;()))&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;        &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;          &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;throw &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;e;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#3f7f5f;"&gt;// handle the SOAP response&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;StringBuffer in_buffer = &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;StringBuffer&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#990000;"&gt;8192&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;String temp = &lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;""&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;while &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;((&lt;/span&gt;&lt;span style="color:#000000;"&gt;temp = in.readLine&lt;/span&gt;&lt;span style="color:#000000;"&gt;()) &lt;/span&gt;&lt;span style="color:#000000;"&gt;!= &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;        &lt;/span&gt;&lt;span style="color:#000000;"&gt;in_buffer.append&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;temp&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;in.close&lt;/span&gt;&lt;span style="color:#000000;"&gt;()&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;return &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;in_buffer.toString&lt;/span&gt;&lt;span style="color:#000000;"&gt;()&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;    &lt;/span&gt;&lt;span style="color:#000000;"&gt;} &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;catch &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;"&gt;Exception e&lt;/span&gt;&lt;span style="color:#000000;"&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#000000;"&gt;System.out.println&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;"!!! Exception: " &lt;/span&gt;&lt;span style="color:#000000;"&gt;+ e&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;      &lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;b&gt;throw &lt;/b&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;e;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;    &lt;/span&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;    &lt;/span&gt;&lt;span style="color:#3f7f5f;"&gt;// return "";&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;  &lt;/span&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-8545880525214981267?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/8545880525214981267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2010/03/sending-soap-request-with-jdk-library.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/8545880525214981267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/8545880525214981267'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2010/03/sending-soap-request-with-jdk-library.html' title='Sending SOAP request with JDK library'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-4859005325820307874</id><published>2010-02-16T02:33:00.000-08:00</published><updated>2010-02-19T04:53:08.090-08:00</updated><title type='text'>BPEL and Oracle Siebel CRM On Demand</title><content type='html'>When integrating OCOD (aka Oracle Siebel CRM On Demand) using BPEL and Java application,&lt;br /&gt;&lt;div&gt;issues arise for:&lt;/div&gt;&lt;div&gt;1. keeping credentials session open with Oracle CRM On Demand because OCOD accept only 10 concurrent session + it is faster to re-use existing session&lt;/div&gt;&lt;div&gt;2. OCOD refuse 2 request to be made without 50ms between each requests&lt;/div&gt;&lt;div&gt;3. session need to be reset if OCOD server restart&lt;br /&gt;&lt;br /&gt;An option is to add the session id to the end point of the partner link in the BPEL process.&lt;br /&gt;Another option is to use java embedded code in BPEL and login and loggof to OCOD.&lt;br /&gt;&lt;br /&gt;Those 2 options did not really fit with our requirements. Too slow, not scalable, dodgy to maintain, etc...&lt;br /&gt;&lt;br /&gt;Our approach has been to use a proxy  between our BPEL engine and OCOD. &lt;/div&gt;&lt;div&gt;So all partner link to OCOD from our BPEL process use this proxy as the end point for the partner link. Thus all calls from our application to OCOD is going through this proxy.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It consist of a Java web application deployed as a war file (11Kb)  it manages:&lt;br /&gt;- sessions&lt;br /&gt;- authentication (so no password in clear text inside our BPEL process)&lt;br /&gt;- the 50 ms wait that must exist between each request to OCOD&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The code for this proxy is located here:&lt;/div&gt;&lt;div&gt;&lt;a href="http://code.google.com/p/ocod-proxy/source/browse/#svn/trunk/src/com/soa/ocod"&gt;http://code.google.com/p/ocod-proxy/source/browse/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;you can check it out like that:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=";font-family:arial,sans-serif;font-size:13px;"&gt;&lt;div class="bubble_wrapper" style="display: table;"&gt;&lt;div class="pmeta_bubble_bg" style="background-color: rgb(229, 236, 249); margin-bottom: 0.6em;"&gt;&lt;div class="round4" style="border-left: 4px solid rgb(255, 255, 255); border-right: 4px solid rgb(255, 255, 255); margin: 0px; padding: 0px; font-size: 0px; height: 1px;"&gt;&lt;/div&gt;&lt;div class="round2" style="border-left: 2px solid rgb(255, 255, 255); border-right: 2px solid rgb(255, 255, 255); margin: 0px; padding: 0px; font-size: 0px; height: 1px;"&gt;&lt;/div&gt;&lt;div class="round1" style="border-left: 1px solid rgb(255, 255, 255); border-right: 1px solid rgb(255, 255, 255); margin: 0px; padding: 0px; font-size: 0px; height: 1px;"&gt;&lt;/div&gt;&lt;div class="box-inner" style="margin: 0px; padding: 0px 13px;"&gt;&lt;tt style="font-size: 13px;"&gt;# Non-members may check out a read-only working copy anonymously over HTTP.&lt;/tt&gt;&lt;br /&gt;&lt;tt id="checkoutcmd" style="font-size: 13px;"&gt;svn checkout &lt;strong&gt;&lt;em&gt;http&lt;/em&gt;&lt;/strong&gt;://ocod-proxy.googlecode.com/svn/trunk/ ocod-proxy-read-only&lt;/tt&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The idea is to make it public so that anybody can use it and tell if he meets any issues.&lt;br /&gt;Then tell me if you want to modify and enhance it. I would provide an access to the SVN repository.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-4859005325820307874?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/4859005325820307874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2010/02/oracle-siebel-on-demand-session-and.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/4859005325820307874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/4859005325820307874'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2010/02/oracle-siebel-on-demand-session-and.html' title='BPEL and Oracle Siebel CRM On Demand'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-6389437680315771852</id><published>2009-11-25T11:38:00.000-08:00</published><updated>2010-02-18T05:52:08.101-08:00</updated><title type='text'>Using OWSM and BPEL PM behind a proxy</title><content type='html'>We use OWSM and BPEL PM to consumme services outside our network.&lt;br /&gt;Nothing to fancy so far, we had to modify the JVM settings and add the following parameter:&lt;br /&gt;&lt;br /&gt;Dhttp.proxySet=true&lt;br /&gt;Dhttp.proxyHost = proxy_server&lt;br /&gt;Dhttp.proxyPort = listen_port&lt;br /&gt;Dhttp.nonproxyHost = *localhost|*domain.com&lt;br /&gt;&lt;br /&gt;in our case this was:&lt;br /&gt;Dhttp.proxySet=true&lt;br /&gt;Dhttp.proxyHost = www-proxy.outsourcing.com&lt;br /&gt;Dhttp.proxyPort = 80&lt;br /&gt;Dhttp.nonproxyHost = *outsourcing.com&lt;br /&gt;&lt;br /&gt;Do not forget to add your localhost as non proxy.&lt;br /&gt;The JVM settings can be accessed through the OC4 console or by editing the file&lt;br /&gt;&lt;p&gt;&lt;code&gt;&lt;span class="codeinlineitalic"&gt;ORACLE_HOME&lt;/span&gt;&lt;/code&gt;&lt;code&gt;/opmn/conf/opmn.xml&lt;/code&gt;&lt;/p&gt;Then we add to consumme an https service and the add the settings:&lt;br /&gt;Dhttps.proxySet=true&lt;br /&gt; Dhttps.proxyHost = www-proxy.outsourcing.com&lt;br /&gt; Dhttps.proxyPort = 80&lt;br /&gt; Dhttps.nonproxyHost = *outsourcing.com&lt;br /&gt;&lt;br /&gt;The case has to be exactly that and only a restart of the OC4J instance is not enough- You have to restart the JVM.&lt;br /&gt;Also note that this cannot be changed without a restart.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-6389437680315771852?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/6389437680315771852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2009/11/using-owsm-and-bpel-pm-behind-proxy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/6389437680315771852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/6389437680315771852'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2009/11/using-owsm-and-bpel-pm-behind-proxy.html' title='Using OWSM and BPEL PM behind a proxy'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-5191977640391916252</id><published>2009-10-20T08:33:00.001-07:00</published><updated>2009-10-21T06:03:09.653-07:00</updated><title type='text'>Consuming Web Services with Jakarta Commons HttpClient</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Consuming web services with Jakarta Commons HttpClient can be useful to reuse all the API provided by HttpClient.&lt;br /&gt;The example below query a web service that requires HTTP authentication. We could also use that mechanism for NTLM or proxy authentication.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;More generally, for all authentication made in the HTTP layer rather than the SOAP layer, HttpClient is a good candidate.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;To run this code you need the library of HttpClient and HttpCore. I used version 4.0 and 4.0.1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;a href="http://hc.apache.org/downloads.cgi"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://hc.apache.org/downloads.cgi&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;you also need commons codec: I used version 1.4&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;a href="http://commons.apache.org/codec/download_codec.cgi"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://commons.apache.org/codec/download_codec.cgi&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;To consume Web Services protected with NTLM (sic). You can refer to this page: &lt;a href="http://www.luigidragone.com/networking/ntlm.html"&gt;http://www.luigidragone.com/networking/ntlm.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;So here's the code:&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;package &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;org.apache.http.examples.client;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;import &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;org.apache.http.HttpEntity;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;import &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;org.apache.http.HttpResponse;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;import &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;org.apache.http.auth.AuthScope;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;import &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;org.apache.http.auth.UsernamePasswordCredentials;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;import &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;org.apache.http.client.methods.HttpPost;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;import &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;org.apache.http.entity.StringEntity;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;import &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;org.apache.http.impl.client.DefaultHttpClient;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;import &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;org.apache.http.message.BasicHeader;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;import &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;org.apache.http.util.EntityUtils;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#3f5fbf;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3f5fbf;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;* A simple example that uses HttpClient to execute an HTTP request against a&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3f5fbf;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;* target site that requires user authentication.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3f5fbf;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;public class &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ClientAuthentication &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;private static final &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;String XML_DATA = &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"&amp;lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&amp;gt;" &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;+ &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"&amp;lt;soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"&amp;gt; "&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;+ &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"&amp;lt;soap:Body xmlns:ns1=\"http://xmlns.oracle.com/SensorBPEL\"&amp;gt;" &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;+ &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"&amp;lt;ns1:SensorBPELProcessRequest&amp;gt;&amp;lt;ns1:input&amp;gt;toto&amp;lt;/ns1:input&amp;gt;&amp;lt;/ns1:SensorBPELProcessRequest&amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;+ &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"&amp;lt;/soap:Body&amp;gt;&amp;lt;/soap:Envelope&amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;public static &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;void &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;main&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;String&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;[] &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;args&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;) &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;throws &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Exception &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;DefaultHttpClient httpclient = &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;DefaultHttpClient&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;httpclient.getCredentialsProvider&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;.setCredentials&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;AuthScope&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"ch0016188"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#990000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;8888&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;UsernamePasswordCredentials&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"frederic_agneray"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"pass"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;HttpPost httpPost = &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;HttpPost&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"http://ch0016188:8888/gateway/services/SID0003006"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;httpPost.setHeader&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;BasicHeader&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"Content-Type"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"text/xml;charset=UTF-8"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;httpPost.setHeader&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;BasicHeader&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"SOAPAction"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"process"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;StringEntity s = &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;StringEntity&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;XML_DATA, &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"UTF-8"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;httpPost.setEntity&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;s&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;System.out.println&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"executing request" &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;+ httpPost.getRequestLine&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;())&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;HttpResponse response = httpclient.execute&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;httpPost&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;HttpEntity entity = response.getEntity&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;System.out.println&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"----------------------------------------"&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;System.out.println&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;response.getStatusLine&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;())&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;if &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;entity != &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;System.out.println&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2a00ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"Response content length: " &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;+ entity.getContentLength&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;())&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;System.out.println&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;EntityUtils.toString&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;response.getEntity&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;()))&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;if &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;entity != &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f0055;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;entity.consumeContent&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span style="color:#ffffff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3f7f5f;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;// When HttpClient instance is no longer needed,&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3f7f5f;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;// shut down the connection manager to ensure&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3f7f5f;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;// immediate deallocation of all system resources&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;httpclient.getConnectionManager&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;.shutdown&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ffffff;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;  &lt;!-- end Java2Html link --&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-5191977640391916252?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/5191977640391916252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2009/10/consuming-web-services-with-jakarta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/5191977640391916252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/5191977640391916252'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2009/10/consuming-web-services-with-jakarta.html' title='Consuming Web Services with Jakarta Commons HttpClient'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-6092205997014397420</id><published>2009-09-02T07:58:00.001-07:00</published><updated>2009-09-23T00:39:45.798-07:00</updated><title type='text'>Using OWSM on multi-domain Active Directory</title><content type='html'>Lately we had to use Oracle Web Service Manager to Authenticate and Authorize web service user against our Active Directory.&lt;br /&gt;That is pretty simple if your users are in a single domain, however our directory is separated in 4 domains: EAME, APAC, AMR and B2B domains.&lt;br /&gt;&lt;br /&gt;So we tried to figure out a way to authenticate against all those domains.&lt;br /&gt;1. The AD authentication step of OWSM does not allow multiple domain search&lt;br /&gt;2. The LDAP authentication can be used to authenticate against a AD. And the LDAP query can search against multiple directory.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tebyDeNhwDs/Sp6LtnsnA-I/AAAAAAAAACA/FgyQtSljNfI/s1600-h/LdapA12n.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 247px;" src="http://2.bp.blogspot.com/_tebyDeNhwDs/Sp6LtnsnA-I/AAAAAAAAACA/FgyQtSljNfI/s400/LdapA12n.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5376888620993414114" /&gt;&lt;/a&gt;&lt;br /&gt;3. In the same way, AD authorization cannot be used against multiple domain&lt;br /&gt;4. Then LDAP authorization cannot be used because AD directory use the attribute "member" instead of "uniqueMember" for LDAP directory.&lt;br /&gt;&lt;br /&gt;So to fix this issue we had to build a custome step within OWSM. We decompile LDAPAccessControlStep and built ILayerLdapAccessControlStep. It is the same piece fo code but "uniqueMember" is replaced by "member".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-6092205997014397420?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/6092205997014397420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2009/09/using-owsm-on-multi-domain-active.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/6092205997014397420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/6092205997014397420'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2009/09/using-owsm-on-multi-domain-active.html' title='Using OWSM on multi-domain Active Directory'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tebyDeNhwDs/Sp6LtnsnA-I/AAAAAAAAACA/FgyQtSljNfI/s72-c/LdapA12n.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-5425872174773739261</id><published>2009-09-02T01:36:00.000-07:00</published><updated>2009-09-23T00:38:17.113-07:00</updated><title type='text'>ETL Process Through Email Attachment</title><content type='html'>Last June, one of my post was &lt;a href="http://another-soa-blog.blogspot.com/2009/05/bpel-process-that-saves-e-mail.html"&gt;"A BPEL process that saves e-mail attachment"&lt;/a&gt;.&lt;br /&gt;The aim was to try to insert data within the ERP via an e-mail attachment.&lt;br /&gt;For example, to load the "daily mineral figures" of South-Africa, the South-Africa manager was sending a mail to etl.load@mycompany.com with an attached file (an xml file). This attachment would be processed and its containing data inserted into the ERP.&lt;br /&gt;Security was insured by a x.509 certificate signature.&lt;br /&gt;&lt;br /&gt;This process is very convenient as sending a mail is an easy process and can be done with a limited access to the web.&lt;br /&gt;&lt;br /&gt;We tried to enable this process with "Oracle BPEL Process Manager", but the following issues arise:&lt;br /&gt;1. Nearly impossible to authenticate the certificate signature&lt;br /&gt;2. Difficult to retrieve the attachment with the correct encoding&lt;br /&gt;3. Difficult to retrieve more than one file&lt;br /&gt;4. Impossible to move mail in other folder after processing&lt;br /&gt;5. To deal with all the operations, lots of Java embedded code had to be written.&lt;br /&gt;6. Mail with attachment bigger than 1MB could not be processed&lt;br /&gt;This is not exhaustive, but the feature for BPEL PM that enable to start a process by receiving a mail, is not meant to deal with complex mail content.&lt;br /&gt;&lt;br /&gt;So we decided to change our option and use the Java Mail API.&lt;br /&gt;We used Quartz to schedule our process and the process was written in Java.&lt;br /&gt;The operations are:&lt;br /&gt;1. Call the IMAP server every 5 minutes to check mail box for incoming mail&lt;br /&gt;2. Retrieve the attachments and copy them to the correct location&lt;br /&gt;3. Send e-mail if an error occurred or if the attachment was correctly copied&lt;br /&gt;4. Move the mail from "Inbox" to "Processed", "Error" or "Discard" folder&lt;br /&gt;&lt;br /&gt;The process is hosted within our J2EE server and is a reliable and robust solution.&lt;br /&gt;&lt;br /&gt;Post a message if you want the source code of this process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-5425872174773739261?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/5425872174773739261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2009/09/transfer-data-through-e-mail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/5425872174773739261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/5425872174773739261'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2009/09/transfer-data-through-e-mail.html' title='ETL Process Through Email Attachment'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-1338761077889289841</id><published>2009-07-07T08:57:00.000-07:00</published><updated>2009-07-07T09:18:00.837-07:00</updated><title type='text'></title><content type='html'>Web Services standard security implementation overview&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--[if !mso]&gt; &lt;style&gt; v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} &lt;/style&gt; &lt;![endif]--&gt;&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="country-region"&gt;&lt;/o:smarttagtype&gt;&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"&gt;&lt;/o:smarttagtype&gt;&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"&gt;&lt;/o:smarttagtype&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if !mso]&gt;&lt;object classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id="ieooui"&gt;&lt;/object&gt; &lt;style&gt; st1\:*{behavior:url(#ieooui) } &lt;/style&gt; &lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:Wingdings;  panose-1:5 0 0 0 0 0 0 0 0 0;  mso-font-charset:2;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face  {font-family:"Book Antiqua";  panose-1:2 4 6 2 5 3 5 3 3 4;  mso-font-charset:0;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:647 0 0 0 159 0;} @font-face  {font-family:Times;  panose-1:2 2 6 3 5 4 5 2 3 4;  mso-font-charset:0;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:536902279 -2147483648 8 0 511 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;} h1  {mso-style-next:"Body Text";  margin-top:0cm;  margin-right:36.0pt;  margin-bottom:48.0pt;  margin-left:0cm;  text-indent:0cm;  mso-pagination:widow-orphan lines-together;  page-break-after:avoid;  mso-outline-level:1;  mso-list:l3 level1 lfo1;  tab-stops:126.0pt;  font-size:30.0pt;  mso-bidi-font-size:10.0pt;  font-family:"Times New Roman";  mso-font-kerning:0pt;  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  font-weight:normal;} h2  {mso-style-name:"Heading 2\,HD2";  mso-style-update:auto;  mso-style-parent:"Body Text";  mso-style-next:Normal;  margin-top:6.0pt;  margin-right:0cm;  margin-bottom:6.0pt;  margin-left:0cm;  page-break-before:always;  mso-pagination:widow-orphan lines-together;  page-break-after:avoid;  mso-outline-level:2;  border:none;  mso-border-top-alt:solid windowtext 6.0pt;  padding:0cm;  mso-padding-alt:4.0pt 0cm 0cm 0cm;  font-size:14.0pt;  mso-bidi-font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  mso-bidi-font-weight:normal;} h3  {mso-style-update:auto;  mso-style-parent:"Body Text";  mso-style-next:Normal;  margin-top:6.0pt;  margin-right:0cm;  margin-bottom:6.0pt;  margin-left:0cm;  text-indent:0cm;  mso-pagination:widow-orphan lines-together;  page-break-after:avoid;  mso-outline-level:3;  mso-list:l3 level3 lfo1;  font-size:12.0pt;  mso-bidi-font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  mso-bidi-font-weight:normal;} h4  {mso-style-parent:"Body Text";  mso-style-next:"Body Text";  margin-top:12.0pt;  margin-right:0cm;  margin-bottom:0cm;  margin-left:0cm;  margin-bottom:.0001pt;  text-indent:0cm;  mso-pagination:widow-orphan lines-together;  page-break-after:avoid;  mso-outline-level:4;  mso-list:l3 level4 lfo1;  tab-stops:center 324.0pt right 522.0pt;  border:none;  mso-border-bottom-alt:solid windowtext .75pt;  padding:0cm;  mso-padding-alt:0cm 0cm 1.0pt 0cm;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  mso-bidi-font-weight:normal;} h5  {mso-style-parent:"Body Text";  mso-style-next:"Body Text";  margin-top:6.0pt;  margin-right:0cm;  margin-bottom:6.0pt;  margin-left:0cm;  text-indent:0cm;  mso-pagination:widow-orphan lines-together;  page-break-after:avoid;  mso-outline-level:5;  mso-list:l3 level5 lfo1;  font-size:12.0pt;  mso-bidi-font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  mso-bidi-font-weight:normal;} h6  {mso-style-next:"Normal Indent";  margin:0cm;  margin-bottom:.0001pt;  text-indent:0cm;  mso-pagination:widow-orphan;  mso-outline-level:6;  mso-list:l3 level6 lfo1;  font-size:10.0pt;  font-family:Times;  mso-bidi-font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  font-weight:normal;  text-decoration:underline;  text-underline:single;} p.MsoHeading7, li.MsoHeading7, div.MsoHeading7  {mso-style-next:"Normal Indent";  margin:0cm;  margin-bottom:.0001pt;  text-indent:0cm;  mso-pagination:widow-orphan;  mso-outline-level:7;  mso-list:l3 level7 lfo1;  font-size:10.0pt;  font-family:Times;  mso-fareast-font-family:"Times New Roman";  mso-bidi-font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  font-style:italic;  mso-bidi-font-style:normal;} p.MsoHeading8, li.MsoHeading8, div.MsoHeading8  {mso-style-next:"Normal Indent";  margin:0cm;  margin-bottom:.0001pt;  text-indent:0cm;  mso-pagination:widow-orphan;  mso-outline-level:8;  mso-list:l3 level8 lfo1;  font-size:10.0pt;  font-family:Times;  mso-fareast-font-family:"Times New Roman";  mso-bidi-font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  font-style:italic;  mso-bidi-font-style:normal;} p.MsoHeading9, li.MsoHeading9, div.MsoHeading9  {mso-style-next:"Normal Indent";  margin:0cm;  margin-bottom:.0001pt;  text-indent:0cm;  mso-pagination:widow-orphan;  mso-outline-level:9;  mso-list:l3 level9 lfo1;  font-size:10.0pt;  font-family:Times;  mso-fareast-font-family:"Times New Roman";  mso-bidi-font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  font-style:italic;  mso-bidi-font-style:normal;} p.MsoNormalIndent, li.MsoNormalIndent, div.MsoNormalIndent  {margin-top:0cm;  margin-right:0cm;  margin-bottom:0cm;  margin-left:36.0pt;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;} p.MsoFooter, li.MsoFooter, div.MsoFooter  {margin:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  tab-stops:right 396.0pt;  font-size:8.0pt;  mso-bidi-font-size:10.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;} p.MsoCaption, li.MsoCaption, div.MsoCaption  {mso-style-next:Normal;  margin-top:6.0pt;  margin-right:0cm;  margin-bottom:6.0pt;  margin-left:0cm;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  font-weight:bold;} span.MsoPageNumber  {font-family:"Book Antiqua";  mso-ascii-font-family:"Book Antiqua";  mso-hansi-font-family:"Book Antiqua";} p.MsoBodyText, li.MsoBodyText, div.MsoBodyText  {margin-top:0cm;  margin-right:0cm;  margin-bottom:6.0pt;  margin-left:0cm;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;} p.StyleHeading2, li.StyleHeading2, div.StyleHeading2  {mso-style-name:"Style Heading 2\,HD2 + After\:  0 pt";  mso-style-parent:"Heading 2\,HD2";  margin-top:6.0pt;  margin-right:0cm;  margin-bottom:0cm;  margin-left:0cm;  margin-bottom:.0001pt;  text-indent:0cm;  page-break-before:always;  mso-pagination:widow-orphan lines-together;  page-break-after:avoid;  mso-outline-level:2;  mso-list:l3 level2 lfo1;  border:none;  mso-border-top-alt:solid windowtext 6.0pt;  padding:0cm;  mso-padding-alt:4.0pt 0cm 0cm 0cm;  font-size:14.0pt;  mso-bidi-font-size:10.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";  mso-ansi-language:EN-US;  mso-fareast-language:EN-US;  font-weight:bold;} @page Section1  {size:21.0cm 842.0pt;  margin:72.1pt 70.9pt 64.9pt 38.85pt;  mso-header-margin:21.55pt;  mso-footer-margin:21.55pt;  mso-gutter-margin:17.85pt;  mso-paper-source:0;} div.Section1  {page:Section1;}  /* List Definitions */  @list l0  {mso-list-id:59595686;  mso-list-type:hybrid;  mso-list-template-ids:-1749397230 67895301 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;} @list l0:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Wingdings;} @list l0:level2  {mso-level-number-format:bullet;  mso-level-text:o;  mso-level-tab-stop:72.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:"Courier New";} @list l1  {mso-list-id:422457401;  mso-list-type:hybrid;  mso-list-template-ids:1393169530 67895301 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;} @list l1:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Wingdings;} @list l2  {mso-list-id:484670087;  mso-list-type:hybrid;  mso-list-template-ids:-1018903406 67895301 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;} @list l2:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Wingdings;} @list l3  {mso-list-id:748770151;  mso-list-template-ids:-749960606;} @list l3:level1  {mso-level-style-link:"Heading 1";  mso-level-suffix:space;  mso-level-text:"Chapter %1";  mso-level-tab-stop:none;  mso-level-number-position:left;  margin-left:0cm;  text-indent:0cm;} @list l3:level2  {mso-level-number-format:none;  mso-level-style-link:"Style Heading 2";  mso-level-suffix:none;  mso-level-text:"";  mso-level-tab-stop:none;  mso-level-number-position:left;  margin-left:0cm;  text-indent:0cm;} @list l3:level3  {mso-level-number-format:none;  mso-level-style-link:"Heading 3";  mso-level-suffix:none;  mso-level-text:"";  mso-level-tab-stop:none;  mso-level-number-position:left;  margin-left:0cm;  text-indent:0cm;} @list l3:level4  {mso-level-number-format:none;  mso-level-style-link:"Heading 4";  mso-level-suffix:none;  mso-level-text:"";  mso-level-tab-stop:none;  mso-level-number-position:left;  margin-left:0cm;  text-indent:0cm;} @list l3:level5  {mso-level-number-format:none;  mso-level-style-link:"Heading 5";  mso-level-suffix:none;  mso-level-text:"";  mso-level-tab-stop:none;  mso-level-number-position:left;  margin-left:0cm;  text-indent:0cm;} @list l3:level6  {mso-level-number-format:none;  mso-level-style-link:"Heading 6";  mso-level-suffix:none;  mso-level-text:"";  mso-level-tab-stop:none;  mso-level-number-position:left;  margin-left:0cm;  text-indent:0cm;} @list l3:level7  {mso-level-number-format:none;  mso-level-style-link:"Heading 7";  mso-level-suffix:none;  mso-level-text:"";  mso-level-tab-stop:none;  mso-level-number-position:left;  margin-left:0cm;  text-indent:0cm;} @list l3:level8  {mso-level-number-format:none;  mso-level-style-link:"Heading 8";  mso-level-suffix:none;  mso-level-text:"";  mso-level-tab-stop:none;  mso-level-number-position:left;  margin-left:0cm;  text-indent:0cm;} @list l3:level9  {mso-level-number-format:none;  mso-level-style-link:"Heading 9";  mso-level-suffix:none;  mso-level-text:"";  mso-level-tab-stop:none;  mso-level-number-position:left;  margin-left:0cm;  text-indent:0cm;} @list l4  {mso-list-id:956452164;  mso-list-type:hybrid;  mso-list-template-ids:-652342812 67895301 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;} @list l4:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Wingdings;} @list l5  {mso-list-id:1122578944;  mso-list-type:hybrid;  mso-list-template-ids:-617444888 67895301 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;} @list l5:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Wingdings;} @list l5:level2  {mso-level-number-format:bullet;  mso-level-text:o;  mso-level-tab-stop:72.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:"Courier New";} @list l6  {mso-list-id:1934582445;  mso-list-type:hybrid;  mso-list-template-ids:711234226 67895311 67895301 67895323 67895301 67895321 67895323 67895311 67895321 67895323;} @list l6:level1  {mso-level-tab-stop:38.7pt;  mso-level-number-position:left;  margin-left:38.7pt;  text-indent:-18.0pt;} @list l6:level2  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:74.7pt;  mso-level-number-position:left;  margin-left:74.7pt;  text-indent:-18.0pt;  font-family:Wingdings;} @list l6:level3  {mso-level-number-format:roman-lower;  mso-level-tab-stop:110.7pt;  mso-level-number-position:right;  margin-left:110.7pt;  text-indent:-9.0pt;} @list l6:level4  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:146.7pt;  mso-level-number-position:left;  margin-left:146.7pt;  text-indent:-18.0pt;  font-family:Wingdings;} @list l7  {mso-list-id:2137983651;  mso-list-type:hybrid;  mso-list-template-ids:1659431522 67895301 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;} @list l7:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Wingdings;} @list l7:level2  {mso-level-number-format:bullet;  mso-level-text:o;  mso-level-tab-stop:72.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:"Courier New";} ol  {margin-bottom:0cm;} ul  {margin-bottom:0cm;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;div style="border-style: solid none none; padding: 4pt 0cm 0cm;"&gt;  &lt;h2&gt;&lt;a name="_Toc234748967"&gt;&lt;span lang="EN-US"&gt;Web Services standard security implementation overview&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Before Web Services can be used, security issues need to be addressed and security requirements such as authentication, access control, non-repudiation, data integrity, and privacy must be tackled by the underlying security technology.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Authentication: ensure the business partner is who he pretends to be&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Access Control: check the partner is allowed to call this action on those data&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Non-repudiation: the partner cannot withdraw his position after the order has been sent&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Data Integrity: data received cannot have been modified by a third party &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Privacy: no unauthorized person can see secure data&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Auditing: any action on any data can be trace back&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border-style: none none solid; padding: 0cm 0cm 1pt;"&gt;  &lt;h3 style="border: medium none ; padding: 0cm; margin-left: 0cm; text-indent: 0cm;"&gt;&lt;a name="_Toc234748968"&gt;&lt;span dir="ltr"&gt;&lt;span lang="EN-US"&gt;Authentication&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;As Web Services are meant to be consumed by systems and not directly by users, authentication can be performed by either: providing the credentials of the user currently logged in the application, or to connect as a machine without providing user credential.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 38.7pt; text-indent: -18pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt;1.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span lang="EN-US"&gt;If providing the logged in user credentials: the system authenticates the user and provides the user credentials to the back-end Web Service. All calls to the Web Service are then made in the name of the user and access is allowed or denied depending on the logged in user rights.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 20.7pt;"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 20.7pt; text-align: center; page-break-after: avoid;" align="center"&gt;&lt;span lang="EN-US"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:335.25pt;"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\FREDER~1\LOCALS~1\Temp\msohtml1\23\clip_image001.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tebyDeNhwDs/SlNxQlZwYKI/AAAAAAAAABQ/FdJL77ZgeOc/s1600-h/image001.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 249px;" src="http://4.bp.blogspot.com/_tebyDeNhwDs/SlNxQlZwYKI/AAAAAAAAABQ/FdJL77ZgeOc/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5355748911605637282" border="0" /&gt;&lt;/a&gt; &lt;p class="MsoCaption" style="text-align: center;" align="center"&gt;&lt;span lang="EN-US"&gt;Figure &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span lang="EN-US"&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;SEQ Figure \* ARABIC &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt;1&lt;/span&gt;&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span lang="EN-US"&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span lang="EN-US"&gt; - Delegating authentication to the Web Service provider&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 38.7pt; text-indent: -18pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt;2.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span lang="EN-US"&gt;If connecting as a machine: the front-end system is responsible to authenticate the user. It calls the underlying Web Service without providing the logged-in user credential.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 38.7pt;"&gt;&lt;span lang="EN-US"&gt;Thus security is insured by authenticating the calling machine. The machine can authenticate itself with a certificate or by providing a generic username and password. Although using a certificate is more secure, a username and password is commonly used, in the same way as an application accesses a database with encrypted security credentials.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 38.7pt;"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center; page-break-after: avoid;" align="center"&gt;&lt;span lang="EN-US"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_i1026" type="#_x0000_t75" style="'width:316.5pt;height:208.5pt'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\FREDER~1\LOCALS~1\Temp\msohtml1\23\clip_image003.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/FREDER%7E1/LOCALS%7E1/Temp/msohtml1/23/clip_image004.jpg" shapes="_x0000_i1026" width="422" height="278" /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/p&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tebyDeNhwDs/SlNyPcqwv6I/AAAAAAAAABg/axh68GB1uCk/s1600-h/image003.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 264px;" src="http://3.bp.blogspot.com/_tebyDeNhwDs/SlNyPcqwv6I/AAAAAAAAABg/axh68GB1uCk/s400/image003.png" alt="" id="BLOGGER_PHOTO_ID_5355749991592804258" border="0" /&gt;&lt;/a&gt; &lt;p class="MsoCaption" style="text-align: center;" align="center"&gt;&lt;span lang="EN-US"&gt;Figure &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span lang="EN-US"&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;SEQ Figure \* ARABIC &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt;2&lt;/span&gt;&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span lang="EN-US"&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span lang="EN-US"&gt; - Authenticate to the Web Service provider as a machine&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;From the point of view of the Web Service, whether the authentication credentials come from an end-user or a machine does not make much difference. In the first case, the machine provides the user authentication credential provided to it, in the other case the machine provides its own authentication credential. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;From there, authentication strategies are:&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="square"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Provide the username and password of the user through HTTP      header. This is the same process as when a user authenticate to a web site&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Use WS-Security standard feature. WS-Security is part of the      WS-* specifications proposed by OASIS which is the organization that defines      Web Service standards. It describes a set of SOAP header extensions and      allow authentication with:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul style="margin-top: 0cm;" type="square"&gt;&lt;ul style="margin-top: 0cm;" type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Kerberos tickets: a standard and widely use authentication       protocol published by the MIT&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Username and/or password Token Profile: similar to sending       username and password with http header, but this time using WS-Security       header, thus allowing an end-point to end-point authentication as opposed       to point to point authentication as for HTTP header.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;SAML Token Profile: a specification that tries to solve Single       Sign-On issues for Web Services&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;PKI certificate Token Profile: The most common authentication       practice for Web Services. It is also the one use for credit card       transaction over the internet. It consist of using a Public Key       Infrastructure certificates which works as described in the diagram above:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center; page-break-after: avoid;" align="center"&gt;&lt;span lang="EN-US"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_i1027" type="#_x0000_t75" style="'width:422.25pt;height:363pt'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\FREDER~1\LOCALS~1\Temp\msohtml1\23\clip_image005.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/FREDER%7E1/LOCALS%7E1/Temp/msohtml1/23/clip_image006.jpg" shapes="_x0000_i1027" width="563" height="484" /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tebyDeNhwDs/SlNyTZvmgEI/AAAAAAAAABo/nROxF19_tKk/s1600-h/image005.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 344px;" src="http://1.bp.blogspot.com/_tebyDeNhwDs/SlNyTZvmgEI/AAAAAAAAABo/nROxF19_tKk/s400/image005.png" alt="" id="BLOGGER_PHOTO_ID_5355750059527274562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoCaption" style="text-align: center;" align="center"&gt;&lt;a name="_Ref234403595"&gt;&lt;span lang="EN-US"&gt;Figure &lt;/span&gt;&lt;/a&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-bookmark:_Ref234403595'"&gt;&lt;/span&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-bookmark:_Ref234403595'"&gt;&lt;span lang="EN-US"&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;SEQ Figure \* ARABIC &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style=""&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-bookmark:_Ref234403595'"&gt;&lt;/span&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style=""&gt;&lt;span lang="EN-US"&gt; - PKI certificate usage&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 14.2pt; text-indent: -14.2pt;"&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;User repository:&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Then, the authentication itself must be performed against a user repository. The most standard user repositories are LDAP like directory tree such as Microsoft Active Directory. It allows administrators to simply manage a list of users and is a standard for any tool that needs to perform authentication.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 14.2pt; text-indent: -14.2pt;"&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;div style="border-style: none none solid; padding: 0cm 0cm 1pt;"&gt;  &lt;h3 style="border: medium none ; padding: 0cm; margin-left: 0cm; text-indent: 0cm;"&gt;&lt;a name="_Toc234748969"&gt;&lt;/a&gt;&lt;a name="_Ref234664188"&gt;&lt;span style=""&gt;&lt;span dir="ltr"&gt;&lt;span lang="EN-US"&gt;Access control&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Access control is to use to define the rights of the users concerning all actions and data of the application. Typically it defines:&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="square"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Roles: like “Administrator”, “Clerk”, etc. &lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Actions: like “Create New Employee”, “Read Employee”, “Change      Employee Salary”&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Roles to Actions mapping: like&lt;/span&gt;&lt;/li&gt;&lt;ul style="margin-top: 0cm;" type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;“Administrators” can “Create New Employee” and “Change       Employee Salary”&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;“Clerk” can “Read Employee”&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;However, access control can be defined according to action or can be defined according to action and type of data. For example, the user “&lt;st1:place st="on"&gt;&lt;st1:country-region st="on"&gt;China&lt;/st1:country-region&gt;&lt;/st1:place&gt; Manager” can do the action “Modify Employee” only on the data “China Employee”. On the data “India Employee”, he can only do the action “Read Employee”.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a name="OLE_LINK1"&gt;&lt;span lang="EN-US"&gt;The implementation of the &lt;/span&gt;&lt;/a&gt;&lt;span lang="EN-US"&gt;first type of Access Control List, only according to action, is done by creating User Groups in the user repository: Users are positioned into User Group and all actions are associated to a User Group. So if the user does not belong to the associated User Group it cannot perform the action independently of the data manipulated.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The implementation of the second type of Access Control List can either be done by creating as many actions as there are types of data. It means that an action “Modify Geneva Employee” will be created and this action can only manipulate “&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Geneva&lt;/st1:city&gt;&lt;/st1:place&gt; employee”. This present the drawback of having to create a full set of action each time a new “region” is created.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Or the data can be flagged to belong to one “region” and all Users have a role according to a region. He could then only do a certain type of action on the data from a region.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;This type of Access Control List implies that the data can be associated to a region, and that the user can also be positioned against this region. However Users and Access Control List usually resides in the user repository and data resides in the database, thus the concept of region need to exist and be consistent in both the database and the user repository.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 14.2pt; text-indent: -14.2pt;"&gt;&lt;span lang="EN-US"&gt;Then the options are:&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="square"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Regions need to be maintained between user repository and      database. This present the risk of desynchronized data and maintenance needs      to be setup either automatically or manually.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Database is used as User Repository. This implies that the user      list is kept in a proprietary format, thus all tools that are used with      LDAP protocol in mind cannot be used or need adapter.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;A tool is used to synchronize or consolidate the data between      the database and the repository. It can be done either through      synchronization or through virtualization&lt;/span&gt;&lt;/li&gt;&lt;ul style="margin-top: 0cm;" type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Synchronization means that processes will regularly fetch the       data from multiple user repositories (LDAP directory, Active Directory,       Proprietary Database or any other format). Those processes will bring       back the data to a single user repository, often an LDAP server. Thus       only one repository contains all the data concerning the Users, their       Access Control List and the “region” they belong to.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Virtualization means that a virtual directory is set in place       and when called, it will actually launch processes to go and fetch the       information from multiple repositories. It will then present the       information to the requester as if it came from a single repository. With       this solution, no information is duplicated unlike with solution above.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Access control standardization with XACML:&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;XACML stands for Extensible Access Control Markup Language, and its primary goal is to standardize access control language in XML syntax. A standard access control language results in lower costs because there is no need to develop an application-specific access control language or write the access control policy in multiple languages. Plus, system administrators need to understand only one language. With XACML, it is also possible to compose access control policies from the ones created by different parties. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 14.2pt; text-indent: -14.2pt;"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border-style: none none solid; padding: 0cm 0cm 1pt;"&gt;  &lt;h3 style="border: medium none ; padding: 0cm; margin-left: 0cm; text-indent: 0cm;"&gt;&lt;a name="_Toc234748970"&gt;&lt;span dir="ltr"&gt;&lt;span style="" lang="EN-US"&gt;Non-repudiation&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Non-repudiation is the concept of ensuring that a party in a dispute cannot repudiate, or refute the validity of a statement or contract. So in case of dispute, a Trusted Third Party is necessary to guarantee that the refuting party did actually commit to the agreement. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;On the digital side, the Trusted Third Party is often a Certificate Authority such as VeriSign or SwissSign. They provide Public Key Infrastructure Certificate to both party and, in case of dispute, can be requested to validate the signatures on the signed documents.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Certificate Authority also create, distribute and revoke certificate so that both party involve in a transaction are certain that the Public Key Infrastructure Certificates used for the transaction are valid before the transaction starts.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center; page-break-after: avoid;" align="center"&gt;&lt;span lang="EN-US"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_i1028" type="#_x0000_t75" style="'width:376.5pt;height:345.75pt'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\FREDER~1\LOCALS~1\Temp\msohtml1\23\clip_image007.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/FREDER%7E1/LOCALS%7E1/Temp/msohtml1/23/clip_image008.jpg" shapes="_x0000_i1028" width="502" height="461" /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tebyDeNhwDs/SlNyXf9mi4I/AAAAAAAAABw/IGX_fYaovwQ/s1600-h/image007.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 367px;" src="http://1.bp.blogspot.com/_tebyDeNhwDs/SlNyXf9mi4I/AAAAAAAAABw/IGX_fYaovwQ/s400/image007.png" alt="" id="BLOGGER_PHOTO_ID_5355750129916087170" border="0" /&gt;&lt;/a&gt;  &lt;p class="MsoCaption" style="text-align: center;" align="center"&gt;&lt;span lang="EN-US"&gt;Figure &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span lang="EN-US"&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;SEQ Figure \* ARABIC &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt;4&lt;/span&gt;&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span lang="EN-US"&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span lang="EN-US"&gt; - Non-repudiation with PKI certificate&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;An alternative to the Public Key Infrastructure model is a Web of Trust which is a concept used by Open Source cryptography model like PGP, GnuPG and other OpenPGP compatible system. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;In this model, digital signature and business agreement are exchanged in a face to face meeting before any transaction starts.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The Web of Trust presents the advantage to be unaffected by third party company failure&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border-style: none none solid; padding: 0cm 0cm 1pt;"&gt;  &lt;h3 style="border: medium none ; padding: 0cm; margin-left: 0cm; text-indent: 0cm;"&gt;&lt;a name="_Toc234748971"&gt;&lt;span dir="ltr"&gt;&lt;span lang="EN-US"&gt;Data Integrity&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Data integrity, in terms of network security, is the insurance that no one can have modified the message between the sending and the reception. This is typically to prevent a “man in the middle” (MITM) attack where someone relays messages between communicators, making them believe that they are talking directly to each other over a private connection when in fact the entire conversation is controlled by the attacker.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Measures taken to ensure integrity and prevent MITM attack include, controlling the physical environment of networked terminals and servers, restricting access to data, and maintaining rigorous &lt;a href="http://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci211621,00.html"&gt;&lt;span style="text-decoration: none; color: rgb(0, 0, 0);"&gt;authentication&lt;/span&gt;&lt;/a&gt; and encryption practices.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Usage of Public Key Infrastructure certificates are commonly used to insure Data Integrity. It is quite all the time used in conjunction with encryption even though data integrity does not need Encryption as the aim is only to insure that the data has not been modified.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The typical usage to PKI certificate for Data Integrity and Data Privacy is explained on the diagram below: &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center; page-break-after: avoid;" align="center"&gt;&lt;span lang="EN-US"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_i1029" type="#_x0000_t75" style="'width:460.5pt;height:411pt'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\FREDER~1\LOCALS~1\Temp\msohtml1\23\clip_image009.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/FREDER%7E1/LOCALS%7E1/Temp/msohtml1/23/clip_image010.jpg" shapes="_x0000_i1029" border="0" width="614" height="548" /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tebyDeNhwDs/SlNyaie5xKI/AAAAAAAAAB4/G0h-DnZuqrY/s1600-h/image009.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 357px;" src="http://1.bp.blogspot.com/_tebyDeNhwDs/SlNyaie5xKI/AAAAAAAAAB4/G0h-DnZuqrY/s400/image009.png" alt="" id="BLOGGER_PHOTO_ID_5355750182132237474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoCaption" style="text-align: center;" align="center"&gt;&lt;a name="_Ref234639581"&gt;&lt;span lang="EN-US"&gt;Figure &lt;/span&gt;&lt;/a&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-bookmark:_Ref234639581'"&gt;&lt;/span&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-bookmark:_Ref234639581'"&gt;&lt;span lang="EN-US"&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;SEQ Figure \* ARABIC &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style=""&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-bookmark:_Ref234639581'"&gt;&lt;/span&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style=""&gt;&lt;span lang="EN-US"&gt; - Data integrity and data privacy using PKI certificates&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The key points from a Data Integrity point-of-view are step 1 - Bob sign the message, and step 8 - &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Alice&lt;/st1:city&gt;&lt;/st1:place&gt; verifies the hash of Bob’s signature. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;A hash is like a digital "fingerprint" that uniquely identity a document. By recomposing the hash of the document, &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Alice&lt;/st1:city&gt;&lt;/st1:place&gt; cans checks: &lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="square"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;It is Bob that has signed the message with his private key (or      someone that has stolen Bob private key, which is normally impossible)&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;The hash reproduce by &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Alice&lt;/st1:place&gt;&lt;/st1:city&gt;      is similar to the hash signed by Bob. If someone has changed the document,      &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Alice&lt;/st1:place&gt;&lt;/st1:city&gt;      could detect the modification by making a hash out of the document and      check the difference.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;In a way, Data integrity can also be insured through encryption. By making sure that nobody else could read the message, encryption insure that nobody can modify it.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;div style="border-style: none none solid; padding: 0cm 0cm 1pt;"&gt;  &lt;h3 style="border: medium none ; padding: 0cm; margin-left: 0cm; text-indent: 0cm;"&gt;&lt;a name="_Toc234748972"&gt;&lt;span dir="ltr"&gt;&lt;span lang="EN-US"&gt;Privacy&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Privacy is insured through a secure network (a VPN or an intranet) or through encryption. The 2 main encryption technologies for Web Services are:&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="square"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;SSL/TLS (Secure Socket Layer/Transport Level Security) for      point-to-point security. Similar to HTTPS, SSL is commonly use for credit      card transaction over the internet and present a level of security hat is      sufficient for most transaction. However, Web service application      topologies include all sorts of devices, PCs, proxies, demilitarized      zones, gateways, etc. Consequently, many intermediaries come between two      communicating parties. SSL/TLS may secure the path between any two, but      not from one end to the other.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span lang="EN-US"&gt;Furthermore, SSL/TLS encrypt the whole message and does not discern confidential to public data.&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="square"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;XML encryption allows encrypting only a part of the XML      message, thus it allows end-point to end-point cryptography and allow      better performance as it encrypts only part of the message. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Both SSL/TLS and XML encryption can use PKI certificate has explained on diagram &lt;span style=""&gt;Figure &lt;span style=""&gt;5&lt;/span&gt; - Data integrity and data privacy using PKI certificates&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200330034003600330039003500380031000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;/span&gt;. Then the public key of the certificate is used for encrypting the message and only the private key can decrypt it.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border-style: none none solid; padding: 0cm 0cm 1pt;"&gt;  &lt;h3 style="border: medium none ; padding: 0cm; margin-left: 0cm; text-indent: 0cm;"&gt;&lt;a name="_Toc234748973"&gt;&lt;span dir="ltr"&gt;&lt;span lang="EN-US"&gt;Auditing&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Auditing is to insure all actions that have been made were authorized and no abuse has been performed. Application log strategy needs to be defined to enabler log analyzer tool to search through the log file. This is usually automatically defined when choosing the tools.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-1338761077889289841?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/1338761077889289841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2009/07/v-behaviorurldefaultvml-o.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/1338761077889289841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/1338761077889289841'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2009/07/v-behaviorurldefaultvml-o.html' title=''/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tebyDeNhwDs/SlNxQlZwYKI/AAAAAAAAABQ/FdJL77ZgeOc/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-3489958053879977271</id><published>2009-06-23T07:43:00.000-07:00</published><updated>2009-06-23T08:13:49.222-07:00</updated><title type='text'>Error while processing xpath expression *** the reason is FOTY0001: type error</title><content type='html'>Funny issue last time, might be useful to share it.&lt;br /&gt;Worked with JDev on a BPEL process and opened a transform activity. Then before it loads the "Source Part" and the "Target Part", I clicked on the "ok" button to move out of there.&lt;br /&gt;&lt;br /&gt;But JDev saved the transform activity with empty "Source Part" and "Target Part".&lt;br /&gt;As the loading of source and target  take quite some time because the .xsl is fairly big (on my PC anyway) it is easy to press the "ok" button before they are loaded. (as shown on the picture below).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tebyDeNhwDs/SkDuaVhaNfI/AAAAAAAAABI/J-UoYdAC1oQ/s1600-h/images.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 375px;" src="http://2.bp.blogspot.com/_tebyDeNhwDs/SkDuaVhaNfI/AAAAAAAAABI/J-UoYdAC1oQ/s400/images.jpg" alt="" id="BLOGGER_PHOTO_ID_5350538493537433074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Afterward, the process compiled fine, but a runtime exception appear at runtime complaining about the XSL transformation. The error message was not clear at all, and it took me some time to figure out what happened.&lt;br /&gt;the complete error message was:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;XPath expression failed to execute.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Error while processing xpath expression, the expression is "ora:processXSLT('OrderTransformation.xsl',bpws:getVariableData('inputVariable'))", the reason is FOTY0001: type error.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Please verify the xpath query.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-3489958053879977271?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/3489958053879977271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2009/06/xsl-issues-with-bpel-pm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/3489958053879977271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/3489958053879977271'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2009/06/xsl-issues-with-bpel-pm.html' title='Error while processing xpath expression *** the reason is FOTY0001: type error'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tebyDeNhwDs/SkDuaVhaNfI/AAAAAAAAABI/J-UoYdAC1oQ/s72-c/images.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-3998321086800141108</id><published>2009-06-16T06:35:00.000-07:00</published><updated>2009-06-16T07:21:13.806-07:00</updated><title type='text'>Secure a web application in Oracle OC4J and reuse BPEL console credentials</title><content type='html'>This week, the team had to deploy a web application on OC4J. However we wanted to re-use the security settings of the BPEL console:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;1. Created a web application with the following web.xml:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:75%;font-style: italic;color: rgb(50, 0, 0);"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;display-name&amp;gt;webAccess&amp;lt;/display-name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;security-constraint&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;display-name&amp;gt;ILayer Scheduler&amp;lt;/display-name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;web-resource-collection&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;web-resource-name&amp;gt;web-resource-name&amp;lt;/web-resource-name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/web-resource-collection&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;auth-constraint&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;role-name&amp;gt;toto-administrators&amp;lt;/role-name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/auth-constraint&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/security-constraint&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;login-config&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;auth-method&amp;gt;BASIC&amp;lt;/auth-method&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;realm-name&amp;gt;Ilayer FTP Application&amp;lt;/realm-name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/login-config&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;security-role&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;description&amp;gt;Dummy Toto Administrators&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;role-name&amp;gt;toto-administrators&amp;lt;/role-name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/security-role&amp;gt;&lt;br /&gt;&amp;lt;/web-app&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;2. Modified the file &amp;lt;$oracle_home&amp;gt;/j2ee/home/config/system-jazn-data.xml to add a role:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:75%;font-style: italic;color: rgb(50, 0, 0);"&gt;&lt;br /&gt;&amp;lt;role&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;toto-administrators&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;display-name&amp;gt;Scheduler Admin Role&amp;lt;/display-name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;description&amp;gt;Admin role for scheduled application&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;members&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;member&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;type&amp;gt;user&amp;lt;/type&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;oc4jadmin&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/member&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/members&amp;gt;&lt;br /&gt;&amp;lt;/role&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;3. Then had to restart OC4J for the settings to be taken into account&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-3998321086800141108?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/3998321086800141108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2009/06/secure-web-application-in-oracle-oc4j.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/3998321086800141108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/3998321086800141108'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2009/06/secure-web-application-in-oracle-oc4j.html' title='Secure a web application in Oracle OC4J and reuse BPEL console credentials'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-3585796383733063335</id><published>2009-06-12T05:48:00.000-07:00</published><updated>2009-06-16T08:33:59.868-07:00</updated><title type='text'>Consuming a web service over https in JAVA</title><content type='html'>Had to consume a web service over https.&lt;br /&gt;Here are the links:&lt;br /&gt;&lt;br /&gt;how to build a web service over HTTPS (did not follow it, though)&lt;br /&gt;&lt;a href="http://www.pankaj-k.net/WSOverSSL/WSOverSSL-HOWTO.html"&gt;http://www.pankaj-k.net/WSOverSSL/WSOverSSL-HOWTO.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and how to consume it:&lt;br /&gt;&lt;a href="http://www.javaworld.com/javaworld/javatips/jw-javatip96.html"&gt;http://www.javaworld.com/javaworld/javatips/jw-javatip96.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-3585796383733063335?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/3585796383733063335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2009/06/consuming-web-service-over-https.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/3585796383733063335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/3585796383733063335'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2009/06/consuming-web-service-over-https.html' title='Consuming a web service over https in JAVA'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-2684676583317197868</id><published>2009-06-12T05:09:00.000-07:00</published><updated>2009-06-16T07:25:17.154-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='test proxy telnet'/><title type='text'>How to test a proxy with telnet</title><content type='html'>Lately I tried to test a proxy with telnet.&lt;br /&gt;Here are the step I followed:&lt;br /&gt;&lt;br /&gt;1. Open a telnet session&lt;br /&gt;    &lt;span style="font-style: italic;"&gt;telnet www-proxy.oracleoutsourcing.com 80&lt;/span&gt;&lt;br /&gt;2. Make the  http request to the server you want to try&lt;br /&gt;   &lt;span style="font-style: italic;"&gt;GET http://www.nfl.com HTTP/1.1&lt;/span&gt;&lt;br /&gt;3. Give the host&lt;br /&gt;   h&lt;span style="font-style: italic;"&gt;ost:www.nfl.com&lt;/span&gt;&lt;br /&gt;(press enter twice)&lt;br /&gt;&lt;br /&gt;This allow me to test our proxy from an environment we can only access through telnet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-2684676583317197868?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/2684676583317197868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2009/06/how-to-test-proxy-with-telnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/2684676583317197868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/2684676583317197868'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2009/06/how-to-test-proxy-with-telnet.html' title='How to test a proxy with telnet'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5407133615063052532.post-562359898776626083</id><published>2009-05-29T08:50:00.000-07:00</published><updated>2009-06-18T09:17:50.434-07:00</updated><title type='text'>A BPEL process that saves e-mail attachment</title><content type='html'>BPEL process that receive e-mails, get the attachment and save it somewhere in the disk.&lt;br /&gt;&lt;br /&gt;The process looks like that:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tebyDeNhwDs/SjpjLP0nXTI/AAAAAAAAAAw/tuzBcxSy1Qs/s1600-h/process.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 298px; height: 320px;" src="http://4.bp.blogspot.com/_tebyDeNhwDs/SjpjLP0nXTI/AAAAAAAAAAw/tuzBcxSy1Qs/s320/process.PNG" alt="" id="BLOGGER_PHOTO_ID_5348696552332811570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Create a process that receives mail&lt;/span&gt;&lt;br /&gt;follow the steps here:&lt;br /&gt;&lt;a href="http://blogs.bpel-people.com/2007/01/using-email-to-initiate-bpel-process.html"&gt;http://blogs.bpel-people.com/2007/01/using-email-to-initiate-bpel-process.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Save the attachment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are 3 options:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.  Use a file adapter:&lt;/span&gt; you cannot easily define the file name, it always has to be the same. Furthermore there are some issues with the base64 encoding.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Use another web service to save the file (not a BPEL one):&lt;/span&gt; if you need to do some complex processing of the file it might be your only option.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Save the file with a "Java embedding" activities:&lt;/span&gt; this is the option I choose as I can easily set the name of the file + don't have to worry about the encoding.&lt;br /&gt;&lt;br /&gt;The assign attachment is:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tebyDeNhwDs/SjpoLL3i98I/AAAAAAAAABA/lbfiJxPRRdY/s1600-h/process3.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 620px; height: 176px;" src="http://3.bp.blogspot.com/_tebyDeNhwDs/SjpoLL3i98I/AAAAAAAAABA/lbfiJxPRRdY/s400/process3.PNG" alt="" id="BLOGGER_PHOTO_ID_5348702048829503426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The java embedding is:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tebyDeNhwDs/Sjpmlz-ofSI/AAAAAAAAAA4/lTv6MmzvPNg/s1600-h/process2.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 272px;" src="http://4.bp.blogspot.com/_tebyDeNhwDs/Sjpmlz-ofSI/AAAAAAAAAA4/lTv6MmzvPNg/s400/process2.PNG" alt="" id="BLOGGER_PHOTO_ID_5348700307249986850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        &lt;span style="font-size:85%;"&gt;&amp;lt;bpelx:exec name="saveFile" language="java" version="1.5"&amp;gt;&lt;br /&gt;           &amp;lt;![CDATA[java.io.Writer output = null;&lt;br /&gt;           try{&lt;br /&gt;               String name = (String)getVariableData("attachmentName");&lt;br /&gt;               int pos = name.lastIndexOf("name=");&lt;br /&gt;               String newName = name.substring(pos+6, name.length()-1);&lt;br /&gt;&lt;br /&gt;               java.io.File file = new java.io.File("c:\\" + newName);&lt;br /&gt;               output = new java.io.FileWriter(file);&lt;br /&gt;               output.write((String)getVariableData("attachment"));&lt;br /&gt;           } catch (Exception e) {&lt;br /&gt;               addAuditTrailEntry(e);&lt;br /&gt;           } finally {&lt;br /&gt;               try {&lt;br /&gt;                   output.close();&lt;br /&gt; } catch (java.io.IOException e) {&lt;br /&gt;                   addAuditTrailEntry(e);&lt;br /&gt; }&lt;br /&gt;           }]]&amp;gt;&lt;br /&gt;       &amp;lt;/bpelx:exec&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=602700"&gt;http://forums.oracle.com/forums/thread.jspa?threadID=602700&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5407133615063052532-562359898776626083?l=another-soa-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://another-soa-blog.blogspot.com/feeds/562359898776626083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://another-soa-blog.blogspot.com/2009/05/bpel-process-that-saves-e-mail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/562359898776626083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5407133615063052532/posts/default/562359898776626083'/><link rel='alternate' type='text/html' href='http://another-soa-blog.blogspot.com/2009/05/bpel-process-that-saves-e-mail.html' title='A BPEL process that saves e-mail attachment'/><author><name>Frederic Agneray</name><uri>http://www.blogger.com/profile/10010671507502899457</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_tebyDeNhwDs/Sw2NwT-iSSI/AAAAAAAAAC8/5-tzzezNbG4/S220/frederic_agneray.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tebyDeNhwDs/SjpjLP0nXTI/AAAAAAAAAAw/tuzBcxSy1Qs/s72-c/process.PNG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
