<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>WEBSERVICES &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/WEBSERVICES/</link>
	<description>Feed of posts on WordPress.com tagged "WEBSERVICES"</description>
	<pubDate>Tue, 01 Dec 2009 22:58:33 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[各種Webサービス検索]]></title>
<link>http://unitkay.wordpress.com/2009/11/25/%e5%90%84%e7%a8%aeweb%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9%e3%81%ae%e6%a4%9c%e7%b4%a2/</link>
<pubDate>Wed, 25 Nov 2009 03:54:42 +0000</pubDate>
<dc:creator>unitkay</dc:creator>
<guid>http://unitkay.wordpress.com/2009/11/25/%e5%90%84%e7%a8%aeweb%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9%e3%81%ae%e6%a4%9c%e7%b4%a2/</guid>
<description><![CDATA[Programmable Web http://www.programmableweb.com/ 各種Webサービスを検索するサービスです。「Music」や「DVD」といったキーワードで検索すると、そ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Programmable Web<br />
<a href="http://www.programmableweb.com/">http://www.programmableweb.com/</a></p>
<p>各種Webサービスを検索するサービスです。「Music」や「DVD」といったキーワードで検索すると、それに関連するWebサービスを表示してくれます。また、Webサービスを使ったマッシュアップやコードを検索することも出来ます。</p>
<p>マッシュアップのブームは去ってしまった感がありますが、独自アプリのデータソースとしては便利に使えると思います。</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[REST::Google]]></title>
<link>http://poisonbit.wordpress.com/2009/11/17/restgoogle/</link>
<pubDate>Mon, 16 Nov 2009 23:02:08 +0000</pubDate>
<dc:creator>poisonbit</dc:creator>
<guid>http://poisonbit.wordpress.com/2009/11/17/restgoogle/</guid>
<description><![CDATA[REST::Google perl module rocks!!! It does not uses Moose, but does cool things.]]></description>
<content:encoded><![CDATA[REST::Google perl module rocks!!! It does not uses Moose, but does cool things.]]></content:encoded>
</item>
<item>
<title><![CDATA[Got Wave - add me :)]]></title>
<link>http://mattiaswirf.wordpress.com/2009/11/11/got-wave-add-me/</link>
<pubDate>Wed, 11 Nov 2009 17:11:59 +0000</pubDate>
<dc:creator>Mattias Wirf</dc:creator>
<guid>http://mattiaswirf.wordpress.com/2009/11/11/got-wave-add-me/</guid>
<description><![CDATA[I&#8217;ve got an account at Google Wave, add me if you wan&#8217;t to: mattias.wirf@googlewave.com]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;ve got an account at Google Wave, add me if you wan&#8217;t to: mattias.wirf@googlewave.com</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Flickr + jQuery + Force.com = Awesome^5 [Part 2]]]></title>
<link>http://developinthecloud.wordpress.com/2009/11/08/flickr-jquery-force-com-awesome5-part-2/</link>
<pubDate>Sun, 08 Nov 2009 17:33:41 +0000</pubDate>
<dc:creator>Wes</dc:creator>
<guid>http://developinthecloud.wordpress.com/2009/11/08/flickr-jquery-force-com-awesome5-part-2/</guid>
<description><![CDATA[Okay software developing enthusiasts, I&#8217;m back from Paris (you didn&#8217;t know I was gone di]]></description>
<content:encoded><![CDATA[Okay software developing enthusiasts, I&#8217;m back from Paris (you didn&#8217;t know I was gone di]]></content:encoded>
</item>
<item>
<title><![CDATA[Memanggil Services WebMethods Melalui JavaFX]]></title>
<link>http://belajarjavafx.wordpress.com/2009/11/05/memanggil-services-webmethods-melalui-javafx/</link>
<pubDate>Thu, 05 Nov 2009 03:51:54 +0000</pubDate>
<dc:creator>belajar-javafx</dc:creator>
<guid>http://belajarjavafx.wordpress.com/2009/11/05/memanggil-services-webmethods-melalui-javafx/</guid>
<description><![CDATA[Ini contoh sederhana bagaimana menggunakan fitur webservice pada JavaFX. Dalam hal ini memanggil ser]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ini contoh sederhana bagaimana menggunakan fitur webservice pada JavaFX. Dalam hal ini memanggil services webMethods yang biasa digunakan di perusahaan skala Enterprise. Komunikasi yang dilakukan menggunakan protokol SOAP-RPC, dan pada ada contoh dibawah ini hanya merubah karakter (case) dari inputan lowercase menjadi uppercase.</p>
<p>Mengenai SOAP-RPC jika ada yang belum jelas silahkan baca di <a title="SOAP" href="http://en.wikipedia.org/wiki/SOAP" target="_self">wiki</a>. Kalo tentang webMethods silahkan di gugling saja atau silahkan baca di dokumntasinya, khususnya mengenai SOAP. Tapi dalam kasus ini tidak perlu tahu banyak tentang webmethods, karena prinsipnya sama dengan webservices. Jika tidak menggunakan webMethods silahkan bisa menggunakan Axis atau server webbservices lainya, tinggal disesuiakan format envelopenya.</p>
<p>Pada kasus ini saya menggunakan webMethods sebagai server webservices nya. Dibawah ini adalah format envelope nya yang nanti akan dikirim ke engine SOAP-RPC yang ada di webMethods.<!--more--></p>
<blockquote><p>&#8216;&#60;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&#62;&#8217;<br />
&#8216;&#60;SOAP-ENV:Envelope&#8217;<br />
&#8216; xmlns:SOAP-ENV=&#8221;http://schemas.xmlsoap.org/soap/envelope/&#8221;&#8216;<br />
&#8216; xmlns:SOAP-ENC=&#8221;http://schemas.xmlsoap.org/soap/encoding/&#8221;&#8216;<br />
&#8216; xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221;&#8216;<br />
&#8216; xmlns:xsd=&#8221;http://www.w3.org/2001/XMLSchema&#8221;&#62;&#8217;<br />
&#8216;&#60;SOAP-ENV:Body&#62;&#8217;<br />
&#8216;&#60;riset:getUp xmlns:riset=&#8221;http://www.webmethods.com/riset&#8221;&#62;&#8217;<br />
&#8216;&#60;input&#62;{masukan}&#60;/input&#62;&#8217;<br />
&#8216;&#60;/riset:getUp&#62;&#8217;<br />
&#8216;&#60;/SOAP-ENV:Body&#62;&#8217;<br />
&#8216;&#60;/SOAP-ENV:Envelope&#62;&#8217;;</p></blockquote>
<p>Dan dibawah ini adalah kode JavaFX lengkapnya, silahkan di coba.</p>
<blockquote><p>/*<br />
* Main.fx<br />
*<br />
* Created on Nov 3, 2009, 4:38:15 PM<br />
*/</p>
<p>package invokewm;</p>
<p>import javafx.stage.Stage;<br />
import javafx.scene.Scene;<br />
import javafx.scene.text.Text;<br />
import javafx.scene.text.Font;<br />
import java.io.InputStream;<br />
import java.io.OutputStream;<br />
import java.lang.Exception;<br />
import javafx.io.http.HttpHeader;<br />
import javafx.io.http.HttpRequest;<br />
import invokewm.parser.RSSPullParser;<br />
import javafx.data.pull.Event;<br />
import javafx.data.pull.PullParser;<br />
import javafx.scene.control.ProgressBar;<br />
import javafx.ext.swing.SwingTextField;<br />
import javafx.scene.control.Button;<br />
import javafx.scene.layout.VBox;<br />
import javafx.scene.layout.HBox;</p>
<p>/**<br />
* @author bhangun<br />
*/</p>
<p>//&#8211; login akses ke webmethods<br />
var httpHeader = HttpHeader.basicAuth(&#8220;username&#8221;, &#8220;password&#8221;);</p>
<p>var par:RSSPullParser;<br />
var isi:String;<br />
var progress:Integer;<br />
var masukan:String;</p>
<p>//&#8211; hardcode format amplop yg akan dikirim ke webmethods<br />
var amplop: String=bind &#8216;&#60;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&#62;&#8217;<br />
&#8216;&#60;SOAP-ENV:Envelope&#8217;<br />
&#8216; xmlns:SOAP-ENV=&#8221;http://schemas.xmlsoap.org/soap/envelope/&#8221;&#8216;<br />
&#8216; xmlns:SOAP-ENC=&#8221;http://schemas.xmlsoap.org/soap/encoding/&#8221;&#8216;<br />
&#8216; xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221;&#8216;<br />
&#8216; xmlns:xsd=&#8221;http://www.w3.org/2001/XMLSchema&#8221;&#62;&#8217;<br />
&#8216;&#60;SOAP-ENV:Body&#62;&#8217;<br />
&#8216;&#60;riset:getUp xmlns:riset=&#8221;http://www.webmethods.com/riset&#8221;&#62;&#8217;<br />
&#8216;&#60;input&#62;{masukan}&#60;/input&#62;&#8217;<br />
&#8216;&#60;/riset:getUp&#62;&#8217;<br />
&#8216;&#60;/SOAP-ENV:Body&#62;&#8217;<br />
&#8216;&#60;/SOAP-ENV:Envelope&#62;&#8217;;</p>
<p>//&#8211; ukuran amplop yang akan dikirim<br />
def testContentSize: Integer = amplop.getBytes().length;</p>
<p>//&#8211; fungsi untuk memanggil service webmethods<br />
def panggil: HttpRequest = HttpRequest {<br />
location: &#8220;http://localhost:5555/soap/rpc&#8221;;</p>
<p>method: HttpRequest.POST;</p>
<p>headers: [<br />
HttpHeader {<br />
name: HttpHeader.CONTENT_TYPE;<br />
value: "text/xml";<br />
},<br />
HttpHeader {<br />
name: HttpHeader.CONTENT_LENGTH;<br />
value: "{testContentSize}";<br />
},<br />
HttpHeader {<br />
name: HttpHeader.AUTHORIZATION;<br />
value: "Basic";<br />
},<br />
HttpHeader {<br />
name: HttpHeader.USER_AGENT;<br />
value: "Mozilla/4.0";<br />
},<br />
httpHeader<br />
];</p>
<p>onStarted: function() {<br />
println(&#8220;onStarted &#8211; started performing method: {panggil.method} on location: {panggil.location}&#8221;);<br />
}</p>
<p>onConnecting: function() { println(&#8220;onConnecting&#8221;) }<br />
onDoneConnect: function() { println(&#8220;onDoneConnect&#8221;) }<br />
onWriting: function() { println(&#8220;onWriting&#8221;) }</p>
<p>onOutput: function(os: java.io.OutputStream) {<br />
try {<br />
println(&#8220;onOutput &#8211; about to write {testContentSize} bytes to output stream&#8221;);<br />
os.write(amplop.getBytes());<br />
} finally {<br />
println(&#8220;onOutput &#8211; about to close output stream.&#8221;);<br />
os.close();<br />
}<br />
}</p>
<p>onToWrite: function(bytes: Long) { println(&#8220;onToWrite &#8211; entire content to be written: {bytes} bytes&#8221;) }<br />
onWritten: function(bytes: Long) {</p>
<p>println(&#8220;onWritten &#8211; {bytes} bytes has now been written&#8221;)<br />
}<br />
onDoneWrite: function() { println(&#8220;doneWrite&#8221;) }<br />
onReadingHeaders: function() { println(&#8220;onReadingHeaders&#8221;) }<br />
onResponseCode: function(code:Integer) { println(&#8220;onResponseCode &#8211; responseCode: {code}&#8221;) }<br />
onResponseMessage: function(msg:String) { println(&#8220;onResponseMessage &#8211; responseMessage: {msg}&#8221;) }</p>
<p>onResponseHeaders: function(headerNames: String[]) {<br />
println(&#8220;onResponseHeaders &#8211; there are {headerNames.size()} response headers:&#8221;);<br />
for (name in headerNames) {<br />
println(&#8220;    {name}: {panggil.getResponseHeaderValue(name)}&#8221;);<br />
}<br />
}</p>
<p>onReading: function() { println(&#8220;onReading&#8221;) }</p>
<p>onToRead: function(bytes: Long) {<br />
if (bytes &#60; 0) {<br />
println(&#8220;onToRead &#8211; Content length not specified by server; bytes: {bytes}&#8221;);<br />
} else {<br />
println(&#8220;onToRead &#8211; total number of content bytes to read: {bytes}&#8221;);<br />
}<br />
}</p>
<p>onRead: function(bytes: Long) {</p>
<p>progress =panggil.toread;</p>
<p>}</p>
<p>onInput: function(is: java.io.InputStream) {<br />
try {<br />
println(&#8220;onInput &#8211; bytes of content available: {is.available()}&#8221;);<br />
def parser = PullParser {</p>
<p>input: is</p>
<p>onEvent: function(event: Event) {</p>
<p>//println(event.toString());<br />
if (event.type == PullParser.START_ELEMENT) {<br />
if(event.qname.name == &#8220;hasil&#8221; and event.level == 3) {</p>
<p>println(event.name);<br />
}<br />
}</p>
<p>if(event.type == PullParser.TEXT){<br />
if(event.qname.name == &#8220;hasil&#8221; and event.level == 3) {<br />
isi = event.text;<br />
println(event.text);<br />
}<br />
}</p>
<p>}<br />
}<br />
parser.parse();<br />
} finally {<br />
is.close();<br />
}<br />
}</p>
<p>onException: function(ex: java.lang.Exception) {<br />
println(&#8220;onException &#8211; exception: {ex.getClass()} {ex.getMessage()}&#8221;);<br />
}</p>
<p>onDoneRead: function() { println(&#8220;onDoneRead&#8221;) }<br />
onDone: function() { println(&#8220;onDone&#8221;) }<br />
};</p>
<p>var field:SwingTextField = SwingTextField {<br />
columns: 10<br />
editable: true<br />
}</p>
<p>//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- GUI<br />
Stage {<br />
title: &#8220;Uppercase Menggunakan Service webMethods&#8221;<br />
width: 380<br />
height: 150<br />
scene: Scene {<br />
content: [<br />
VBox {<br />
content: [<br />
HBox {<br />
content: [<br />
field,<br />
Button {<br />
text: "Kirim"<br />
action: function() {<br />
masukan=field.text;<br />
panggil.start()<br />
}<br />
}</p>
<p>]},<br />
VBox {<br />
content: [ProgressBar {<br />
progress: bind ProgressBar.computeProgress( 100, progress )<br />
},<br />
Text {<br />
font : Font {<br />
size : 20<br />
}<br />
x: 10<br />
y: 50<br />
content: bind isi;<br />
}<br />
]<br />
}<br />
]}<br />
]<br />
}<br />
}</p></blockquote>
<p>Jika berhasil di jalankan akan muncul seperti dibawah ini:</p>

<p>Untuk mencoba silahkan masukan kata-kata dalam huruf kecil (lowercase), karena nanti hasilnya dalam huruf besar (uppercase).</p>
<p>source dapat di download disini;</p>
<p>&#60;a href=&#8221;http://api.ning.com/files/Lqh-Mcf*Rx7JV7mnbsQrxd8Cmazt4ldez1y5LX24xkBIZEQUAD1tCadjVfCAFmltS2e7VDRg1QgIQPNy4*XtkYYfLr3eDwZp/InvokeWM.zip&#8221;&#62;InvokeWM.zip&#60;/a&#62;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Flickr + jQuery + Force.com = Awesome^5 [Part 1]]]></title>
<link>http://developinthecloud.wordpress.com/2009/10/25/flickr-jquery-force-com-awesome5-part-1/</link>
<pubDate>Sun, 25 Oct 2009 16:40:20 +0000</pubDate>
<dc:creator>Wes</dc:creator>
<guid>http://developinthecloud.wordpress.com/2009/10/25/flickr-jquery-force-com-awesome5-part-1/</guid>
<description><![CDATA[Being a mathematician, equations like those in the title usually make me wanna poke someone in the e]]></description>
<content:encoded><![CDATA[Being a mathematician, equations like those in the title usually make me wanna poke someone in the e]]></content:encoded>
</item>
<item>
<title><![CDATA[Webservices REST Usando o Zend Framework]]></title>
<link>http://jcanalneto.wordpress.com/2009/10/23/webservices-rest-usando-o-zend-framework/</link>
<pubDate>Sat, 24 Oct 2009 01:37:31 +0000</pubDate>
<dc:creator>Jc Neto</dc:creator>
<guid>http://jcanalneto.wordpress.com/2009/10/23/webservices-rest-usando-o-zend-framework/</guid>
<description><![CDATA[Essa foi a apresentação que eu e o Fernando fizemos na Latinoware sexta (23/10) foi muito legal apre]]></description>
<content:encoded><![CDATA[Essa foi a apresentação que eu e o Fernando fizemos na Latinoware sexta (23/10) foi muito legal apre]]></content:encoded>
</item>
<item>
<title><![CDATA[JBoss 4.2.x rodando com JDK 1.6]]></title>
<link>http://wbissi.wordpress.com/2009/10/08/jboss-4-2-x-rodando-com-jdk-1-6/</link>
<pubDate>Thu, 08 Oct 2009 11:09:02 +0000</pubDate>
<dc:creator>wbissi</dc:creator>
<guid>http://wbissi.wordpress.com/2009/10/08/jboss-4-2-x-rodando-com-jdk-1-6/</guid>
<description><![CDATA[Muitos se deparam com um problema ao tentar executar o servidor de aplicações JBoss nas versões 4.2.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Muitos se deparam com um problema ao tentar executar o servidor de aplicações JBoss nas versões 4.2.x com a versão da JDK1.6.x, onde é lançado algumas exceções. Isso ocorre devido a incompatibilidade com das bibliotecas de webservices.<br />
Para corrigir esse problema é necessário seguir os seguintes passos: </p>
<p>1) Copie as seguintes bibliotecas da pasta %JBOSS_HOME%\client</p>
<ol>
<li>jaxb-api.jar</li>
<li>jboss-jaxrpc.jar</li>
<li>jboss-jaxws.jar</li>
<li>jboss-jaxws-ext.jar</li>
<li>jboss-saaj.jar</li>
</ol>
<p>2) Cole as bibliotecas copiadas na pasta  %JBOSS_HOME%\lib\endorsed</p>
<p>E pronto agora é só dar um restart no server que já estará funcionado.</p>
<p>Na versão do JBoss 5 as bibliotecas que deverão ser alteradas são as seguintes, segundo a edição 69 da revista Java Magazine:</p>
<ol>
<li>jbossws-native-jaxrpc.jar</li>
<li>jbossws-native-jaxws.jar</li>
<li>jbossws-native-jaxws-ext.jar</li>
<li>jbossws-native-saaj.jar</li>
</ol>
<p>* Isso é válido para as versões do JBoss compilados com JDK 1.5 que são executados utilizando JDK 1.6</p>
<p>Atte,<br />
Wilson Bissi</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to Secure Java Webservice with encryption and signature]]></title>
<link>http://thetechtips.wordpress.com/2009/09/30/secure-java-webservice-with-encryption-and-signature/</link>
<pubDate>Wed, 30 Sep 2009 21:41:08 +0000</pubDate>
<dc:creator>thetechtips</dc:creator>
<guid>http://thetechtips.wordpress.com/2009/09/30/secure-java-webservice-with-encryption-and-signature/</guid>
<description><![CDATA[Introduction In the last post I had a short description on webservice security. In this post, we bui]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:left;"><strong>Introduction</strong></p>
<p style="text-align:left;">In the <a href="http://thetechtips.wordpress.com/2009/09/17/web-service-security/">last post </a>I had a short description on webservice security. In this post, we build a secure webservice and create a client to access it. For doing so, the same environment as in the <a href="http://thetechtips.wordpress.com/2009/08/27/how-to-create-a-metro-jax-ws-portable-webservice/">Simple Webservice example</a> is used. We will use Metro&#8217;s WSIT features to enable secrity for our webservice.<!--more--></p>
<p style="text-align:left;"><strong>Creating the webservice</strong></p>
<p style="text-align:left;">The steps for creating and deploying an unsecured webservice are described in <a href="http://thetechtips.wordpress.com/2009/08/27/how-to-create-a-metro-jax-ws-portable-webservice/">this post</a>. Follow these steps till Step 6 (we do not deploy the webservice yet). Now we need to make the webservice secure.</p>
<p style="text-align:left;"><strong>Generate Key Pair</strong></p>
<p style="text-align:left;">In order to perform encryption and signature, the webservice and the client need a public-private key pair. The public key is wrapped inside a X509 certificate. In this example we do not use mutual certificates. The private key (or identity key) is with the webservice only. The public key (X509 certificate) is distributed to clients. What is encrypted using the public certificate, can only be decrypted using the private key and vice-versa. In this example, the private key is part of a KeyStore configured on the webservice, and the public certificate is part of a TrustStore configured on the client side.</p>
<p style="text-align:left;">To create a key-pair for use with this example, create a directory to keep the KeyStore and TrustStore in (call it <code>&#60;KEY_DIR&#62;</code>). Browse to this dir on command prompt and run<br />
<code>keytool -genkey -alias serviceKey -keypass mykeypass -keystore wsKeyStore.jks -storepass changeit -keyalg RSA -dname "CN=Tech Tips, OU=Blog, O=The Tech tips, L=DFW, ST=TX, C=US"</code></p>
<p style="text-align:left;">This creates the keystore with the private key in it. Now export the public certificate:<br />
<code>keytool -export -alias serviceKey -keypass mykeypass -keystore wsKeyStore.jks -storepass changeit -file publicCert.cer</code></p>
<p style="text-align:left;">and import the public certificate into a truststore:<br />
<code>keytool -import -alias publicCert -keystore wsTrustStore.jks -storepass changeit -file publicCert.cer</code></p>
<p style="text-align:left;"><strong>Specify Security Requirements</strong></p>
<p style="text-align:left;">In order to convey their security constraints to clients, webservices can include their security specifications as part of the WSDL. This is done by making use of WS-Security Policy (WSSP) assertions. The clients who have access to the WSDL therefore know the security contract for accessing the webservice.</p>
<p style="text-align:left;">Instead of creating a custom way of specifying security requirements when creating a webservice, WSIT (part of metro stack) makes use of the already developed way (using WSSP assertions). In order to enable security for our webservice, all we need is a static WSDL-like definitions file which contains the desire WSSP assertions assigned to our endpoint. This file needs to have a special name &#8216;<code>wsit-&#60;fully qualified implementation class name&#62;.xml</code>&#8216;.</p>
<p style="text-align:left;">In MetroWebserviceSample eclipse project&#8217;s <code>WEB-INF</code> directory, create a file named &#8216;<code>wsit-test.metro.sample.TestService.xml</code>&#8216;. The contents of this file should be as follows:</p>
<pre class="brush: xml;">&#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; standalone=&#34;yes&#34;?&#62;
&#60;!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2-hudson-182-RC1. --&#62;
&#60;definitions targetNamespace=&#34;http://sample.metro.test/&#34;
 xmlns:tns=&#34;http://sample.metro.test/&#34;
 xmlns:xsd=&#34;http://www.w3.org/2001/XMLSchema&#34;
 xmlns=&#34;http://schemas.xmlsoap.org/wsdl/&#34;
 xmlns:soap=&#34;http://schemas.xmlsoap.org/wsdl/soap/&#34;
 xmlns:wsu=&#34;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd&#34;
 xmlns:wsp=&#34;http://schemas.xmlsoap.org/ws/2004/09/policy&#34;
 xmlns:sp=&#34;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy&#34;
 xmlns:wspp=&#34;http://java.sun.com/xml/ns/wsit/policy&#34;&#62;
 
   &#60;wsp:Policy wsu:Id=&#34;TestService_Security_Policy&#34;&#62;
  &#60;wsp:ExactlyOne&#62;
   &#60;wsp:All&#62;   
    &#60;sp:SymmetricBinding &#62;
     &#60;wsp:Policy&#62;
      &#60;sp:ProtectionToken&#62;
       &#60;wsp:Policy&#62;
        &#60;sp:X509Token sp:IncludeToken=&#34;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never&#34;&#62;
         &#60;wsp:Policy&#62;
          &#60;sp:WssX509V3Token10/&#62;
          &#60;sp:RequireDerivedKeys/&#62;
          &#60;sp:RequireIssuerSerialReference/&#62;
         &#60;/wsp:Policy&#62;
        &#60;/sp:X509Token&#62;
       &#60;/wsp:Policy&#62;
      &#60;/sp:ProtectionToken&#62;
      
      &#60;sp:AlgorithmSuite&#62;      
       &#60;wsp:Policy&#62;
        &#60;sp:Basic128/&#62;
       &#60;/wsp:Policy&#62;       
      &#60;/sp:AlgorithmSuite&#62;
      
      &#60;sp:Layout&#62;      
       &#60;wsp:Policy&#62;
        &#60;sp:Strict/&#62;
       &#60;/wsp:Policy&#62;       
      &#60;/sp:Layout&#62; 
      &#60;sp:IncludeTimestamp/&#62;  
      &#60;sp:EncryptBeforeSigning/&#62;   
     &#60;/wsp:Policy&#62;
    &#60;/sp:SymmetricBinding&#62;
    &#60;sp:Wss11&#62;
            &#60;wsp:Policy&#62;
              &#60;sp:MustSupportRefIssuerSerial/&#62;
            &#60;/wsp:Policy&#62;
          &#60;/sp:Wss11&#62;
             &#60;sc:KeyStore wspp:visibility=&#34;private&#34;
              xmlns:wspp=&#34;http://java.sun.com/xml/ns/wsit/policy&#34;
              xmlns:sc=&#34;http://schemas.sun.com/2006/03/wss/server&#34;
              location=&#34;&#60;KEY_DIR&#62;\wsKeyStore.jks&#34;
              type=&#34;JKS&#34; keypass=&#34;mykeypass&#34;
              alias=&#34;serviceKey&#34;
              storepass=&#34;changeit&#34;&#62;
             &#60;/sc:KeyStore&#62;
   &#60;/wsp:All&#62;
  &#60;/wsp:ExactlyOne&#62;
 &#60;/wsp:Policy&#62;
 
 &#60;wsp:Policy wsu:Id=&#34;TestService_Encryption_policy&#34;&#62;
  &#60;wsp:ExactlyOne&#62;
   &#60;wsp:All&#62;    
    &#60;sp:EncryptedParts xmlns:sp=&#34;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy&#34;&#62;
     &#60;sp:Body /&#62;
    &#60;/sp:EncryptedParts&#62;      
   &#60;/wsp:All&#62;
  &#60;/wsp:ExactlyOne&#62;
 &#60;/wsp:Policy&#62;
 &#60;wsp:Policy wsu:Id=&#34;TestService_Signature_policy&#34;&#62;
  &#60;wsp:ExactlyOne&#62;
   &#60;wsp:All&#62;
    &#60;sp:SignedParts xmlns:sp=&#34;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy&#34;&#62;
     &#60;sp:Body /&#62;
    &#60;/sp:SignedParts&#62;
   &#60;/wsp:All&#62;
  &#60;/wsp:ExactlyOne&#62;
 &#60;/wsp:Policy&#62;
 
 
&#60;portType name=&#34;TestService&#34;&#62;
  &#60;/portType&#62;
 
  &#60;binding name=&#34;TestServicePortBinding&#34; type=&#34;tns:TestService&#34;&#62;
   &#60;wsp:PolicyReference URI=&#34;#TestService_Security_Policy&#34;&#62;&#60;/wsp:PolicyReference&#62;
   &#60;wsp:PolicyReference URI=&#34;#TestService_Encryption_policy&#34;&#62;&#60;/wsp:PolicyReference&#62;
   &#60;wsp:PolicyReference URI=&#34;#TestService_Signature_policy&#34;&#62;&#60;/wsp:PolicyReference&#62;
  &#60;/binding&#62;
 
  &#60;service name=&#34;TestServiceService&#34;&#62;
     &#60;!-- Uncomment this section if above configured security is to be enabled --&#62;
     &#60;!-- --&#62;
  
&#60;port name=&#34;TestServicePort&#34; binding=&#34;tns:TestServicePortBinding&#34;&#62;
   &#60;/port&#62;
  &#60;/service&#62;
&#60;/definitions&#62;
</pre>
<p style="text-align:left;">The above file has the minimum content required for this configuration (in other situations we can have the complete WSDL, plus the policy declarations and references). It enforces encryption of the SOAP body element followed by signing the encrypted body (<code>EncryptBeforeSigning</code>) for all messages (requests and responses). For the purpose of encryption and signing derived keys based on an X509 token are used. The location of the token is specified using Metro specific element.</p>
<p style="text-align:left;"><strong>Deploy the Webservice</strong></p>
<li style="text-align:left;">Right click the eclipse project MetroWebserviceSample and export to a .war  file (MetroWebserviceSample.war).</li>
<li style="text-align:left;">Copy MetroWebserviceSample.war to &#60;TOMCAT_HOME&#62;/webapps and start the Tomcat server.</li>
<li style="text-align:left;">The WSDL can be looked up at <a href="http://localhost:8080/MetroWebserviceSample/test?wsdl">http://localhost:8080/MetroWebserviceSample/test?wsdl</a>.</li>
<p style="text-align:left;">Note that the element describing the location of X509 token (keystore etc) is not visible in the online WSDL.</p>
<p style="text-align:left;"><strong>Create the Client</strong></p>
<p style="text-align:left;">In order to create a POJO client which does not run inside a container, the Metro libraries will be needed. As indicated in <a href="http://thetechtips.wordpress.com/2009/08/27/how-to-create-a-metro-jax-ws-portable-webservice/" target="_blank">this post</a>, download Metro and put the expand the contents (call this directory <code>&#60;METRO_HOME&#62;</code>).  For convinience the directory <code>&#60;METRO_HOME&#62;/bin</code> can be added to the environment variable <code>Path</code>, so that the tools <code>wsgen</code> and <code>wsimport</code> can be used without qualified location. For JDK 6 onwards, these tools are part of the jdk.</p>
<p style="text-align:left;">Create a directory for the client code <code>&#60;CLIENT_HOME&#62;</code>. This can as well be an eclipse Java project. However, the instructions here are for running the client without using eclipse.</p>
<p style="text-align:left;">While the webservice is running on Tomcat, on the command prompt run:<br />
<code>wsimport -d &#60;CLIENT_HOME&#62; -s &#60;CLIENT_HOME&#62; -p test.metro.sample.client http://localhost:8080/MetroWebserviceSample/test?wsdl</code><br />
This will create the classes needed by the client, under the package structure <code>test.metro.sample.client</code>. Note that the classes are already compiled, so we will not recompile them.</p>
<p style="text-align:left;">In the directory <code>&#60;CLIENT_HOME&#62;/test/metro</code>, create a directory named <code>client</code>. Create a file <code>TestServiceClient.java</code> in this directory (so the package for this class is <code>test.metro.client</code>). The contents of <code>TestServiceClient.java</code> should be:</p>
<pre class="brush: java;">package test.metro.client;

import test.metro.sample.client.TestService;
import test.metro.sample.client.TestServiceService;

public class TestServiceClient {

 private String defaultGreeter = &#34;TheTechTips&#34;;
 /**
  * @param args
  */
 public static void main(String[] args) {
  
  TestServiceClient client = new TestServiceClient();
  TestService service = new TestServiceService().getPort(TestService.class);
  System.out.println(&#34;Greeatings are...&#34;);
  if (args.length == 0) {
   System.out.println(service.greet(client.defaultGreeter));
  } else {
   for (String greeter : args) {
    System.out.println(service.greet(greeter));
   }
  }
 }

}
</pre>
<p style="text-align:left;">To compile the above class, browse to <code>&#60;CLIENT_HOME&#62;</code> directory on command prompt (for convinience) and run:<br />
<code>javac -cp %CLASSPATH%;.;&#60;METRO_HOME&#62;/lib/webservices-api.jar test/metro/client/TestServiceClient.java</code></p>
<p style="text-align:left;"><strong>Client Security Configuration</strong></p>
<p style="text-align:left;">Similar to the wsdl-like file we created for securing the webservice, we need to specify where the client can find the security certificate to send proper requests to the service. The client config file should be named <code>&#60;service&#62;Service.xml</code> and placed in the <code>META-INF</code> directory. In addition, another xml file called <code>wsit-client.xml</code> is to be pesent in <code>META-INF</code>. The latter file imports the former.</p>
<p style="text-align:left;">Create a <code>META-INF</code> directory under <code>&#60;CLIENT_HOME&#62;</code>. Put files <code>TestServiceService.xml</code> and <code>wsit-client.xml</code> in the <code>META-INF</code> directory with following contents.</p>
<p style="text-align:left;">TestServiceService.xml</p>
<pre class="brush: xml;">&#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; standalone=&#34;yes&#34;?&#62;
&#60;!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2-hudson-182-RC1. --&#62;
&#60;definitions targetNamespace=&#34;http://sample.metro.test/&#34;
 xmlns:tns=&#34;http://sample.metro.test/&#34;
 xmlns:xsd=&#34;http://www.w3.org/2001/XMLSchema&#34;
 xmlns=&#34;http://schemas.xmlsoap.org/wsdl/&#34;
 xmlns:soap=&#34;http://schemas.xmlsoap.org/wsdl/soap/&#34;
 xmlns:wsu=&#34;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd&#34;
 xmlns:wsp=&#34;http://schemas.xmlsoap.org/ws/2004/09/policy&#34;
 xmlns:sp=&#34;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy&#34;
 xmlns:wspp=&#34;http://java.sun.com/xml/ns/wsit/policy&#34;&#62;
 
 &#60;wsp:Policy xmlns:sc=&#34;http://schemas.sun.com/2006/03/wss/client&#34;
  xmlns:wspp=&#34;http://java.sun.com/xml/ns/wsit/policy&#34;
  wsu:Id=&#34;TestService_Security_Client_Policy&#34;&#62;
  &#60;wsp:ExactlyOne&#62;
   &#60;wsp:All&#62;
      &#60;sc:TrustStore wspp:visibility=&#34;private&#34; location=
        &#34;&#60;KEY_DIR&#62;\wsTrustStore.jks&#34;
        storepass=&#34;changeit&#34;
        peeralias=&#34;publicCert&#34;/&#62;

   &#60;/wsp:All&#62;
  &#60;/wsp:ExactlyOne&#62;
 &#60;/wsp:Policy&#62;

 
&#60;portType name=&#34;TestService&#34;&#62;
  &#60;/portType&#62;
 
  &#60;binding name=&#34;TestServicePortBinding&#34; type=&#34;tns:TestService&#34;&#62;
   &#60;wsp:PolicyReference URI=&#34;#TestService_Security_Client_Policy&#34;&#62;&#60;/wsp:PolicyReference&#62;
  &#60;/binding&#62;
 
  &#60;service name=&#34;TestServiceService&#34;&#62;
     &#60;!-- Uncomment this section if above configured security is to be enabled --&#62;
     &#60;!-- --&#62;
  
&#60;port name=&#34;TestServicePort&#34; binding=&#34;tns:TestServicePortBinding&#34;&#62;
   &#60;/port&#62;
  &#60;/service&#62;
&#60;/definitions&#62;
</pre>
<p style="text-align:left;">wsit-client.xml</p>
<pre class="brush: xml;">&#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&#62;
 &#60;definitions
 xmlns=&#34;http://schemas.xmlsoap.org/wsdl/&#34;
 xmlns:wsdl=&#34;http://schemas.xmlsoap.org/wsdl/&#34;
 xmlns:xsd=&#34;http://www.w3.org/2001/XMLSchema&#34;
 xmlns:soap=&#34;http://schemas.xmlsoap.org/wsdl/soap/&#34;
name=&#34;mainclientconfig&#34;&#62;
    &#60;import location=&#34;TestServiceService.xml&#34; namespace=&#34;http://sample.metro.test/&#34;/&#62;
&#60;/definitions&#62;
</pre>
<p style="text-align:left;"><strong>Run client</strong></p>
<p style="text-align:left;">To run the client, execute (while command prompt is in &#60;CLIENT_HOME&#62; directory)<br />
<code>java -cp %CLASSPATH%;.;&#60;METRO_HOME&#62;/lib/webservices-api.jar;&#60;METRO_HOME&#62;/lib/webservices-rt.jar test.metro.client.TestServiceClient</code></p>
<p style="text-align:left;">The output will be something like<br />
<code>Oct 2, 2009 11:14:43 AM [com.sun.xml.ws.policy.jaxws.PolicyConfigParser] parseModel<br />
INFO: WSP1049: Loaded WSIT configuration from file: file:&#60;CLIENT_HOME&#62;/META-INF/wsit-client.xml<br />
Greeatings are...<br />
Hello TheTechTips!</code></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Combining WebServices with MVC]]></title>
<link>http://somewebguy.wordpress.com/2009/09/27/combining-webservices-with-mvc/</link>
<pubDate>Mon, 28 Sep 2009 02:51:18 +0000</pubDate>
<dc:creator>webdev_hb</dc:creator>
<guid>http://somewebguy.wordpress.com/2009/09/27/combining-webservices-with-mvc/</guid>
<description><![CDATA[I always liked the concept behind WebServices. Having a single place to store a bunch of complex but]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I always liked the concept behind WebServices. Having a single place to store a bunch of complex but commonly used functions is a great way to decrease complexity of other programs that all sit on the same network. If you&#8217;re like me and tend to do a lot of intranet applications, a web service can prevent a lot of duplicate code.</p>
<p>My only real problem with WebServices was having to use SOAP. Adding a Web Reference to a project wasn&#8217;t that big of a deal but if you ever wanted to just call a function real quick, say from a script file (yes, I do VBScript occasionally&#8230; ick) then it isn&#8217;t quite as I&#8217;d prefer. You end up spending more time making sure your XML is well formed and less time on the logic inside your quick script.</p>
<p>MVC helps get around that problem by allowing you to perform normal HTTP calls and plug all your arguments into the query string or the body of the request &#8211; something much easier to do. The problem, however, is that you end up losing the convenience of using a WebService with other applications.</p>
<h3>A Simple Solution</h3>
<p>The idea here is to create a controller that acts as a wrapper to a WebService. By doing this we can override a few methods on our Controller that use reflection to invoke the matching method on the WebService. Also, because the Controller is still a unique class, we can still attach any number of Actions to it as we normally would. <em>Below is some code that I wrote the other day. It isn&#8217;t battle tested so if you use it be sure to verify it does everything that you need it to do. </em></p>
<pre class="brush: csharp;">
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Mvc;
using System.Reflection;
using System.Xml.Serialization;
using System.Xml.Linq;
using System.IO;

namespace Interface.Controllers {

    /// &#60;summary&#62;
    /// Abstract wrapper that handles calling WebService methods on behalf of a controller
    /// &#60;/summary
    public abstract class WebServiceControllerWrapper&#60;T&#62; : Controller where T : WebService {

        #region Constructors

        /// &#60;summary&#62;
        /// Creates a new Controller Wrapper for a WebService
        /// &#60;/summary&#62;
        public WebServiceControllerWrapper() {
            this.Service = Activator.CreateInstance&#60;T&#62;();
        }

        #endregion

        #region Properties

        //The service that is being used for this call
        private T Service { get; set; }

        #endregion

        #region Overriding Methods

        //finds the correct method for the WebService method
        protected override void HandleUnknownAction(string actionName) {

            //find if the method exists
            MethodInfo method = this.Service
                .GetType()
                .GetMethods()
                .Where(found =&#62;
                    found.IsPublic &#38;&#38;
                    found.Name.Equals(actionName, StringComparison.OrdinalIgnoreCase) &#38;&#38;
                    found.GetCustomAttributes(typeof(WebMethodAttribute), true).Count() &#62; 0
                    )
                    .FirstOrDefault();

            //if no method was found, just give up
            if (method == null) { return; }

            //check if all the arguments were found
            List&#60;object&#62; arguments = new List&#60;object&#62;();
            ParameterInfo[] parameters = method.GetParameters();
            foreach (ParameterInfo param in parameters) {

                //check if this argument was found
                object arg = this.ValueProvider[param.Name].ConvertTo(param.ParameterType);
                arguments.Add(arg);
            }

            //with the arguments try and call the result
            object result = method.Invoke(this.Service, arguments.ToArray());

            //if there is a return value, serialize it and write it
            this.Response.ContentType = &#34;text/xml&#34;;
            if (method.ReturnType != null) {

                //if this is an XElement of some kind, just use it as is
                if (result is XObject) {

                    //write the string
                    using (StreamWriter writer = new StreamWriter(this.Response.OutputStream)) {
                        writer.Write(result.ToString());
                    }

                }
                else {

                    //try and serialize it
                    XmlSerializer serialize = new XmlSerializer(result.GetType());
                    serialize.Serialize(this.Response.OutputStream, result);
                }

            }

        }

        #endregion

    }

}
</pre>
<p>The idea here is to inherit this class instead of the standard Controller class and provide the name of the WebService we want to wrap around as our <em>Generic</em> argument. For example&#8230;</p>
<pre class="brush: csharp;">

//that's about it - actions are mapped automatically to the correct method on the webservice
public class AccountController : WebServiceControllerWrapper&#60;AccountWebService&#62; { }
</pre>
<p>By doing this, when our controller receives an Action, is checks the WebService instance for the same method and then tries to call the method with the arguments it finds as part of the request! </p>
<p>And that&#8217;s it! A quick and simple way to map incoming actions to a matching method on a Web Service!</p>
<h3>The Return Type</h3>
<p>I&#8217;m not sure the best way to handle the return type at this time. It seems to me that the <code>XmlSerializer</code> should be sufficient for object with the exception of Xml which should probably just be written out as a string. If you have a suggestion on a better way to respond to incoming requests, please let me know. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Remember:</strong> This is just some quick and dirty code &#8211; This needs some more polish and exception handling before I&#8217;d use it in a real project, but at least it might help you get going in the right direction.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Steps to add a Web service 2.0 in SharePoint 2007]]></title>
<link>http://praveenbattula.wordpress.com/2009/09/25/steps-to-add-a-web-service-2-0-in-sharepoint-2007/</link>
<pubDate>Fri, 25 Sep 2009 06:23:15 +0000</pubDate>
<dc:creator>praveen battula</dc:creator>
<guid>http://praveenbattula.wordpress.com/2009/09/25/steps-to-add-a-web-service-2-0-in-sharepoint-2007/</guid>
<description><![CDATA[Steps to add a Web service 2.0 in SharePoint 2007]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://praveenbattula.blogspot.com/2009/07/steps-to-add-web-service-20-in.html">Steps to add a Web service 2.0 in SharePoint 2007</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Usernames]]></title>
<link>http://10yafter.wordpress.com/2009/09/23/setting-up-a-website-a-blog-and-some-ac/</link>
<pubDate>Wed, 23 Sep 2009 14:17:55 +0000</pubDate>
<dc:creator>tschloemer</dc:creator>
<guid>http://10yafter.wordpress.com/2009/09/23/setting-up-a-website-a-blog-and-some-ac/</guid>
<description><![CDATA[Setting up a Website, a Blog and some accounts on different Webservices (which I just did) is really]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Setting up a Website, a Blog and some accounts on different Webservices (which I just did) is really not that much fun. Once you thought of a good name, you can almost be sure that it is already taken on at least one of the services that you wanted to use. So I just spend a lot of time switching from site to site (Thanks for tabbed browsing &#8211; oh mighty Webrowser Developer) and checking available usernames. But for now I&#8217;m done and I will try to recuperate.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Masking SharePoint Created By and Modified By( Making list Anonymous)]]></title>
<link>http://spyralout.com/2009/09/18/masking-sharepoint-created-by-and-modified-by-making-list-anonymous/</link>
<pubDate>Fri, 18 Sep 2009 21:55:00 +0000</pubDate>
<dc:creator>bazztrap</dc:creator>
<guid>http://spyralout.com/2009/09/18/masking-sharepoint-created-by-and-modified-by-making-list-anonymous/</guid>
<description><![CDATA[&#160; Note: This is for SharePoint environment not configured for anonymous users, usually intranet]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>&#160;</p>
<p>Note: This is for SharePoint environment not configured for anonymous users, usually intranet environment. </p>
<p>Scenario: I have had few request coming where users ask for an Anonymous feature for discussion board or custom list. Few solutions I came across were all around custom Input form and restrictive access to users and hidden views. All of the above seems doable, but I doubt all scenarios are covered for instance RSS Feeds and Web service calls.    <br />OOB SharePoint has a functionality for Survey list which &#34;Show user names in survey results?&#160; &#34; which basically in OM is SPlist.ShowUser = boolean value which is available for all SharePoint list but does it function as expected, Answer is yes. </p>
<p>I decided update my previous Client Tool, Show-Hide fields, which uses web services to Hide List Fields on different Form Pages, it made sense to add additional functionality of Masking User names as well. </p>
<p>It works exactly the same but has an additional Check box for Masking User Information thus.&#160; On how to use the tool check the link here <a title="http://spyralout.com/releasestoolscode/moss-showhide-fields-using-web-services/" href="http://spyralout.com/releasestoolscode/moss-showhide-fields-using-web-services/">http://spyralout.com/releasestoolscode/moss-showhide-fields-using-web-services/</a></p>
<p>&#160;</p>
<p>Below are screenshots for Masking User Info</p>
<p>List</p>
<p><a href="http://spyralout.files.wordpress.com/2009/09/image.png"><img title="image" style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" height="152" alt="image" src="http://spyralout.files.wordpress.com/2009/09/image_thumb.png?w=579&#038;h=152" width="579" border="0" /></a> </p>
<p>Tool :</p>
<p>&#160;</p>
</p>
<p> <a href="http://spyralout.files.wordpress.com/2009/09/image1.png"><img title="image" style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" height="262" alt="image" src="http://spyralout.files.wordpress.com/2009/09/image_thumb1.png?w=566&#038;h=262" width="566" border="0" /></a>
<p>&#160;</p>
<p>Click Update and Result </p>
<p><a href="http://spyralout.files.wordpress.com/2009/09/image2.png"><img title="image" style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" height="182" alt="image" src="http://spyralout.files.wordpress.com/2009/09/image_thumb2.png?w=594&#038;h=182" width="594" border="0" /></a> </p>
<p>Download Link :</p>
<p><a title="http://spiralout.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22305" href="http://spiralout.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22305">http://spiralout.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22305</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[J2ee developer – Chennai]]></title>
<link>http://careeratkbs.wordpress.com/2009/09/18/j2ee-developer-%e2%80%93-chennai/</link>
<pubDate>Fri, 18 Sep 2009 05:07:17 +0000</pubDate>
<dc:creator>careeratkbs</dc:creator>
<guid>http://careeratkbs.wordpress.com/2009/09/18/j2ee-developer-%e2%80%93-chennai/</guid>
<description><![CDATA[Hi, Here the placement for J2ee developer Our client are looking for a J2ee developer with 4-7 years]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Hi,</p>
<p>Here the placement for <span style="color:#33cccc;"><strong>J2ee developer</strong></span></p>
<ul>
<li>Our client are looking for a J2ee developer with 4-7 years experience</li>
</ul>
<p><span style="color:#993366;"><strong>JOB DESCRIPTION :</strong></span></p>
<ul>
<li>Knowledge of JSP/Servlets a      must.</li>
<li>Experience with Webservices,      XML, AJAX highly      desirable.</li>
<li>Knowledge of MVC frameworks a      must &#8211; STRUTS, SPRING(highly desired).</li>
<li>Strong OO concepts, Large      project experience preferred.</li>
<li>Good communication skills      required.</li>
<li>Good schooling preferably      city bred person.</li>
</ul>
<p>Would you be interested ?</p>
<p><strong>Please send us your latest updated profile with contact nos.current &#38; expected salary details and joining time</strong><strong> </strong><strong>required to</strong><strong> </strong><strong><a href="mailto:radha@kbsconsultants.com?subject=PHP%20Developer">radha@kbsconsultants.com</a></strong></p>
<p>You may also suggest this opening to your friends who may be interested.</p>
<p><strong><span style="color:#ff6600;"><span style="color:#00ccff;">Further  Information:</span><br />
</span></strong></p>
<p><span style="color:#3333ff;"><strong>KBS</strong> </span><span style="color:#ff0000;"><strong>Consultants</strong></span></p>
<p>Flat H,Kulothungan Apts,</p>
<p>No, 5 Natesan Road</p>
<p>Ashoknagar,</p>
<p>Chennai 600 083.India</p>
<p>Phone: +91-44 2489 5341 / 2371 9622</p>
<p><span style="color:#00ccff;"><strong>Visit Our Sites:</strong></span></p>
<p><span style="color:#800080;"><strong>International jobs:</strong></span> <a href="http://www.jobsearchworld.com/">http://www.jobsearchworld.com/</a><br />
<span style="color:#800080;"><strong>SAP ERP Jobs :</strong></span> <a href="http://www.jobsvista.com/">http://www.jobsvista.com/</a><br />
<span style="color:#800080;"><strong>Core Engineering Jobs :</strong> </span><a href="http://www.gotachance.com/">http://www.gotachance.com/</a><br />
<strong><span style="color:#006600;"><span style="color:#800080;">Technology Jobs :</span> </span></strong><a href="http://www.kbsconsultants.com/">http://www.kbsconsultants.com/</a><br />
<span style="color:#800080;"><strong>India Jobs :</strong></span> <a href="http://www.kbsconsultants.net.in/">http://www.kbsconsultants.net.in/</a><br />
<a href="http://www.kbsconsultants.org.in/">http://www.kbsconsultants.org.in/</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Web Service Security]]></title>
<link>http://thetechtips.wordpress.com/2009/09/17/web-service-security/</link>
<pubDate>Thu, 17 Sep 2009 15:33:42 +0000</pubDate>
<dc:creator>thetechtips</dc:creator>
<guid>http://thetechtips.wordpress.com/2009/09/17/web-service-security/</guid>
<description><![CDATA[When considering securing web-service invocations, there are many levels of security that cane be ap]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:left;">When considering securing web-service invocations, there are many levels of security that cane be applied. The outermost levels can be viwed as</p>
<ol style="text-align:left;">
<li>Protocol level security: The security mechanisms used for regular request/response for the particular protocol. For example, Basic Authentication and SSL certificates for HTTP. These mechanisms only ensure that the messages are secured till they reach the protocol (say HTTP) destination. After that, when the actual SOAP message is un secured till it reaches the actual Web service endpoint.<!--more--></li>
<li>SOAP message security: In this case the messages are to be secured all the way to the endpoint beyond the protocol level. This is specified by the WS-Security specifications.</li>
</ol>
<p style="text-align:left;"><strong>WS-Security Specification</strong></p>
<p style="text-align:left;"> </p>
<p style="text-align:left;">The WS-Security specification 1.0 was released in 2002. The next version 1.1 was released in 2006. It specifies how to enhance SOAP messages to secure the information exchange.</p>
<p style="text-align:left;">From the WS-Security specification (http<a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss#overview">://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss#overview</a>):</p>
<p style="text-align:left;">&#8220;WS-Security describes enhancements to SOAP messaging to provide quality of protection through message integrity, message confidentiality, and single message authentication. These mechanisms can be used to accommodate a wide variety of security models and encryption technologies.”</p>
<p style="text-align:left;">The WS-Security spec provides SOAP extensions that can be used when building secure web-services. There are three main aspects of security:</p>
<ol style="text-align:left;">
<li><em>Message Authentication</em>WS-Security provides a way of associating <em>security tokens</em> with SOAP messages. These tokens (like Basic Authentication or SSL certificates for HTTP) can be used to identify the sender of the message. The specification does not require use of any particular token. Two commonly used tokens are <em>Username </em>tokens and <em>X509</em> tokens. Other tokens like <em>Kerberos</em> tokens can also be used. These tokens can be included directly in the <em>SOAP message header</em>, or an indirect reference to the token can be sent using digital signature or encryption.</li>
<li><em>Message Integrity </em>Message integrity ensures that the message was not tampered with on its way from the sender to the receiver. WS-Security provides a way to include <em>XML digital signatures</em> in the <em>SOAP</em> message <em>header</em> to help verify integrity. Exactly what parts of the message are signed or what digest/algorithms are used is left to be decided by the web-service provider.</li>
<li><em>Message Confidentiality</em>Message confidentiality means that on the wire, the message should not be readable. WS-Security specifies how the full message or parts of the message can be encrypted and sent so that they are unreadable to attackers. This will use <em>XML encryption</em> and the encryption related information is exchanged in the <em>SOAP</em> <em>header</em>. Either the whole message can be encrypted (like <em>HTTPS</em> transport encryption), or <em>parts</em> of the message are encrypted. Again, the encryption algorithms to be used, the way of exchanging keys (or tokens) is to be decided by the web-service provider.<span id="_marker"> </span></li>
</ol>
<p style="text-align:left;">In the next post, I am going to create a secure web services using JAXWS implementation Metro and create client for the service. Explaining the various types of security in more detail.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Document Management Consultant]]></title>
<link>http://spillerlaszlo.wordpress.com/?p=2165</link>
<pubDate>Mon, 14 Sep 2009 14:03:52 +0000</pubDate>
<dc:creator>Spiller László</dc:creator>
<guid>http://spillerlaszlo.wordpress.com/?p=2165</guid>
<description><![CDATA[Microsoft szerver operációs rendszerek (Windows 2000 Server, Windows 2003 Server) UNIX operációs ren]]></description>
<content:encoded><![CDATA[Microsoft szerver operációs rendszerek (Windows 2000 Server, Windows 2003 Server) UNIX operációs ren]]></content:encoded>
</item>
<item>
<title><![CDATA[Jornadas en Servicios Web y SOA. JSWEB 2009]]></title>
<link>http://soaengine.wordpress.com/2009/09/12/jornadas-en-servicios-web-y-soa-jsweb-2009/</link>
<pubDate>Sat, 12 Sep 2009 12:20:31 +0000</pubDate>
<dc:creator>soaengine</dc:creator>
<guid>http://soaengine.wordpress.com/2009/09/12/jornadas-en-servicios-web-y-soa-jsweb-2009/</guid>
<description><![CDATA[Las Jornadas Científico-Técnicas en Servicios Web y SOA se han configurado como punto de encuentro n]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="///Users/amurguzur/Library/Caches/TemporaryItems/moz-screenshot.png" alt="" />Las Jornadas Científico-Técnicas en Servicios Web y SOA se han configurado como punto de encuentro nacional de referencia sobre el uso y la adopción de las tecnologías y plataformas que proporcionan los servicios Web y las Arquitecturas Orientadas a Servicios. Las jornadas han conseguido mantener una creciente y equilibrada participación de los profesionales de la Industria, la Administración Pública e investigadores más relevantes del área. <strong>La V edición de estas jornadas tendrá lugar en Madrid, entre el 30 de Septiembre y el 1 de Octubre de 2009. (Acceso a la página oficial clickando la imagen)<br />
</strong></p>
<p><a href="http://www.jsweb.es/pages/callPapers.html"><img class="aligncenter" src="http://www.jsweb.es/images/banner.jpg" alt="" width="713" height="101" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The best open source performance load testing tool]]></title>
<link>http://jkvine.wordpress.com/2009/09/08/the-best-open-source-performance-load-testing-tool/</link>
<pubDate>Tue, 08 Sep 2009 04:33:18 +0000</pubDate>
<dc:creator>Nick</dc:creator>
<guid>http://jkvine.wordpress.com/2009/09/08/the-best-open-source-performance-load-testing-tool/</guid>
<description><![CDATA[For a comprehensive list of open source performance test tools please refer here Open Source Perform]]></description>
<content:encoded><![CDATA[For a comprehensive list of open source performance test tools please refer here Open Source Perform]]></content:encoded>
</item>
<item>
<title><![CDATA[Validar N&uacute;mero de IVA VIES]]></title>
<link>http://alskare.wordpress.com/2009/09/07/validar-nmero-de-iva-vies/</link>
<pubDate>Mon, 07 Sep 2009 22:52:10 +0000</pubDate>
<dc:creator>alskare</dc:creator>
<guid>http://alskare.wordpress.com/2009/09/07/validar-nmero-de-iva-vies/</guid>
<description><![CDATA[El otro día, hablando con la contable de la empresa, me comentó la posibilidad de añadir en las apli]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>El otro día, hablando con la contable de la empresa, me comentó la posibilidad de añadir en las aplicaciones la validación de unos “NIF” un poco especiales. Digo un poco especiales porque en principio no se trata de un número de identificación sino más bien es un registro de aquellas empresas “legalizadas” para poder trabajar con IVAs a nivel intracomunitario. Digo <em>legalizada</em> entre comillas puesto que desconozco totalmente si el medio para entrar en esa base de datos se realiza automáticamente al trabajar con empresas intracomunitarias o hace falta algún tipo de registro especial.</p>
<p>Bueno, el caso es que mala validación podemos crear si el origen es una base de datos, así que no me queda más remedio que empezar a buscar y encuentro lo que andaba buscando en lo que creo que es la AEAT Europea: <a title="http://ec.europa.eu/taxation_customs/vies/lang.do?fromWhichPage=vieshome&#38;selectedLanguage=ES" href="http://ec.europa.eu/taxation_customs/vies/lang.do?fromWhichPage=vieshome&#38;selectedLanguage=ES">http://ec.europa.eu/taxation_customs/vies/lang.do?fromWhichPage=vieshome&#38;selectedLanguage=ES</a>.</p>
<p>Dentro de los servicios informáticos con los que he trabajado, quizás éste sea uno de los más originales. De hecho, no existe una base de datos centralizada. Se trata de bases de datos con un ámbito del país local que va “replicando” con el resto de países (igual me he pasado al escribir “replicando”). Por otro lado, resulta que no todos los países atienden las 24 horas del día (igual los ordenadores se van a tomar un café): <a title="http://ec.europa.eu/taxation_customs/vies/viesspec.do" href="http://ec.europa.eu/taxation_customs/vies/viesspec.do">http://ec.europa.eu/taxation_customs/vies/viesspec.do</a></p>
<p>Al fin y al cabo, somos programadores y nuestros <em>profes</em> siempre nos han enseñado que debemos desglosar un problema gordo en problemas más pequeños para poder afrontarlos con mayor destreza, así que eso voy a hacer en estos momentos. Imagino que al final pasará como ha ocurrido con otra entrada en el blog (<a href="http://alskare.wordpress.com/2009/07/21/validar-nif-nie-cif/">Validar NIF, NIE, CIF</a> ), que empezó con una pequeña validación y se ha ido ampliando y mejorando con el tiempo. Así, el objetivo inicial será el de comprobar si el NIF introducido es correcto o no, siempre según el servicio de <strong>Fiscalidad y Unión Aduanera</strong>.</p>
<p>La primera me la doy en la frente. Resulta que para solicitar la validez de un Número de IVA, necesitamos el código del país y… ¿cómo no?, no encuentro ningún servicio que devuelva los países aceptados, así que hay que hacer una lectura del código HTML de la página para poder tenerlos todos. Para poder trabajar con los países y poder ponerlos como origen de datos de los controles se me ocurre hacer lo más sencillo, una clase List&#60;T&#62;.</p>
<h2>Paises</h2>
<div style="border-bottom:gray 1px solid;border-left:gray 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:consolas, &#39;font-size:8pt;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;margin:20px 0 10px;padding:4px;">
<pre style="line-height:12pt;background-color:#f4f4f4;width:100%;font-family:consolas, &#39;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#0000ff;">using</span> System;
<span style="color:#0000ff;">using</span> System.Collections.Generic;

<span style="color:#0000ff;">namespace</span> ValidacionVies
{
    <span style="color:#0000ff;">class</span> Pais : IComparable
    {
        <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> CodigoPais { get; set; }
        <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> NombrePais { get; set; }

        <span style="color:#0000ff;">public</span> Pais(<span style="color:#0000ff;">string</span> codigoPais, <span style="color:#0000ff;">string</span> pais)
        {
            <span style="color:#0000ff;">this</span>.CodigoPais = codigoPais;
            <span style="color:#0000ff;">this</span>.NombrePais  = pais;
        }

        <span style="color:#008000;">// Se implementa la interfaz IComparable para poder ordenar por el país </span>
        <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> CompareTo(<span style="color:#0000ff;">object</span> obj)
        {
            <span style="color:#0000ff;">return</span> <span style="color:#0000ff;">this</span>.NombrePais.CompareTo(((Pais)obj).NombrePais);
        }
    }

    <span style="color:#0000ff;">class</span> Paises : List&#60;Pais&#62;
    {
        <span style="color:#0000ff;">public</span> Paises()
        {
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;AT&#34;</span>, <span style="color:#006080;">&#34;Austria&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;BE&#34;</span>, <span style="color:#006080;">&#34;Bélgica&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;BG&#34;</span>, <span style="color:#006080;">&#34;Bulgaria&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;CY&#34;</span>, <span style="color:#006080;">&#34;Chipre&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;CZ&#34;</span>, <span style="color:#006080;">&#34;Chequia&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;DE&#34;</span>, <span style="color:#006080;">&#34;Alemania&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;DK&#34;</span>, <span style="color:#006080;">&#34;Dinamarca&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;EE&#34;</span>, <span style="color:#006080;">&#34;Estonia&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;EL&#34;</span>, <span style="color:#006080;">&#34;Grecia&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;ES&#34;</span>, <span style="color:#006080;">&#34;España&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;FI&#34;</span>, <span style="color:#006080;">&#34;Finlandia&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;FR&#34;</span>, <span style="color:#006080;">&#34;Francia&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;GB&#34;</span>, <span style="color:#006080;">&#34;Reino Unido&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;HU&#34;</span>, <span style="color:#006080;">&#34;Hungría&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;IE&#34;</span>, <span style="color:#006080;">&#34;Irlanda&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;IT&#34;</span>, <span style="color:#006080;">&#34;Italia&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;LT&#34;</span>, <span style="color:#006080;">&#34;Lituania&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;LU&#34;</span>, <span style="color:#006080;">&#34;Luxemburgo&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;LV&#34;</span>, <span style="color:#006080;">&#34;Letonia&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;MT&#34;</span>, <span style="color:#006080;">&#34;Malta&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;NL&#34;</span>, <span style="color:#006080;">&#34;Países Bajos&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;PL&#34;</span>, <span style="color:#006080;">&#34;Polonia&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;PT&#34;</span>, <span style="color:#006080;">&#34;Portugal&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;RO&#34;</span>, <span style="color:#006080;">&#34;Rumania&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;SE&#34;</span>, <span style="color:#006080;">&#34;Suecia&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;SI&#34;</span>, <span style="color:#006080;">&#34;Eslovenia&#34;</span>));
            <span style="color:#0000ff;">this</span>.Add(<span style="color:#0000ff;">new</span> Pais(<span style="color:#006080;">&#34;SK&#34;</span>, <span style="color:#006080;">&#34;Eslovaquia&#34;</span>));

            <span style="color:#0000ff;">this</span>.Sort();
        }
    }

}</pre>
</div>
<p>&#160;</p>
<p>El problema lo encontraré el día que haya que hacer alguna modificación, así que tomo nota de la mejora que podría hacerse creando un XML o un simple TXT para poder almacenar los países.</p>
<p>Una vez tenemos los países, conociendo los resultados que nos devuelve el WebService, es cuestión de empezar a preparar un entorno de interacción con el usuario:</p>
<div style="border-bottom:gray 1px solid;border-left:gray 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:consolas, &#39;font-size:8pt;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;margin:20px 0 10px;padding:4px;">
<pre style="line-height:12pt;background-color:#f4f4f4;width:100%;font-family:consolas, &#39;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">- <span style="color:#0000ff;">&#60;</span><span style="color:#800000;">element</span> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=&#34;checkVatResponse&#34;</span><span style="color:#0000ff;">&#62;</span>
- <span style="color:#0000ff;">&#60;</span><span style="color:#800000;">complexType</span><span style="color:#0000ff;">&#62;</span>
- <span style="color:#0000ff;">&#60;</span><span style="color:#800000;">sequence</span><span style="color:#0000ff;">&#62;</span>
  <span style="color:#0000ff;">&#60;</span><span style="color:#800000;">element</span> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=&#34;countryCode&#34;</span> <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#34;xsd:string&#34;</span> <span style="color:#0000ff;">/&#62;</span>
  <span style="color:#0000ff;">&#60;</span><span style="color:#800000;">element</span> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=&#34;vatNumber&#34;</span> <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#34;xsd:string&#34;</span> <span style="color:#0000ff;">/&#62;</span>
  <span style="color:#0000ff;">&#60;</span><span style="color:#800000;">element</span> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=&#34;requestDate&#34;</span> <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#34;xsd:date&#34;</span> <span style="color:#0000ff;">/&#62;</span>
  <span style="color:#0000ff;">&#60;</span><span style="color:#800000;">element</span> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=&#34;valid&#34;</span> <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#34;xsd:boolean&#34;</span> <span style="color:#0000ff;">/&#62;</span>
  <span style="color:#0000ff;">&#60;</span><span style="color:#800000;">element</span> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=&#34;name&#34;</span> <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#34;xsd:string&#34;</span> <span style="color:#0000ff;">/&#62;</span>
  <span style="color:#0000ff;">&#60;</span><span style="color:#800000;">element</span> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=&#34;address&#34;</span> <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#34;xsd:string&#34;</span> <span style="color:#0000ff;">/&#62;</span>
  <span style="color:#0000ff;">&#60;/</span><span style="color:#800000;">sequence</span><span style="color:#0000ff;">&#62;</span>
  <span style="color:#0000ff;">&#60;/</span><span style="color:#800000;">complexType</span><span style="color:#0000ff;">&#62;</span>
  <span style="color:#0000ff;">&#60;/</span><span style="color:#800000;">element</span><span style="color:#0000ff;">&#62;</span></pre>
</div>
<p>Como que me hace gracia jugar un poco con las llamadas asíncronas al Web Service, opto por crear una aplicación WinForms que me permita realizar las primeras pruebas, así, me sale algo así como lo siguiente (ya dice mi jefe que lo mío no es el diseño):</p>
<p><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="http://alskare.files.wordpress.com/2009/09/image.png?w=333&#038;h=326" width="333" height="326" /> </p>
<p>&#160;</p>
<p>De hecho, en el formulario no hay nada raro, un combo en el que se cargan los países (<strong>cboPaises</strong>), un textBox en el que deberá teclearse el número a validar (<strong>txtVatNumber</strong>) y los textBox de resultado (<strong>rstXXXX</strong>).</p>
<p>Al lío:</p>
<h2>Código del formulario</h2>
<div style="border-bottom:gray 1px solid;border-left:gray 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:consolas, &#39;font-size:8pt;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;margin:20px 0 10px;padding:4px;">
<pre style="line-height:12pt;background-color:#f4f4f4;width:100%;font-family:consolas, &#39;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#0000ff;">using</span> System;
<span style="color:#0000ff;">using</span> System.Windows.Forms;
<span style="color:#0000ff;">using</span> ValidacionVies.eu.europa.ec;

<span style="color:#0000ff;">namespace</span> ValidacionVies
{
    <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">partial</span> <span style="color:#0000ff;">class</span> Form1 : Form
    {
        checkVatService cvs;

        <span style="color:#0000ff;">public</span> Form1()
        {
            InitializeComponent();

            <span style="color:#008000;">// Asignación de eventos</span>
            <span style="color:#0000ff;">this</span>.Load += <span style="color:#0000ff;">new</span> EventHandler(Form1_Load);
            <span style="color:#0000ff;">this</span>.cmdValida.Click += <span style="color:#0000ff;">new</span> EventHandler(cmdValida_Click);
        }

        <span style="color:#0000ff;">void</span> Form1_Load(<span style="color:#0000ff;">object</span> sender, EventArgs e)
        {
            lblProgreso.Text = <span style="color:#0000ff;">string</span>.Empty;

            <span style="color:#008000;">// Carga de paises y asignación al combo</span>
            Paises paises = <span style="color:#0000ff;">new</span> Paises();
            cboPaises.DataSource = paises;
            cboPaises.DisplayMember = <span style="color:#006080;">&#34;NombrePais&#34;</span>;
            cboPaises.ValueMember = <span style="color:#006080;">&#34;CodigoPais&#34;</span>;
            cboPaises.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            cboPaises.AutoCompleteSource = AutoCompleteSource.ListItems;

            <span style="color:#008000;">// Asignación del evento IndexChanged para el combo.</span>
            cboPaises.SelectedIndexChanged += <span style="color:#0000ff;">new</span> EventHandler(cboPaises_SelectedIndexChanged);
            txtCountryCode.Text = cboPaises.SelectedValue.ToString();
        }

        <span style="color:#0000ff;">void</span> cboPaises_SelectedIndexChanged(<span style="color:#0000ff;">object</span> sender, EventArgs e)
        {
            ComboBox cbo = (ComboBox)sender;
            txtCountryCode.Text = cbo.SelectedValue.ToString();
        }

        <span style="color:#0000ff;">void</span> cmdValida_Click(<span style="color:#0000ff;">object</span> sender, EventArgs e)
        {
            lblProgreso.Text = <span style="color:#006080;">&#34;Consultando&#34;</span>;

            <span style="color:#008000;">// Llamada asíncrona al WebService</span>
            cvs = <span style="color:#0000ff;">new</span> checkVatService();
            cvs.checkVatCompleted += <span style="color:#0000ff;">new</span> checkVatCompletedEventHandler(cvs_checkVatCompleted);
            cvs.checkVatAsync(txtCountryCode.Text, txtVatNumber.Text);
        }

        <span style="color:#0000ff;">void</span> cvs_checkVatCompleted(<span style="color:#0000ff;">object</span> sender, checkVatCompletedEventArgs e)
        {
            <span style="color:#008000;">// Respuesta de la llamada asíncrona al WebService</span>
            <span style="color:#0000ff;">try</span>
            {
                <span style="color:#0000ff;">if</span> (!e.Cancelled)
                {
                    lblProgreso.Text = <span style="color:#0000ff;">string</span>.Empty;
                    rstAddress.Text = e.address;
                    rstCountryCode.Text = e.countryCode;
                    rstName.Text = e.name;
                    rstResult.Text = e.Result.ToShortDateString();
                    rstCorrecto.Text = e.valid ? <span style="color:#006080;">&#34;Sí&#34;</span> : <span style="color:#006080;">&#34;No&#34;</span>;
                }
                <span style="color:#0000ff;">else</span>
                {
                    lblProgreso.Text = <span style="color:#0000ff;">string</span>.Empty;
                    rstAddress.Text = <span style="color:#0000ff;">string</span>.Empty;
                    rstCountryCode.Text = <span style="color:#0000ff;">string</span>.Empty;
                    rstName.Text = <span style="color:#0000ff;">string</span>.Empty;
                    rstResult.Text = <span style="color:#0000ff;">string</span>.Empty;
                    rstCorrecto.Text = <span style="color:#0000ff;">string</span>.Empty;
                }
            }
            <span style="color:#0000ff;">catch</span> (System.Reflection.TargetInvocationException ex)
            {
                lblProgreso.Text = ex.Message;
            }
            <span style="color:#0000ff;">catch</span> (Exception ex)
            {
                lblProgreso.Text = <span style="color:#006080;">&#34;Se ha producido un error &#34;</span> + ex.GetType().ToString();

            }
        }
    }
}</pre>
</div>
<p>Ya está. ¡Qué bonitas se ven las cosas cuando están acabadas!</p>
<p>Por cierto, se si alguien tiene interés, puede descargar el proyecto en VisualStudio2008: <a href="http://www.velasco.biz/html/descargas/ValidacionVies.zip" target="_blank">Descargar</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Failed to load viewstate Error]]></title>
<link>http://panvega.wordpress.com/2009/08/27/sharepoint-webpart-dyn-controls-viewstate-error/</link>
<pubDate>Thu, 27 Aug 2009 20:30:36 +0000</pubDate>
<dc:creator>PANVEGA</dc:creator>
<guid>http://panvega.wordpress.com/2009/08/27/sharepoint-webpart-dyn-controls-viewstate-error/</guid>
<description><![CDATA[When I developed a Custom Webpart I had to build some dynamic added ASP Control (DropDownList etc.) ]]></description>
<content:encoded><![CDATA[When I developed a Custom Webpart I had to build some dynamic added ASP Control (DropDownList etc.) ]]></content:encoded>
</item>
<item>
<title><![CDATA[How to create a Metro JAX-WS portable webservice]]></title>
<link>http://thetechtips.wordpress.com/2009/08/27/how-to-create-a-metro-jax-ws-portable-webservice/</link>
<pubDate>Thu, 27 Aug 2009 16:21:37 +0000</pubDate>
<dc:creator>thetechtips</dc:creator>
<guid>http://thetechtips.wordpress.com/2009/08/27/how-to-create-a-metro-jax-ws-portable-webservice/</guid>
<description><![CDATA[In this tip, we will go over the steps for creating a webservice using the Metro stack that can be d]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:left;">In this tip, we will go over the steps for creating a webservice using the Metro stack that can be deployed into any web container. This example will deploy it to Tomcat.<!--more--></p>
<p style="text-align:left;"><strong>System Environment</strong></p>
<ol style="text-align:left;">
<li>JRE 1.5.0_10</li>
<li>Tomcat 5.5.28</li>
<li>Eclipse 3.2</li>
</ol>
<p style="text-align:left;"><strong>Introduction</strong></p>
<p style="text-align:left;">JAXWS stands for Java API for XML Web Services. It is the new web services specification for creating and consuming web services in J2EE. It makes use of annotations for creating web services and their clients.</p>
<p style="text-align:left;">JAXB stands for Java API for XML Binding. It is the new xml binding specification for Java to XML and XML to Java binding (again makes use of annotations). The bindings can also be specified using xml files.</p>
<p style="text-align:left;">Metro is Sun&#8217;s web services stack also packaged with the Glassfish server. It includes WSIT (Web Service Interoperability Technologies) in addition to JAXWS-RI and JAXB-RI (Sun&#8217;s reference implementations of the specs).</p>
<p style="text-align:left;"><strong>Creating the Service</strong></p>
<p style="text-align:left;">Before starting, download Metro and extract the libs. Lets create a simple servlet endpoint using a POJO now.</p>
<ol style="text-align:left;">
<li>Create a Dynamic Web Project in Eclipse (lets name it MetroWebserviceSample).</li>
<li>Copy the Metro download&#8217;s webservices-api.jar, webservices-rt.jar and webservices-extra.jar to WEB-INF/lib.</li>
<li>Under the java source directory (the &#8217;src&#8217; directory), create a new package named test.metro.sample.</li>
<li>Create a class TestService.java under test.metro.sample package. 
<pre class="brush: java;">

package test.metro.sample;

import javax.jws.WebService;

@WebService
public class TestService {
 public String greet (String name) {
  if (name != null &amp;&amp; name.trim().length() &gt; 0) {
   return &quot;Hello &quot; + name + &quot;!&quot;;
  } else {
   return &quot;No one to greet.&quot;;
  }
 }
}
</pre>
</li>
<li>Configure WSServlet and WSServletContextListener to web.xml. This servlet should be set up to load on start-up
<pre class="brush: xml;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;web-app id=&quot;WebApp_ID&quot; version=&quot;2.4&quot; xmlns=&quot;&lt;a href=&quot;http://java.sun.com/xml/ns/j2ee&quot;&gt;http://java.sun.com/xml/ns/j2ee&lt;/a&gt;&quot; xmlns:xsi=&quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&quot; xsi:schemaLocation=&quot;&lt;a href=&quot;http://java.sun.com/xml/ns/j2ee&quot;&gt;http://java.sun.com/xml/ns/j2ee&lt;/a&gt; &lt;a href=&quot;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&quot;&gt;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&lt;/a&gt;&quot;&gt;
 &lt;display-name&gt;MetroWebserviceSample&lt;/display-name&gt;
 
	&lt;listener&gt;
	&lt;listener-class&gt;com.sun.xml.ws.transport.http.servlet.WSServletContextListener&lt;/listener-class&gt;
 &lt;/listener&gt;
 &lt;servlet&gt;
    &lt;description&gt;JAX-WS + WSIT endpoint - wsit-enabled-fromjava&lt;/description&gt;
    &lt;display-name&gt;wsit-enabled-fromjava&lt;/display-name&gt;
    &lt;servlet-name&gt;TestWebService&lt;/servlet-name&gt;
    &lt;servlet-class&gt;com.sun.xml.ws.transport.http.servlet.WSServlet&lt;/servlet-class&gt;
    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
 &lt;/servlet&gt;
 &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;TestWebService&lt;/servlet-name&gt;
    &lt;url-pattern&gt;/test&lt;/url-pattern&gt;
 &lt;/servlet-mapping&gt;
&lt;/web-app&gt;
</pre>
</li>
<li>The WSServlet looks at a config file sun-jaxws.xml to deploy the webservices specified in this config file. Create the following sun-jaxws.xml and put it in the WEB-INF directory
<pre class="brush: xml;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; 

&lt;endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'&gt;
    &lt;endpoint name='TestService'
        implementation='test.metro.sample.TestService'
        url-pattern='/test'/&gt;
&lt;/endpoints&gt;
</pre>
</li>
<li>Right click the eclipse project MetroWebserviceSample and export to a .war  file (MetroWebserviceSample.war).</li>
<li>Copy MetroWebserviceSample.war to &#60;TOMCAT_HOME&#62;/webapps and start the Tomcat server.</li>
<li>The WSDL can be looked up at <a href="http://localhost:8080/MetroWebserviceSample/test?wsdl">http://localhost:8080/MetroWebserviceSample/test?wsdl</a>.</li>
</ol>
<p style="text-align:left;">SOAP-UI can be used to quickly test that the webservice is working. Eclipse also has a tool called, &#8216;Web Services Explorer&#8217; which can be used to quickly test webservices. The steps for creating a Java client will be included later.</p>
<p style="text-align:left;">T3</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Senior SOA Architect - DataPower Consultant]]></title>
<link>http://anteogroup.wordpress.com/2009/08/27/senior-soa-architect-datapower-consultant/</link>
<pubDate>Thu, 27 Aug 2009 14:40:35 +0000</pubDate>
<dc:creator>anteogroup</dc:creator>
<guid>http://anteogroup.wordpress.com/2009/08/27/senior-soa-architect-datapower-consultant/</guid>
<description><![CDATA[Our client is a federally funded financial institution based in Atlanta, GA. They are currently look]]></description>
<content:encoded><![CDATA[Our client is a federally funded financial institution based in Atlanta, GA. They are currently look]]></content:encoded>
</item>

</channel>
</rss>
