<?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>smash-it.de &#187; java</title>
	<atom:link href="http://www.smash-it.de/blog/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.smash-it.de/blog</link>
	<description></description>
	<lastBuildDate>Wed, 02 Mar 2011 23:40:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>REST mit Eclipse und Tomcat</title>
		<link>http://www.smash-it.de/blog/2008/12/23/rest-mit-eclipse-und-tomcat/</link>
		<comments>http://www.smash-it.de/blog/2008/12/23/rest-mit-eclipse-und-tomcat/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 11:02:43 +0000</pubDate>
		<dc:creator>mash</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[programmierung]]></category>
		<category><![CDATA[Jersey]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[WebService]]></category>

		<guid isPermaLink="false">http://www.smash-it.de/blog/2008/12/23/rest-mit-eclipse-und-tomcat/</guid>
		<description><![CDATA[Motivation: Der SOA Zug rollt bzw. ist eigentlich schon lange lange unterwegs und WebServices sind ein Trendthema. Ein Web Service lässt sich mit dem SOAP basierten Ansatz oder mit der REST Idee realisieren. Auf SOAP und Frameworks wie Axis2 werde ich hier nicht eingehen. Nun eine kurze Erklärung zu REST: Der größte Unterschied zu dem [...]]]></description>
			<content:encoded><![CDATA[<h6><strong>Motivation:</strong></h6>
<p align="justify">Der SOA Zug rollt bzw. ist eigentlich schon lange lange unterwegs und WebServices sind ein Trendthema. Ein Web Service lässt sich mit dem SOAP basierten Ansatz oder mit der REST Idee realisieren. Auf SOAP und Frameworks wie Axis2 werde ich hier nicht eingehen. Nun eine kurze Erklärung zu REST: Der größte Unterschied zu dem SOAP basierten Ansatz ist, dass es die HTTP Methoden wie GET, POST, PUT, DELETE, HEADER benutzt. In dem Glaubenskrieg zwischen den &#8220;Seifenliebhabern&#8221; und den REST-Anhängern wird das immer als Argument gebracht, dass REST als Web Service viel näher am Internet (HTTP) ist. Denn REST arbeitet wie gesagt mit den HTTP Methoden und die Daten des Service sind per Link erreichbar.</p>
<p align="justify">Ich habe mich vor kurzem mit der Materie auseinandergesetzt und versucht eine leichte Erklärung zu finden, die mir zeigt wie ich ein REST Projekt erstelle, es auf dem Tomcat Server zum laufen bringe und anschließend benutze. Weil ich die Ergebnisse bei der Suche nach solchen Tutorials nicht besonders befriedigend fand, dachte ich mir, es wäre an der Zeit so ein einfaches Tutorial zu schreiben.</p>
<p><span id="more-347"></span></p>
<h6>Projekt Setup:</h6>
<ul>
<li><a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR1/eclipse-jee-ganymede-SR1-win32.zip" target="_blank" class="lizip">Eclipse JavaEE 3.4 (Ganymede)</a></li>
<li><a href="http://mirror.moooo.org/apache/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.zip" target="_blank" class="lizip">Tomcat 6.0.18</a></li>
<li><a href="https://jersey.dev.java.net" target="_blank" class="liexternal">Jersey</a> (REST Referenz Implementierung)</li>
</ul>
<p>Außerdem verwende ich das Kommandozeilentool <a href="http://www.gknw.net/mirror/curl/win32/curl-7.19.2-devel-mingw32.zip" target="_blank" class="lizip">Curl</a> zum Testen der Anwendung. Mit dem Tool können einfach Request an eine URL geschickt und die Antwort ausgewertet werden.</p>
<p>Nun kann man direkt in Eclipse loslegen indem man ein neues Dynamisches Web Projekt anlegt.</p>
<p><a href="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image3.png" class="liimagelink"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image-thumb3.png" border="0" alt="image" width="467" height="467" /></a></p>
<p align="justify">Nach dem Anlegen des Projektes habe ich lediglich das Paket de.smashit.resources angelegt und die Datei web.xml im Ordner WEB-INF erstellt. Den Inhalt der web.xml findet Ihr weiter unten.</p>
<p><a href="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image4.png" class="liimagelink"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image-thumb4.png" border="0" alt="image" width="233" height="211" /></a></p>
<p align="justify">Für das Entwickeln eines RESTful Webservice sind auch einige Bibliotheken von Nöten, die im Ordner WEB-INF/lib liegen müssen. <a href="http://www.smash-it.de/blog/wp-content/uploads/2008/12/rest_libs.zip" title="REST Libraries" target="_blank" class="lizip">Hier</a> erhaltet ihr die von mir verwendete libs.</p>
<p align="justify">
<p align="justify">
<p align="justify">
<p align="justify">
<p align="justify">
<p align="justify">
<p align="justify">
<p align="justify">Das folgende Listing zeigt eine einfache Ressourcenklasse, die im Paket de.smashit.resources liegt. Diese Ressource ist über die URL <a href="http://localhost/RestDemo/helloworld" class="liexternal">http://localhost/RestDemo/helloworld</a> erreichbar. Die Annotation @Path konfiguriert die URL für die Ressource. Die Annotation @GET und @POST zeichnen die einzelnen Java Methoden aus und sorgen für ein Mapping zu den Http Methoden (GET, POST, PUT, DELETE, HEAD). Die @Produces Annotation gibt an welche Output von der Methode zurückgeliefert wird. In diesem einfachen Beispiel ist es nur einfacher Text aber es gibt noch andere Typen wie: application/xml, text/html, application/json.</p>
<p align="justify">
<pre lang="JAVA" line="1">
package de.smashit.resources;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

//The resource (Java class) will be hosted at the URI path "/helloworld"
@Path("/helloworld")
public class HelloRestResource {

// The method will be invoked by HTTP GET requests
// The method will produce content of MIME Media type "text/plain"
@GET
@Produces("text/plain")
public String getClichedMessage() {
return "Hello Rest (GET)";
}

@POST
@Produces("text/plain")
public String setSomething() {
return "Hello Rest (Post)";
}
}</pre>
<p align="justify">Im Ordner WEB-INF die Datei web.xml anlegen und mit folgendem XML Code füllen. In der web.xml wird ein sogenanntes Servlet gemappt (RestServlet), das von der Wurzel Url aus aufrufbar ist (siehe url-pattern). Die Ressourcenklassen müssen sich in den Paketen de.smashit.resources oder test befinden. Jersey sucht sich die Resourcen aus den Paketen raus.</p>
<pre lang="XML" line="1">
< ?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance"
xmlns="<a href="http://java.sun.com/xml/ns/javaee" class="liexternal">http://java.sun.com/xml/ns/javaee"</a>
xmlns:web="<a href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" class="liexternal">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</a>
xsi:schemaLocation="<a href="http://java.sun.com/xml/ns/javaee" class="liexternal">http://java.sun.com/xml/ns/javaee</a> <a href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" class="liexternal">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</a> id="WebApp_ID" version="2.5"&gt;

<display -name>RestDemo</display><display -name>

<servlet>
</servlet><servlet -name>RestServlet</servlet>
<servlet -class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet>

<init -param>
<param -name>
com.sun.jersey.config.property.resourceConfigClass
</param>
<param -value>
com.sun.jersey.api.core.PackagesResourceConfig
</param>
</init>

<init -param>
<param -name>
com.sun.jersey.config.property.packages
</param>
<param -value>
de.smashit.resources;test
</param>
</init>

<load -on-startup>1</load>

<servlet -mapping>
</servlet><servlet -name>RestServlet</servlet>
<url -pattern>/*</url>

</display></pre>
<p align="justify">Das Projekt wird als WebArchive (.war) auf dem Tomcat deployed. Dazu wählt man die Export Funktion von Eclipse und exportiert die war-Datei in den Ordner Webapps des Tomcats. Falls der Tomcat Server bereits läuft, wird die Anwendung automatisch deployed/gestartet und wenn nicht muss nun noch der Server gestartet werden.</p>
<p><a href="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image5.png" class="liimagelink"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image-thumb5.png" border="0" alt="image" width="589" height="376" /></a></p>
<p align="justify">Das Projekt wurde erfolgreich auf dem Tomcat deployed, wenn die Meldung in der Konsole des Tomcat in etwa die Nachricht &#8220;Root resource classes found&#8221; steht. Dann hat der Server die Resource-Klassen in den einzelnen Paketen gefunden und sie erfolgreich geladen.</p>
<p><a href="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image6.png" class="liimagelink"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image-thumb6.png" border="0" alt="image" width="596" height="167" /></a></p>
<p align="justify">Anschließen kann man die Anwendung bequem per Browser oder dem Kommandozeilentool curl testen, indem man eine Anfrage an die Adresse stellt. Sowohl der Browser als auch curl versenden standardmäßig GET-Anfragen. So dass in diesem Fall eine Methode der Ressource ansgesprochen wird, die mit @GET annotiert ist.</p>
<p>Mit Browser:</p>
<p><a href="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image7.png" class="liimagelink"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image-thumb7.png" border="0" alt="image" width="594" height="215" /></a></p>
<p>oder ein GET Request mit curl:</p>
<p><a href="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image8.png" class="liimagelink"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image-thumb8.png" border="0" alt="image" width="586" height="110" /></a></p>
<p>oder ein POST Zugriff mit der Option -F</p>
<p><a href="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image9.png" class="liimagelink"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.smash-it.de/blog/wp-content/uploads/2008/12/image-thumb9.png" border="0" alt="image" width="588" height="108" /></a></p>
<p align="justify">
<p align="justify">Hat euch dieses einfache Tutorial gefallen oder geholfen? Ich denke nun sollte jeder die Grundlage von REST verstanden haben und ist in der Lage die vielen Details und Möglichkeiten von REST zu erforschen. In meinen Augen ist der schwierigste Teil der Arbeit im Entwurf eines WebServices mit REST. Den die verwendeten URIs sollten möglichst lange gültig sein und alle gewünschten Anforderungen abdecken. Werden neue Funktionen gewünscht, kommen meist schnell Ressourcen hinzu weil die begrenzte Anzahl der HTTP Methoden nicht viel Spielraum pro Ressource lässt. Also investiert in den Entwurf und Definition der Ressourcen möglichst viel Zeit um eine spätere Änderung wenn möglich zu vermeiden.</p>
<p align="justify">Und nun wünsche ich viel Spaß beim Entwickeln von Anwendungen mit REST WebService.</p>
<p align="justify">
<p align="justify">Links:</p>
<ul>
<li>
<div><a href="http://java.dzone.com/articles/putting-java-rest" title="http://java.dzone.com/articles/putting-java-rest" class="liexternal">http://java.dzone.com/articles/putting-java-rest</a></div>
</li>
<li>
<div></div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.smash-it.de/blog/2008/12/23/rest-mit-eclipse-und-tomcat/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>This JavaEE5!</title>
		<link>http://www.smash-it.de/blog/2008/11/08/java-ee5-song/</link>
		<comments>http://www.smash-it.de/blog/2008/11/08/java-ee5-song/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 20:17:02 +0000</pubDate>
		<dc:creator>mash</dc:creator>
				<category><![CDATA[allgemein]]></category>
		<category><![CDATA[lustig]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[JEE]]></category>

		<guid isPermaLink="false">http://www.smash-it.de/blog/?p=207</guid>
		<description><![CDATA[W&#228;hrend der Einarbeitung in Java Enterprise Edition, EJB3, JBoss und den JBoss Komponenten Seam und jBPM begab ich mich auf diverse Webseiten um schnell schlauer zu werden und arbeitsf&#228;hig zu sein. Bei dieser Recherche stie&#223; ich auf einen wunderbaren Geek-Song von Roman Strobl. Klickt Java EE 5 Song um euch den Song anzuh&#246;ren. F&#252;r alle [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">W&#228;hrend der Einarbeitung in Java Enterprise Edition, EJB3, JBoss und den JBoss Komponenten Seam und jBPM begab ich mich auf diverse Webseiten um schnell schlauer zu werden und arbeitsf&#228;hig zu sein. Bei dieser Recherche stie&#223; ich auf einen wunderbaren Geek-Song von Roman Strobl. Klickt <a href="http://www.smash-it.de/blog/wp-content/uploads/2008/11/javaee5.mp3" class="liinternal">Java EE 5 Song</a> um euch den Song anzuh&#246;ren.</p>
<p>F&#252;r alle die es nicht glauben k&#246;nnen hier der Text:</p>
<p> <span id="more-207"></span>Ladies and gentlemen, this is Java EE 5!
</p>
<p>One, two, three, four, five   <br />There&#8217;s a technology I use day and night    <br />For my application with a web frontend    <br />They told me to use .Net    <br />But I really don&#180;t wanna</p>
<p>So many bugs I fixed last week.   <br />My code is neat and talk is a cheap    <br />I like Glassfish, JSF, persistence API    <br />And as I continue you know they&#180;re gettin&#180; sweeter</p>
<p>So what can I do I really beg you my Lord   <br />To me codin&#8217; it&#180;s just like a sport    <br />All the bad code from the past, let me dump it    <br />Please set in the trumpet</p>
<p>A little bit of injection in my life   <br />A little bit of persistence by my side    <br />A little bit of NetBeans is all I need    <br />A little bit of EJB&#8217;s what I see    <br />A little bit of standards in the sun    <br />A little bit of XML all night long    <br />A little bit web services here I am    <br />A little bit of code makes me real man</p>
<p>This is Java EE 5!</p>
<p>Jump up and down and move your code around   <br />Shake your head to the sound bury bad code under ground    <br />Move one step left and one step right    <br />One to the front and one to the side    <br />Refactor it once and refactor it twice    <br />If it looks like this you&#8217;re doin&#180; it right</p>
<p>A little bit of injection in my life   <br />A little bit of persistence by my side    <br />A little bit of NetBeans is all I need    <br />A little bit of EJB&#8217;s is what I see    <br />A little bit of standards in the sun    <br />A little bit of XML all night long    <br />A little bit web services here I am    <br />A little bit of code makes me real man</p>
<p>This is Java EE 5!</p>
<p>Quelle: <a href="http://blogs.sun.com/roumen/entry/new_song_java_ee_5" title="http://blogs.sun.com/roumen/entry/new_song_java_ee_5" class="liexternal">http://blogs.sun.com/roumen/entry/new_song_java_ee_5</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.smash-it.de/blog/2008/11/08/java-ee5-song/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://tap.javalobby.org/javaee5.mp3" length="2691998" type="audio/mpeg" />
<enclosure url="http://www.smash-it.de/blog/wp-content/uploads/2008/11/javaee5.mp3" length="2691998" type="audio/mpeg" />
<enclosure url="http://tap.javalobby.org/javaee5.mp3" length="2691998" type="audio/mpeg" />
<enclosure url="http://www.smash-it.de/blog/wp-content/uploads/2008/11/javaee5.mp3" length="2691998" type="audio/mpeg" />
<enclosure url="http://tap.javalobby.org/javaee5.mp3" length="2691998" type="audio/mpeg" />
<enclosure url="http://www.smash-it.de/blog/wp-content/uploads/2008/11/javaee5.mp3" length="2691998" type="audio/mpeg" />
<enclosure url="http://tap.javalobby.org/javaee5.mp3" length="2691998" type="audio/mpeg" />
<enclosure url="http://www.smash-it.de/blog/wp-content/uploads/2008/11/javaee5.mp3" length="2691998" type="audio/mpeg" />
<enclosure url="http://tap.javalobby.org/javaee5.mp3" length="2691998" type="audio/mpeg" />
<enclosure url="http://www.smash-it.de/blog/wp-content/uploads/2008/11/javaee5.mp3" length="2691998" type="audio/mpeg" />
		</item>
		<item>
		<title>Lernen einer neuen Programmiersprache</title>
		<link>http://www.smash-it.de/blog/2008/11/08/erlernen-einer-neuen-programmiersprache/</link>
		<comments>http://www.smash-it.de/blog/2008/11/08/erlernen-einer-neuen-programmiersprache/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 16:13:42 +0000</pubDate>
		<dc:creator>mash</dc:creator>
				<category><![CDATA[allgemein]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programmierung]]></category>
		<category><![CDATA[JEE]]></category>

		<guid isPermaLink="false">http://www.smash-it.de/blog/?p=205</guid>
		<description><![CDATA[Heute habe ich eine nette Abbildung gefunden, die den nat&#252;rlichen Verlauf beim Lernen einer neun Programmiersprache widerspiegelt. Leicht lassen sich die Erkenntnisse auf Frameworks einer bereits bekannten Sprache adaptieren. Denn auch in diesem Fall muss man hinter die vermeintlich absurden Gedanken anderer Entwickler steigen und ist gl&#252;cklich wenn man endlich auf der gleichen geistigen Ebene [...]]]></description>
			<content:encoded><![CDATA[<p align="justify"><a href="http://www.smash-it.de/blog/wp-content/uploads/2008/11/die-neue-programmiersprache-lernen.png" class="liimagelink"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="258" alt="die-neue-programmiersprache-lernen" src="http://www.smash-it.de/blog/wp-content/uploads/2008/11/die-neue-programmiersprache-lernen-thumb.png" width="198" border="0" /></a>Heute habe ich eine nette Abbildung gefunden, die den nat&#252;rlichen Verlauf beim Lernen einer neun Programmiersprache widerspiegelt. Leicht lassen sich die Erkenntnisse auf Frameworks einer bereits bekannten Sprache adaptieren. Denn auch in diesem Fall muss man hinter die vermeintlich absurden Gedanken anderer Entwickler steigen und ist gl&#252;cklich wenn man endlich auf der gleichen geistigen Ebene gelandet ist. In diesem Sinne, geht es jetzt bei mir weiter mit EJB3, JBoss, Seam und jBPM.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Quelle: <a href="http://www.peterkroener.de/die-neue-programmiersprache-lernen/" title="http://www.peterkroener.de/die-neue-programmiersprache-lernen/" class="liexternal">http://www.peterkroener.de/die-neue-programmiersprache-lernen/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.smash-it.de/blog/2008/11/08/erlernen-einer-neuen-programmiersprache/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eclipse mit mehr Speicher starten</title>
		<link>http://www.smash-it.de/blog/2008/08/22/eclipse-mit-mehr-speicher-starten/</link>
		<comments>http://www.smash-it.de/blog/2008/08/22/eclipse-mit-mehr-speicher-starten/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 12:28:31 +0000</pubDate>
		<dc:creator>mash</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[programmierung]]></category>
		<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://www.smash-it.de/blog/?p=130</guid>
		<description><![CDATA[Wer es, so wie ich satt hat auf Eclipse zu warten weil der Rechner mit allen m&#246;glichen Anwendungen l&#228;uft, kann Eclipse mehr Speicher zuweisen und somit f&#252;r einen z&#252;gigeren Ablauf der IDE sorgen. Die &#8220;Out-of-memory&#8221;-Exception geh&#246;rt&#160; von nun an zum alten Eisen Gemacht wird es, in dem man der Eclipse JVM-Parameter mitgibt. Man startet die [...]]]></description>
			<content:encoded><![CDATA[<p align="justify"><img title="2007_10_22_eclipse.jpg" height="138" alt="2007_10_22_eclipse.jpg" hspace="hspace" src="http://blog.jensfranke.com/images/2007_10_22_eclipse.jpg" width="214" border="0" />Wer es, so wie ich satt hat auf Eclipse zu warten weil der Rechner mit allen m&#246;glichen Anwendungen l&#228;uft, kann Eclipse mehr Speicher zuweisen und somit f&#252;r einen z&#252;gigeren Ablauf der IDE sorgen. Die &#8220;Out-of-memory&#8221;-Exception geh&#246;rt&#160; von nun an zum alten Eisen <img src='http://www.smash-it.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p align="justify">Gemacht wird es, in dem man der Eclipse JVM-Parameter mitgibt. Man startet die IDE mit den folgenden Parametern:</p>
<p align="justify"><code></code></p>
<p align="justify"><code>eclipse.exe -vmargs -Xms256m -Xmx256m</code></p>
<p align="justify">-Xms ist die minimal verwendete JVM-Speichergr&#246;&#223;e   <br />-Xmx ist die maximal verwendete JVM-Speichergr&#246;&#223;e    <br />In diesem Beispiel habe ich die Speichergr&#246;&#223;e auf 256 MB fixiert.</p>
<p align="justify">Weitere Informationen findet ihr unter Help/ Help Contents/ Workbench User Guide/ Tasks/ Running Eclipse</p>
<p align="justify">So l&#228;sst sich zum Beispiel auch die JVM einstellen, mit der Eclipse starten soll.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.smash-it.de/blog/2008/08/22/eclipse-mit-mehr-speicher-starten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hibernate Configuration zur Laufzeit</title>
		<link>http://www.smash-it.de/blog/2008/07/11/hibernate-configuration-zur-laufzeit/</link>
		<comments>http://www.smash-it.de/blog/2008/07/11/hibernate-configuration-zur-laufzeit/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 12:06:28 +0000</pubDate>
		<dc:creator>mash</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[programmierung]]></category>

		<guid isPermaLink="false">http://www.smash-it.de/blog/?p=119</guid>
		<description><![CDATA[Wer alle Einstellungen eines Java &#8211; Projektes so wie ich zentral in einer Properties-Datei unterbringen möchte, will vielleicht auch die Hibernate Settings in der Properties-Datei lagern. Um nun nicht erst Properties auszulesen und in die hibernate.cfg.xml zu schreiben zu müssen kann man folgenden Weg gehen. Man kann die hibernate cfg.xml einfach löschen und die Hibernate [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Wer alle Einstellungen eines Java &#8211; Projektes so wie ich zentral in einer Properties-Datei unterbringen möchte, will vielleicht auch die Hibernate Settings in der Properties-Datei lagern. Um nun nicht erst Properties auszulesen und in die hibernate.cfg.xml zu schreiben zu müssen kann man folgenden Weg gehen. Man kann die hibernate cfg.xml einfach löschen und die Hibernate Settings aus der Properties Datei lesen und zu einem geeigneten Zeitpunkt setzen. So kann man beispielsweise auch zwischen Datenbanken zur Laufzeit umschalten.</p>
<p><span id="more-119"></span>Dazu verwendet Ihr einfach statt der AnnotationConfiguration die Configuration von Hibernate und setzt dort die Parameter. So könnte das aussehen:</p>
<pre> static
 {
     Configuration config = new Configuration();
     config.setProperty("hibernate.dialect",
          de.Configuration.getString("connection.dialect"));
     config.setProperty("hibernate.connection.driver_class",
          de.Configuration.getString("connection.driver_class"));
     config.setProperty("hibernate.connection.url",
          de.Configuration.getString("connection.url"));
     config.setProperty("hibernate.connection.username",
          de.Configuration.getString("connection.username"));
     config.setProperty("hibernate.connection.password",
          de.Configuration.getString("connection.password"));
     config.setProperty("hibernate.hbm2ddl.auto",
          de.Configuration.getString("hbm2ddlauto"));
     config.setProperty("hibernate.show_sql",
          de.Configuration.getString("connection.show_sql"));        

     config.addClass(de.domain.User.class);
     config.addClass(de.domain.Usergroup.class);
     config.addClass(de.domain.ActionLog.class);

     sessionFactory = config.buildSessionFactory();
 }</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.smash-it.de/blog/2008/07/11/hibernate-configuration-zur-laufzeit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JAutodoc Eclipse Plugin</title>
		<link>http://www.smash-it.de/blog/2008/07/11/jautodoc-eclipse-plugin/</link>
		<comments>http://www.smash-it.de/blog/2008/07/11/jautodoc-eclipse-plugin/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 11:55:03 +0000</pubDate>
		<dc:creator>mash</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[programmierung]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Kommentare]]></category>

		<guid isPermaLink="false">http://www.smash-it.de/blog/?p=118</guid>
		<description><![CDATA[Wenn man unter Zeitdruck an einem Projekt arbeitet und sich auf die Realisierung der Funktionalität konzentriert, fallen ausführliche Kommentare leider von der Prioritätenliste. Umso ärgerlicher ist das ganze wenn man das Checkstyle-Plugin verwendet um eine Mindest-Qualität des Quellcodes zu garantieren. Nun habe ich endlich mal ein geeignetes Plugin gefunden, was mir hilft, die Kommentare schnell [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man unter Zeitdruck an einem Projekt arbeitet und sich auf die Realisierung der Funktionalität konzentriert, fallen ausführliche Kommentare leider von der Prioritätenliste. Umso ärgerlicher ist das ganze wenn man das Checkstyle-Plugin verwendet um eine Mindest-Qualität des Quellcodes zu garantieren. Nun habe ich endlich mal ein geeignetes Plugin gefunden, was mir hilft, die Kommentare schnell und simpel zu erstellen.</p>
<p><span id="more-118"></span>Die Rede ist von <a href="http://jautodoc.sourceforge.net/" title="JAutodoc" class="liexternal">JAutodoc</a>. Diese Eclipse Plugin macht es möglich Klassen-Header zu setzen und aus Methode Namen schon recht nette Kommentare zu formulieren. Man kann die Formulierungsmöglichkeiten des Plugins selbst erweiteren und an eigene Benennungs-Schemata anpassen.</p>
<p>Ergebnis des Ganzen ist ein Code, der einfach aber meist ausreichend kommentiert ist und eine Mindestqualität bietet. Natürlich sollte man sich in einer ruhigen Minute die Zeit nehmen und die Kommentare sinnvoll ergänzen aber bis dahin ist JAutodoc mein Freund <img src='http://www.smash-it.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Wie einfach das Plugin in Eclipse eingebunden und benutzt werden kann seht ihr <a href="http://jautodoc.sourceforge.net/" title="JAutodoc" class="liexternal">hier</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.smash-it.de/blog/2008/07/11/jautodoc-eclipse-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AspectJ</title>
		<link>http://www.smash-it.de/blog/2008/07/08/aspectj/</link>
		<comments>http://www.smash-it.de/blog/2008/07/08/aspectj/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 18:43:11 +0000</pubDate>
		<dc:creator>mash</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[programmierung]]></category>

		<guid isPermaLink="false">http://www.smash-it.de/blog/?p=116</guid>
		<description><![CDATA[Im Seminar &#8220;Ausgewählte Themen Software&#8221; entschied sich unser Dozent Herr Knabe für die Aspektorientiert Programmierung mit AspectJ 5. Was bedeutet Aspektorientierte Programmierung? Die Objektorientierte Programmierung ist noch gar nicht soo alt und nun gibt es schon wieder das nächste Programmierkonzept? Nein! Es ist zwar ein Programmierkonzept aber eines was man als Ergänzung zur Objektorientierung verstehen [...]]]></description>
			<content:encoded><![CDATA[<p>Im Seminar &#8220;Ausgewählte Themen Software&#8221; entschied sich unser Dozent Herr Knabe für die Aspektorientiert Programmierung mit AspectJ 5. Was bedeutet Aspektorientierte Programmierung? Die Objektorientierte Programmierung ist noch gar nicht soo alt und nun gibt es schon wieder das nächste Programmierkonzept? Nein!</p>
<p>Es ist zwar ein Programmierkonzept aber eines was man als Ergänzung zur Objektorientierung verstehen darf. Man versucht die fachlichen Teile des Quellcodes von den notwendigen technischen Teilen zu trennen. Es ist ja so, dass man bei manch komplexen Methoden nicht mehr sofort erkennt welche Fachlogik sich dahinter verbirgt, weil Code für Logging, Persistenz oder ähnliches die Methoden aufblähen.</p>
<p><span id="more-116"></span>An dieser Stelle setzt AspectJ an. Man versucht die technischen Anliegen von den fachlichen zu trennen, indem man die technischen Concerns in Aspekte auslagert und sie erst danach &#8220;einwebt&#8221;. Das heißt der technische Code wird rausgenommen und zu einem späteren Zeitpunkt wieder an die Stelle geschrieben. Nur hat man den Vorteil, dass die Methode deutlich übersichtlicher ist.</p>
<p>Dadurch landet der notwendige technische Code auch in einem Package und widersetzt sich nicht weiter dem Prinzip der Modularisierung, indem er alle Module des Projekts durchzieht.</p>
<p>Nachteil bei der Anwendung von Aspekte ist, dass die Methoden zwar einfacher und übersichtlicher aber sich ein neuer Entwickler unter Umständen wundert warum etwas passiert, das nicht im Quellcode steht. Dokumentation spielt bei der Nutzung von Aspekte also eine zentrale Rolle!</p>
<p>Nun versteht ihr was hinter AspectJ steckt. Das Konzept ist in meinen Augen sehr gut, nur leider finde ich die Umsetzung nicht so gelungen. Die Quellcodeeinsparung erreicht man nur in sehr wenigen trivialen Fällen und ansonsten verstreut man seinen Code auf zusätzliche Klassen, die eine Einarbeitung deutlich erschweren.</p>
<p>Als Download gibt es mein <a href="/blog/wp-content/uploads/2008/07/ATS.pdf" title="ATS Skript" class="lipdf">Klausurvorbereitungsskript</a>, das hauptsächlich auf dem Buch von Oliver Böhm &#8220;Aspektorientierte Programmierung mit AspectJ5&#8243; basiert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.smash-it.de/blog/2008/07/08/aspectj/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RESTful WebServices</title>
		<link>http://www.smash-it.de/blog/2008/02/15/restful-webservices/</link>
		<comments>http://www.smash-it.de/blog/2008/02/15/restful-webservices/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 13:35:58 +0000</pubDate>
		<dc:creator>mash</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[programmierung]]></category>

		<guid isPermaLink="false">http://www.smash-it.de/blog/?p=75</guid>
		<description><![CDATA[Yesterday I went to a reading about RESTful WebServices. The lecturer Stefan Tilkov talked about REpresentational State Transfer and compared the technology with SOAP. I just know the basics of SOAP and therefore I haven&#8217;t a complete overview to compare the technologies. But in my opinion REST is a quite interesting approach for distributed software [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I went to a reading about RESTful WebServices. The lecturer <a href="http://www.innoq.com/blog/st/" alt="Blog von Stefan Tilkov" class="liexternal">Stefan Tilkov</a> talked about <strong>RE</strong>presentational <strong>S</strong>tate <strong>T</strong>ransfer and compared the technology with SOAP. I just know the basics of SOAP and therefore I haven&#8217;t a complete overview to compare the technologies. But in my opinion REST is a quite interesting approach for distributed software and it is also quite easy to understand. Caused by the one-sided kind of reading (REST) I am interested in arguments for SOAP respectively against REST.</p>
<p>Nevertheless I enjoyed the reading and please check out the <a href="http://www.smash-it.de/blog/wp-content/uploads/2008/02/2008-02-14-rest-jug-berlin.pdf" title="slides" class="lipdf">slides</a> and the <a href="http://www.smash-it.de/blog/wp-content/uploads/2008/02/jaxrs-samples-06.zip" title="example project" class="lizip">example project</a> from <a href="http://www.innoq.com/blog/st/" alt="Blog von Stefan Tilkov" class="liexternal">Stefan Tilkov</a>.</p>
<p>P.S. If you&#8217;re trying REST you can use <a href="http://www.innoq.com/blog/st/2008/02/jersey_client_api.html" alt="JERSEY" class="liexternal">JERSEY</a> as client API.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.smash-it.de/blog/2008/02/15/restful-webservices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming II</title>
		<link>http://www.smash-it.de/blog/2006/08/13/programming-ii/</link>
		<comments>http://www.smash-it.de/blog/2006/08/13/programming-ii/#comments</comments>
		<pubDate>Sun, 13 Aug 2006 21:02:51 +0000</pubDate>
		<dc:creator>mash</dc:creator>
				<category><![CDATA[medieninformatik]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[TFH Berlin]]></category>

		<guid isPermaLink="false">http://www.smash-it.de/blog/?p=63</guid>
		<description><![CDATA[PR2 Vorlesung Dozent: Andreas Solymosi]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.smash-it.de/blog/wp-content/uploads/2008/02/pr2_vorlesung1.pdf" title="PR2 Vorlesung" class="lipdf">PR2 Vorlesung</a></p>
<p>Dozent: Andreas Solymosi<a href="http://www.smash-it.de/blog/wp-content/uploads/2008/02/pr2_vorlesung1.pdf" title="PR2 Vorlesung" class="lipdf"> </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.smash-it.de/blog/2006/08/13/programming-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming I</title>
		<link>http://www.smash-it.de/blog/2006/02/10/programming-i/</link>
		<comments>http://www.smash-it.de/blog/2006/02/10/programming-i/#comments</comments>
		<pubDate>Fri, 10 Feb 2006 17:50:09 +0000</pubDate>
		<dc:creator>mash</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[medieninformatik]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.smash-it.de/blog/?p=36</guid>
		<description><![CDATA[The target of this course was to become a great JAVA coder. Mr. Solymosi has a special method to teach JAVA (object oriented programming). Firstly the students learned how to use classes from the legendary &#8216;lehrbuch.jar&#8217; and filling the buckets with wine or water. After that beginning the students learned the basics like loops, if-statements [...]]]></description>
			<content:encoded><![CDATA[<p>The target of this course was to become a great JAVA coder. Mr. Solymosi has a special method to teach JAVA (object oriented programming). Firstly the students learned how to use classes from the legendary &#8216;lehrbuch.jar&#8217; and filling the buckets with wine or water. After that beginning the students learned the basics like loops, if-statements etc.. This special method gained a some friends but a lot more critics.</p>
<p>Load the <a href="http://www.smash-it.de/blog/wp-content/uploads/2008/02/pr1_vorlesung.pdf" title="PR1_script" class="lipdf">script</a>, <a href="http://www.smash-it.de/blog/wp-content/uploads/2008/02/pr1_moodle.pdf" title="moodle tasks" class="lipdf">moodle tasks</a> and <a href="http://www.smash-it.de/blog/wp-content/uploads/2008/02/pr1_java-begriffe.pdf" title="JAVA definitions" class="lipdf">JAVA definitions</a>.</p>
<p>lecturer: Andreas Solymosi &#8211; tfh-berlin.de/~solymosi</p>
]]></content:encoded>
			<wfw:commentRss>http://www.smash-it.de/blog/2006/02/10/programming-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/


Served from: www.smash-it.de @ 2012-02-05 04:47:27 -->
