<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AmbiSoft</title>
	<atom:link href="http://ambisoft.nl/feed/" rel="self" type="application/rss+xml" />
	<link>http://ambisoft.nl</link>
	<description>Software ontwikkelen met Ambitie</description>
	<lastBuildDate>Sat, 15 Aug 2009 18:32:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Agile Whiteboard</title>
		<link>http://ambisoft.nl/berichten/agile-whiteboard/</link>
		<comments>http://ambisoft.nl/berichten/agile-whiteboard/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 16:40:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://ambisoft.nl/?p=66</guid>
		<description><![CDATA[Download Agile Whiteboard: agilewhiteboard.pdf
Een agile whiteboard is een belangrijk onderdeel van een agile project. Veel agile teams toveren een gewoon whiteboard om tot een agile whiteboard. Dit gebeurt door vakken op het bord te tekenen met: To Do, In progess, Done en nog veel meer informatie. Sommige teams weten al precies wat ze op het [...]]]></description>
			<content:encoded><![CDATA[<p>Download Agile Whiteboard: <a href="http://ambisoft.nl/wordpress/wp-content/uploads/2009/08/agilewhiteboard.pdf">agilewhiteboard.pdf</a></p>
<p>Een agile whiteboard is een belangrijk onderdeel van een agile project. Veel agile teams toveren een gewoon whiteboard om tot een agile whiteboard. Dit gebeurt door vakken op het bord te tekenen met: To Do, In progess, Done en nog veel meer informatie. Sommige teams weten al precies wat ze op het bord willen zien en kaderen de vakken af met zwarte plakband. Andere teams gebruiken een gelamineerde plaat waar alle vakken al op zijn voorgedrukt en waar met een whiteboard marker op geschreven kan worden. Door de jaren heen zijn er heel wat verschillende <a title="Agile Whiteboards" href="http://images.google.nl/images?q=agile%20whiteboard">agile whiteboards</a> bedacht.</p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_78" class="wp-caption aligncenter" style="width: 464px;">
<dt class="wp-caption-dt"><a href="http://ambisoft.nl/wordpress/wp-content/uploads/2009/08/agilewhiteboard.png"><img class="size-full wp-image-78" title="agilewhiteboard" src="http://ambisoft.nl/wordpress/wp-content/uploads/2009/08/agilewhiteboard.png" alt="Agile Whiteboard" width="454" height="324" /></a></dt>
</dl>
</div>
<p>Mocht jouw team ook een professioneel Agile Whiteboard willen gaan gebruiken dan is deze makkelijk zelf te maken. Aan het begin van dit artikel is een pdf te downloaden met een agile whiteboard die bij een drukker op ieder gewenst formaat is af te drukken (bijvoorbeeld A0). Laat de afgedrukte plaat lamineren (voorzien van een plastieke laag) zodat er met een gewone whiteboard marker op geschreven kan worden. Mocht jouw team extra informatie kwijt willen dan kan dat in de twee vlakken met &#8216;free space&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambisoft.nl/berichten/agile-whiteboard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Backlog Planning</title>
		<link>http://ambisoft.nl/berichten/backlog-planning/</link>
		<comments>http://ambisoft.nl/berichten/backlog-planning/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 08:46:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Scrum]]></category>
		<category><![CDATA[backlog]]></category>
		<category><![CDATA[stories]]></category>

		<guid isPermaLink="false">http://ambisoft.nl/?p=22</guid>
		<description><![CDATA[De Project Backlog is een lijst met al het werk dat relevant is voor een Scrum project. Het werk wordt beschreven in zogenoemde stories, wat doorgaans niet meer is dan een paar regels tekst. De backlog is een dynamische lijst, gedurende het project zullen stories van de lijst afvallen en andere erbij komen. De lijst zal initieel globaal beschreven stories bevatten die gedurende het project steeds verder worden uitgewerkt.]]></description>
			<content:encoded><![CDATA[<p>De Project Backlog is een lijst met al het werk dat relevant is voor een Scrum project. Het werk wordt beschreven in zogenoemde stories, wat doorgaans niet meer is dan een paar regels tekst. De backlog is een dynamische lijst, gedurende het project zullen stories van de lijst afvallen en andere erbij komen. De lijst zal initieel globaal beschreven stories bevatten die gedurende het project steeds verder worden uitgewerkt.</p>
<h2>Initiële Backlog</h2>
<p>In de opstartfase van het project (ook wel sprint 0 genoemd) wordt de initiële backlog gemaakt. Deze backlog bevat ruwweg alle functionaliteit die tijdens het project opgeleverd gaat worden. Vermijd in deze fase het te ver uitwerken van alle functionaliteiten. Projecten die gewend zijn om op een waterval achtige manier te werken kunnen geneigd zijn om de backlog te gedetailleerd en te volledig uit te werken. Nadat alle functionaliteit bekend is is het van belang om hier een tijdsindicatie aan te hangen en om deze te prioriteren. Ontwikkelaars dragen zorg voor het inschatten van de tijd. Daarna zal de Product Owner zorg dragen voor de juiste prioriteiten. De stories met de hoogste prioriteit moeten zo ver worden uitgewerkt zodat er in ieder geval een eerste sprint gepland kan worden. Het uitwerken van de backlog kost tijd, dus vermijd het uitwerken van zaken die wellicht later pas relevant gaan worden. De hoeveelheid werk die er in een iteratie gepland kan worden wordt bepaald door de teamgrootte en de lengte van een Sprint. Houd teams klein (richtlijn is niet meer dan 8 ontwikkelaars) en houd de iteraties kort (richtlijn is niet langer dan 3 weken).</p>
<h2>Backlog bijhouden</h2>
<p>Als de backlog in een keer volledig en goed uit te werken zou zijn, dan is het maar de vraag of een agile ontwikkelmethode de meeste geschikte is voor het project. In de praktijk blijkt echter vaak dat gedurende het project wensen veranderen, functionaliteit initieel ontbrak, andere stukken functionaliteit verkeerd ingeschat waren etc. Om op deze veranderingen en voortschreidend inzicht in te kunnen spelen moet de backlog gedurende het project worden bijgehouden. Dit kan het beste gebeuren door een persoon die de functionaliteiten kan afstemmen met betrokkenen en stakeholders. Deze rol is doorgaans het meest geschikt voor de Product Owner. Aan het einde van een sprint geeft het team een presentatie (sprint review), van de opgeleverde functionateit, aan de Product Owner en Stakeholders. Deze presentatie kan leiden tot nieuw inzicht wat leidt tot wijzigingen aan de backlog. Direct na de Sprint review zal de backlog,voor de laatste keer voor de nieuwe sprint, bijgewerkt worden. Als de backlog weer helemaal up-to-date is kunnen de issues met de hoogste prioriteit aan de volgende iteratie worden toegekend en begint het proces weer van voren af aan.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambisoft.nl/berichten/backlog-planning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Releasen met Maven</title>
		<link>http://ambisoft.nl/berichten/releasen-met-maven/</link>
		<comments>http://ambisoft.nl/berichten/releasen-met-maven/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 16:17:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[releasen]]></category>

		<guid isPermaLink="false">http://ambisoft.nl/?p=15</guid>
		<description><![CDATA[Maven heeft een <a title="Maven Release Plugin" href="http://maven.apache.org/plugins/maven-release-plugin">release plugin</a> ontwikkeld waarmee makkelijk releases gemaakt kunnen worden. Zeker als je vaak releases maakt kan deze plugin werk uit handen nemen.]]></description>
			<content:encoded><![CDATA[<p>Maven heeft een <a title="Maven Release Plugin" href="http://maven.apache.org/plugins/maven-release-plugin">release plugin</a> ontwikkeld waarmee makkelijk releases gemaakt kunnen worden. Zeker als je vaak releases maakt kan deze plugin werk uit handen nemen. De plugin helpt bij het aanpassen van versienummers, het taggen van code in de source repository, het copieren van een release naar de maven repository en nog een aantal zaken. Toen wij de maven release plugin gingen gebruiken kwamen we er achter dat onze manier van releasen niet helemaal te verenigen was met hoe de maven release plugin werkt. De documentatie over de plugin houdt helaas niet over en daardoor kan het onduidelijk zijn hoe je de plugin moet gebruiken. Dit artikel laat zien hoe je een maven project moet inrichten om met de release plugin te kunnen werken. </p>
<h2>Snapshot versus Stable</h2>
<p>Maven gebruikt twee soorten versies: snapshot en stable versies. Een project wordt gemarkeerd als snapshot versie wanneer deze in ontwikkeling is. Andere projecten die gebruik maken van een snapshot versie zullen altijd de laatste snapshot gebruiken, hierdoor hebben deze projecten altijd de nieuwste versie tot hun beschikking. Snapshot versies zijn handig op het moment dat code in ontwikkeling is. Een stable versie daarentegen is een versie die stabiel (af) is. Deze versie verandert niet meer. Andere projecten die op een stable versie dependen zullen altijd gebruik maken van dezelfde code. In de development- omgeving zul je vaak gebruik maken van snapshot versies. In test, acceptatie en productie wordt doorgaans met stable versies gewerkt. Het is in die omgevingen immers van belang dat een project niet zomaar verandert.</p>
<h2>Release strategie</h2>
<p>Veel projecten gebruiken hun eigen release strategieën en dat is natuurlijk prima. Het enige probleem is dat als je de maven release plugin wilt gaan gebruiken je een strategie moet gebruiken die samengaat met hoe de plugin werkt. Onderstaand figuur laat een mogelijke strategie zien die prima samengaat met de release plugin.<br/><br />
<a href="http://ambisoft.nl/wordpress/wp-content/uploads/2008/10/releasen1.gif"><img class="aligncenter size-full wp-image-20" title="releasen1" src="http://ambisoft.nl/wordpress/wp-content/uploads/2008/10/releasen1.gif" alt="" width="500" height="516" /></a></p>
<p>Het voorbeeld laat zien dat je begint te ontwikkelen met een snapshot versie (het zou mooi zijn als je project af is zo gauw je er aan begint <img src='http://ambisoft.nl/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Nadat de gewenste functionaliteit is ontwikkeld en het project alle technische tests doorstaat kan de versie als stable worden bestempeld. De stable versie wordt vervolgens op de test-omgeving gezet waar men kan beginnen met het testen van de release. Bovenstaand figuur laat zien dat de 1.0 release fouten bevat en wordt afgekeurd. De ontwikkelaars, die al met de volgende 1.1-snapshot versie bezig zijn, kunnen de testbevindingen verwerken en een nieuwe stable release maken. Als de nieuwe versie weer door alle technische tests komt wordt deze gereleased en op test gezet. Als de tests goed gaan wordt de release doorgeschoven over acceptatie (niet in de figuur) en vervolgens naar productie. Als het testen lang duurt en de ontwikkelaars al bezig zijn met de volgende functionaliteiten dan kan het handig zijn om een <a href="http://svnbook.red-bean.com/en/1.1/ch04.html" title="Branching">branch</a> te maken. Er kan ook voor gekozen worden om de bevindingen in de nieuwe release mee te nemen. Theoretisch is het maken van branches de netste manier van werken. In de praktijk is het werken met branches arbeidsintensief en vaak niet echt nodig. De maven release plugin heeft ook support voor branches.</p>
<h2>Project voorbereiden</h2>
<p>Om gebruik te kunnen maken van de Maven release plugin moet het project voorzien worden van informatie over de source repository en de lokatie van de maven repository. De volgende informatie moet aan de pom.xml worden toegevoegd.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;scm<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;connection<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>scm:svn:http://ambisoft.nl/java/release/<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/connection<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/scm<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;distributionManagement<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ambirepo<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Ambisoft Repository<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>scp:http://ambisoft.nl/repository<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;snapshotRepository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ambirepo<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Ambisoft Snapshot Repository<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>scp:http://ambisoft.nl/snapshot-repository<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/snapshotRepository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/distributionManagement<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h2>Gebruik van release plugin</h2>
<p>Om te beginnen creëer een Maven project met het volgende commando.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mvn archetype:create <span style="color: #660033;">-DgroupId</span>=nl.ambisoft.release <span style="color: #660033;">-DartifactId</span>=release</pre></div></div>

<p>Maven maakt nu een project aan met een standaard directory structuur en een standaard pom. De versie van het project wordt automatisch op release-1.0-SNAPSHOT gezet. Het project zal uitgebreid moeten worden met de informatie beschreven in de voorgaande stap. Een tip is om voor algemene functionaliteit een parent pom te maken zodat de instellingen voor alle projecten beschikbaar zijn.<br />
Nu dat het Maven project klaar is kan er begonnen worden met ontwikkelen. Als alle functionaliteiten zijn geïmplementeerd en de technische tests falen niet dan kan een release gemaakt worden. Het releasen wordt gedaan met het volgende commando.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mvn release:prepare</pre></div></div>

<p>Maven controleert of alle code in de source repository is ingecheckt. Vervolgens wordt de pom gecontroleerd op snapshot dependencies. Een stable release mag immers geen dependencies hebben op snapshot versies (want dan kan de release zelf nooit stable zijn). De versie in de pom wordt aangepast naar release-1.0. Vervolgens worden de technische tests uitgevoerd. Als dat allemaal goed gaat wordt de code gecommit in de source repository. De pom wordt weer aangepast zodat er verder gewerkt kan gaan worden met een release-1.1-snapshot. Een volledige lijst van wat het prepare commando doet is te vinden op de <a href="http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html" title="release:prepare">release:prepare</a> voorbeeld pagina.</p>
<p>Het prepare commando zorgt ervoor dat er een nieuwe stable en een snapshot release gemaakt wordt. Om er nu voor te zorgen dat de stable release in de maven repository terecht komt kan het volgende commando gebruikt worden. Als het ontwikkelteam met maven sites werkt dan kan deze automatisch geupdate worden.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mvn release:perform</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ambisoft.nl/berichten/releasen-met-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Makkelijk webservices ontwikkelen met JSR-181</title>
		<link>http://ambisoft.nl/berichten/makkelijk-webservices-maken-met-jsr-181/</link>
		<comments>http://ambisoft.nl/berichten/makkelijk-webservices-maken-met-jsr-181/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 12:53:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[soa]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://ambisoft.nl/?p=13</guid>
		<description><![CDATA[JSR-181 zorgt ervoor dat een J2EE container Java geannoteerde bestanden makkelijk kan interpreteren als web services. Een hele zin, maar onderstaand voorbeeld laat zien dat het echt makkelijk is om met JSR-181een web service te maken.]]></description>
			<content:encoded><![CDATA[<p>JSR-181 zorgt ervoor dat een J2EE container Java geannoteerde bestanden makkelijk kan interpreteren als web services. Een hele zin, maar onderstaand voorbeeld laat zien hoe makkelijk het is om met JSR-181 een web service te ontwikkelen.</p>
<p>Dit artikel laat in 5 stappen zien hoe je een JSR-181 project van a tot z kunt opbouwen. Stap 1 en 2 illustreren hoe je m.b.v. <a href="http://maven.apache.org/">Maven</a> een project snel kunt inrichten. Als je Maven nog niet kent moet je daar zeker even na kijken. Mocht je Maven helemaal niks vinden begin dan bij stap 3. Alle gebruikte code en configuratie is te vinden in de AmbiSoft repository (<a title="ambisoft.nl/java/jws" href="http://ambisoft.nl/java/jws" target="_blank">ambisoft.nl/java/jws</a>).</p>
<h2>Stap 1 &#8211; Aanmaken van een project</h2>
<p>Maven projecten hebben altijd dezelfde directory structuur. Dit heeft twee grote voordelen: Maven weet wat hij met het project kan doen en ontwikkelaars hebben snel door wat waar staat. Het automatisch genereren van een Maven project kan met het volgende commando.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mvn archetype:create <span style="color: #660033;">-DgroupId</span>=nl.ambisoft.jws <span style="color: #660033;">-DartifactId</span>=jws</pre></div></div>

<p>Maven zal een aantal directories en een POM genereren. Aan de gegenereerde POM moet een dependency worden toegevoegd die het mogelijk maakt dat we in het project JSR-181 kunnen gaan gebruiken. Er zijn verschillende JSR-181 implementaties, maar voor dit voorbeeld voegen we de volgende dependency toe.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>jboss<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>jboss-jaxws<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.2.1.GA<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>jboss<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://repository.jboss.com/maven2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h2>Stap 2 &#8211; Maak het project beschikbaar in Eclipse</h2>
<p>Door het project beschikbaar te maken voor Eclipse kun je straks makkelijker gaan sleutelen aan de gemaakte webservice. Je maakt een maven project beschikbaar voor Eclipse met het volgende commando.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mvn eclipse:eclipse</pre></div></div>

<h2>Stap 3 &#8211; Informeer de J2EE container over de webservice</h2>
<p>Net zoals een JSP binnen een J2EE container (uiteindelijk) als een servlet beschikbaar wordt gesteld, geldt dat ook voor een webservice. De J2EE container ziet de te maken webservice dus als een servlet. In de web.xml geef je aan waar de J2EE container de webservice kan vinden, de container zorgt er dan voor dat alles automatisch gaat werken. Vermeld voor het voorbeeld de volgende informatie in de web.xml</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>HelloWorldWebservice<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>nl.ambisoft.jws.HelloWorldWebservice<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>HelloWorldWebservice<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/HelloWorldWebservice<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h2>Stap 4 &#8211; Het maken van de webservice</h2>
<p>De webservice is een gewoon Java object waar je verder niets voor hoeft te doen. Je hoeft dus geen WSDL te maken (phuw), geen XSD&#8217;s, niets van dat. Maak een Java object  aan met het volgende code fragment.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">@WebService<span style="color: #009900;">&#40;</span>name <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;HelloWorldWebservice&quot;</span>, targetNamespace <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://www.ambisoft.nl/helloWorldWebservice&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> HelloWorldWebservice <span style="color: #009900;">&#123;</span>
	@WebMethod
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> helloWorld<span style="color: #009900;">&#40;</span>@WebParam<span style="color: #009900;">&#40;</span>name <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;message&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #003399;">String</span> message<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;Hello - &quot;</span> <span style="color: #339933;">+</span> message<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>De <strong>@WebService</strong> annotatie zorgt ervoor dat de J2EE container dit java object als webservice beschikbaar zal stellen. De webservice wordt gepubliseerd op /HelloWorldWebservice/HelloWorldWebservice. De WSDL wordt automatisch gegenereerd en is te vinden op /HelloWorldWebservice/HelloWorldWebservice?wsdl. Het eerste deel van de URI wordt bepaald door de servlet mapping in de web.xml, het tweede deel van de URI wordt bepaald door het &#8216;name&#8217; attribuut uit de @webservice annotatie.</p>
<p>De <strong>@WebMethod</strong> annotatie zorgt ervoor dat de geannoteerde methode beschikbaar komt in de gegenereerde webserivce.</p>
<p>De <strong>@WebParam</strong> annotatie zorgt ervoor dat de input parameter een nette naam krijgt in de WSDL.</p>
<p>Zoals het voorbeeld laat zien is er dus niet veel nodig om van een gewoon Java object een webservice te maken. Dit voorbeeld laat 3 annotaties zien, maar er zijn er meer. De <a title="Standard JSR-181 JWS Annotations Reference " href="http://e-docs.bea.com/wls/docs90/webserv/annotations.html#1040606" target="_blank">Standard JSR-181 JWS Annotations Reference</a> geeft een goed overzicht van alle beschikbare JSR-181 annotaties.</p>
<h2>Stap 5 &#8211; Activeer webservice</h2>
<p>De laatste stap die uitgevoerd moet worden alvorens de webservice is te gebruiken is het deployen van het project in een J2EE container. Het volgende Maven commando genereert een war van het project.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">mvn package</pre></div></div>

<p>Deploy de gegenereerde war in de J2EE container. De webservice is nu beschikbaar op http://jouwserver/HelloWorldWebservice/HelloWorldWebservice?wsdl. Gebruik een webservice tool zoals <a target="_blanc" href="http://www.soapui.org">SOAPUI</a> om de webservice in actie te zien.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambisoft.nl/berichten/makkelijk-webservices-maken-met-jsr-181/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

