<?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>jKoeber.de</title>
	<atom:link href="http://www.jkoeber.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jkoeber.de</link>
	<description>Entwicklung, Systeme, Programmierung und Umsetzung</description>
	<lastBuildDate>Fri, 03 Feb 2012 07:21:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Telekom Entertain per WLAN</title>
		<link>http://www.jkoeber.de/2012/02/03/telekom-entertain-per-wlan/</link>
		<comments>http://www.jkoeber.de/2012/02/03/telekom-entertain-per-wlan/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 07:21:15 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[Box]]></category>
		<category><![CDATA[Broadcast]]></category>
		<category><![CDATA[IPTV]]></category>
		<category><![CDATA[Problem]]></category>
		<category><![CDATA[Telekom Entertain]]></category>
		<category><![CDATA[WLAN]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1184</guid>
		<description><![CDATA[



Für alle die schon immer die Entertain Box wo anders nutzen wollten als der Router steht oder auch in nicht greifbarer Näher per Kabel erreichbar wäre. Habe ich jetzt eine sehr gute und einfache Lösung gefunden.

Derzeit nutze ich für mein TV Erlebnis per Internet die Telekom Entertain Box 301 mit integrierter Festplatte. Wenn es ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2012%2F02%2F03%2Ftelekom-entertain-per-wlan%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p><img class="alignleft" src="http://netgear.de/images/wnce2001_productimage_large22-5791.png" alt="" width="235" height="180" /></p>
<p><a href="http://www.netgear.com/avseries" target="_blank"><img style="width: 150px; height: 59px;" title="logo - av series" src="http://netgear.de/images/avseries_logo22-8233.png" alt="logo - av series" width="150" height="59" usemap="#Map" border="0" /></a></p>
<p>Für alle die schon immer die Entertain Box wo anders nutzen wollten als der Router steht oder auch in nicht greifbarer Näher per Kabel erreichbar wäre. Habe ich jetzt eine sehr gute und einfache Lösung gefunden.</p>
<p>Derzeit nutze ich für mein TV Erlebnis per Internet die Telekom Entertain Box 301 mit integrierter Festplatte. Wenn es einmal funktioniert, ist es gar nicht mal so schlecht.</p>
<p>Zuerst habe ich einen günstigen WLan Repeater verwendet der nicht geeinget dazu war, die Entertainbox hat nach 5-10 Sekunden aufgehört. Das Bild war eingefroren und auch die Bedienung kurz nach dem Start der Box war mehr als hakelig. Schlechte Reaktionszeiten und schwer Bedienbar. Man konnte umschalten und für 5-10 Sekunden die Sendung erneut verfolgen. Alles halb so schlimm, ich habe eine andere günstige under super einfache Lösung gefunden.</p>
<p>Der Netgear <a href="http://netgear.de/products/home/hometheater/networking-for-home-theater-and-gaming/WNCE2001.aspx">WNCE2001</a>. Ein super einfaches Gerät. Stromversorgung per USB an der Rückseite der Entertain Box und über den Ethernetport einklickbar.</p>
<p>Ein kurzer Klick an der Rückseite des Netgears und an der WLAN Taste eurer Fritzbox und die zwei Geräte synchronisieren sich innerhalb von 30 Sekunden. Keine 5 Minuten später hatte ich Entertain im Schlafzimmer. <img src='http://www.jkoeber.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Super einfach einzurichten, sehr sparsam und vorallem spare ich mir weitere 80€ für den Telekom Repeater bzw. 2,50€ Miete/Monat die ich sonst an die Telekom abdrücken dürfte.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2012%2F02%2F03%2Ftelekom-entertain-per-wlan%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1184&amp;md5=728b5d5605fa43b317c4e60cf4e7a800" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2012/02/03/telekom-entertain-per-wlan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento Theme Dump Error</title>
		<link>http://www.jkoeber.de/2011/11/08/magento-theme-dump-error/</link>
		<comments>http://www.jkoeber.de/2011/11/08/magento-theme-dump-error/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 15:08:45 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[1064]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Frage]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Syntaxfehler]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[USING BTREE]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1180</guid>
		<description><![CDATA[Es können Fehler beim installieren von Magento Themes entstehen. Wenn man z.B. nach der Installationsanleitung eine dump.sql einspielen will, kann es sein das bei einem MySql 5.1 Server ein Fehler im BTREE Error auftaucht.
ERROR 1064 (42000) at line 1561: You have an error in your SQL syntax; check the manual that corresponds to your ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F11%2F08%2Fmagento-theme-dump-error%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Es können Fehler beim installieren von Magento Themes entstehen. Wenn man z.B. nach der Installationsanleitung eine dump.sql einspielen will, kann es sein das bei einem MySql 5.1 Server ein Fehler im BTREE Error auftaucht.</p>
<blockquote><p>ERROR 1064 (42000) at line 1561: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘USING BTREE, …</p></blockquote>
<p>Eine einfache Lösung bietet hier wieder ein kleines Command in der Konsole.</p>
<p>&nbsp;</p>
<pre name="code" class="java">
sed -i -r 's/\(([^)]+)\) USING BTREE/USING BTREE (\1)/g' mydump.sql
</pre>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F11%2F08%2Fmagento-theme-dump-error%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1180&amp;md5=ad30463280cb443754da4b1b711399ea" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/11/08/magento-theme-dump-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migration von Textfiles zu PDF&#8217;s in der Konsole</title>
		<link>http://www.jkoeber.de/2011/11/04/migration-von-textfiles-zu-pdfs-in-der-konsole/</link>
		<comments>http://www.jkoeber.de/2011/11/04/migration-von-textfiles-zu-pdfs-in-der-konsole/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 12:50:16 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorials / How to do]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[enscript]]></category>
		<category><![CDATA[gs]]></category>
		<category><![CDATA[konsole]]></category>
		<category><![CDATA[Konvertierung]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[ps2pdf]]></category>
		<category><![CDATA[Text to Pdf]]></category>
		<category><![CDATA[text2pdf]]></category>
		<category><![CDATA[txt to pdf]]></category>
		<category><![CDATA[txt2pdf]]></category>
		<category><![CDATA[workaround]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1173</guid>
		<description><![CDATA[Für alle die häufiger E-Mail Verläufe oder auch andere Textfiles Archivieren und Migrieren wollen für eine bessere Bestandsaufnahme oder einfach um es sauber ablegen zu können habe ich eine Möglichkeit gefunden mit Open Source Tools eine Migration von Textfiles in PDF's vorzunehmen. Und das ganze in der Konsole.

Es ist zwar nicht alltäglich eine solche ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F11%2F04%2Fmigration-von-textfiles-zu-pdfs-in-der-konsole%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Für alle die häufiger E-Mail Verläufe oder auch andere Textfiles Archivieren und Migrieren wollen für eine bessere Bestandsaufnahme oder einfach um es sauber ablegen zu können habe ich eine Möglichkeit gefunden mit Open Source Tools eine Migration von Textfiles in PDF&#8217;s vorzunehmen. Und das ganze in der Konsole.</p>
<p>Es ist zwar nicht alltäglich eine solche Aufgabenstellung aber man findet relativ wenig dazu im Netz, daher hat es jetzt ein paar Nächte gedauert bis wir einen guten Weg gefunden haben.</p>
<p>Zum einen nutzen wir, egal ob auf Windows oder Unix Systemen.</p>
<ul>
<li>enscript</li>
<li>Ghostscript</li>
</ul>
<p></p>
<div>Enscript erstellt uns aus einfachen Textdateien schöne PS Files um diese anschließend weiter zu verarbeiten.</div>
<div>Wie man enscript unter Windows zum laufen bekommt findet ihr <a href="http://www.kromwyrm.com/howtos/howto_install_gnu_enscript_onto_winxp.html">hier</a>. Es ist ein graus mit enscript. Aber sobald es läuft funktioniert es ohne Probleme.</div>
<div>Nachdem beide Programme zu unserer Zufriedenheit laufen, könnt ihr mit zwei einfachen Befehlen die PDF erzeugen.</div>
<p></p>
<div><strong>Step1</strong>: Erzeugen der PS aus einer Textfile</div>
<pre class="java" name="code"> enscript -q -p "PS-file" "TXT-file"</pre>
<p></p>
<div><strong>Step2</strong>: Erzeuge der PDF aus der PS</div>
<pre class="java" name="code"> gs -q -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=PDF-file PS-file -c quit</pre>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F11%2F04%2Fmigration-von-textfiles-zu-pdfs-in-der-konsole%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1173&amp;md5=7c7b62b801ea626a5373c33de64e5da2" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/11/04/migration-von-textfiles-zu-pdfs-in-der-konsole/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source MT940 Parser</title>
		<link>http://www.jkoeber.de/2011/10/24/open-source-mt940-parser/</link>
		<comments>http://www.jkoeber.de/2011/10/24/open-source-mt940-parser/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 14:18:19 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Bank]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[File]]></category>
		<category><![CDATA[gmbh]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[k&w consulting]]></category>
		<category><![CDATA[MT940]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[osRetail]]></category>
		<category><![CDATA[Schnittstelle]]></category>
		<category><![CDATA[SWIFT]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1160</guid>
		<description><![CDATA[Hi alle zusammen. Ich habe mich mal wieder etwas im Gewusel und Getümmel der Programmierung verloren. Dabei ist mir aufgefallen, das alle Parser die einen MT940 verarbeiten wollen Fehler haben und teilweise nicht funktionieren. Dem ganzen bin ich mal auf den Leib gerückt und präsentier euch hier einen freien MT940 Parser. Könnt ihr kostenlos ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F10%2F24%2Fopen-source-mt940-parser%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Hi alle zusammen. Ich habe mich mal wieder etwas im Gewusel und Getümmel der Programmierung verloren. Dabei ist mir aufgefallen, das alle Parser die einen MT940 verarbeiten wollen Fehler haben und teilweise nicht funktionieren. Dem ganzen bin ich mal auf den Leib gerückt und präsentier euch <a href="http://www.jkoeber.de/wp-content/uploads/2011/10/FnkMT9403.zip">hier</a> einen freien MT940 Parser. Könnt ihr kostenlos hier downloaden.</p>
<p>Für alle die nicht wissen was der MT940 macht:</p>
<blockquote><p>MT940 (MT=Message Type) ist der SWIFT-Standard (Banking Communication Standard) zur elektronischen Übermittlung von Kontoauszug-Daten. Bei verschiedenen Online-Banking-Programmen wird MT940 als Schnittstelle verwendet zu anderen Programmen (z. B. für die Buchhaltung), mit denen die Kontoauszug-Daten weiter verarbeitet werden.</p></blockquote>
<p>Unterstütz werden alle nötigen Tag&#8217;s:</p>
<ul>
<li>:21: Bezugsreferenznummer</li>
<li>:25: M Kontobezeichnung</li>
<li>:28C: M Auszugsnummer</li>
<li>:60a: M Anfangssaldo</li>
<li>:61: Umsatz</li>
<li>:86: Mehrzweckfeld</li>
<li>:62a: M Schlusssaldo</li>
<li>:64: Aktueller Valutensaldo</li>
<li>:65: Zukünftige Valutensalden</li>
<li>:86: Mehrzweckfeld</li>
</ul>
<div>Das ganze gibt es in einem Netbeans Projekt als ZIP file zum <a href="http://www.jkoeber.de/wp-content/uploads/2011/10/FnkMT9403.zip">Download</a>.</div>
<div><strong>Update 25.10.11</strong></div>
<div>Ich habe für euch das Mehrzweckfeld :86: überarbeitet. Ihr findet im Projekt eine neue Klasse die <em>Mehrzweckfeld</em> heißt und in der alle nötigen Felder</div>
<div>
<ul>
<li>Verwendungszweck</li>
<li>Name</li>
<li>BLZ</li>
<li>Kontonummer etc.</li>
</ul>
<p>geparsed werden. Das ganze könnt ihr euch wieder in der Main ausgeben lassen. Ebenso unterstütze ich jetzt ein Mehrzweckfeld das sich über mehr als eine Zeile erstreckt.</p>
</div>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F10%2F24%2Fopen-source-mt940-parser%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1160&amp;md5=68f56dec2b62870da25f7defd6791cf0" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/10/24/open-source-mt940-parser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konakart auf Glassfish laufen lassen</title>
		<link>http://www.jkoeber.de/2011/09/30/konakart-auf-glassfish-laufen-lassen/</link>
		<comments>http://www.jkoeber.de/2011/09/30/konakart-auf-glassfish-laufen-lassen/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 07:11:21 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorials / How to do]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[ändern]]></category>
		<category><![CDATA[anpassen]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[container]]></category>
		<category><![CDATA[ear]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[konakart]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[migrieren]]></category>
		<category><![CDATA[starten]]></category>
		<category><![CDATA[transport]]></category>
		<category><![CDATA[war]]></category>
		<category><![CDATA[webshop]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1153</guid>
		<description><![CDATA[Ich entwickle sehr gerne mit meinem Macbook, leider habe ich feststellen müssen das die Migration von einer Konakart Installation auf einen Glassfish etwas anders läuft als in der Dokumentation beschrieben.

Folgende Befehle können verwendet werden!


make_ear

In meinem zweiten Versuch mit make_ear hat es super funktioniert. Ich würde es mir fast sogar zutrauen das ich es beim ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F30%2Fkonakart-auf-glassfish-laufen-lassen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Ich entwickle sehr gerne mit meinem Macbook, leider habe ich feststellen müssen das die Migration von einer Konakart Installation auf einen Glassfish etwas anders läuft als in der Dokumentation beschrieben.</p>
<p>Folgende Befehle können verwendet werden!</p>
<p><EDIT><br />
<strong>make_ear</strong></p>
<p>In meinem zweiten Versuch mit make_ear hat es super funktioniert. Ich würde es mir fast sogar zutrauen das ich es beim ersten mal übersehen habe. make_ear erzeugt im Ordner ear/ eine konakart.ear file. Diese einfach nur auf dem glassfish deployen und viola it runs.</p>
<p>Dieser Befehlt ist ziemlich sinnfrei. Er erstellt unter dem MAC einen Ordner konakart.ear und nicht die File um es dem glassfish schmackhaft zu machen.</p>
<p>Alternative <strong>make_wars</strong></p>
<p>Um die korrekten Dateien zu erstellen, geht in den Installationsordner von konakart und in den Subordner custon also:  <strong>/konakart/custom </strong>hier drin befindet sich die <em>build.xml</em> die Konakart benötigt um alle weiteren Befehle auszuführen.</p>
<p>Anschließend führt ihr folgenden Befehl in der Konsole aus: <strong>./bin/ant make_wars</strong> Es wird einen Moment dauern aber anschließend, bei korrekter Verarbeitung werdet ihr BUILD SUCCESS am Ende erhalten.</p>
<p>Am einfachsten ist, ihr erstellt die .war Files und ladet alle 3 im Admin Interface auf den Server. Alle generierten Files werden im Ordner /konakart/custom/war/ abgelegt:</p>
<p><strong>birtviewer.war<br />
konakart.war<br />
konakartadmin.war</strong></p>
<p>Nachdem Ihr die .war Files im glassfish deployed habt, geht es an die Datenbank. Soweit noch keine vorhanden ist. Hierzu ladet euch auf den Server am besten per FTP die <strong>konakart_demo.sql.</strong> Diese findet ihr unter: <strong>/konakart/database/MySql/</strong></p>
<p>Geht in die Konsole und legt die Datenbank an:</p>
<pre name="code" class="sql" >
# &gt; mysql -u root -p
mysql &gt; CREATE DATABASE konakart;
mysql &gt; quit;
</pre>
<p>anschließend noch die konakart_demo.sql in die konakart datenbank importieren.</p>
<pre name="code" class="sql" >
# &gt; mysql -u root -p konakart &lt; ./var/tmp/konakart_demo.sql
</pre>
<p>Nachdem ihr erfolgreich die Datenbank importiert habt, müsst ihr nur noch in den Application Ordner von Konakart die properties Files anpassen:<br />
Also zurück in den domain Ordner des glassfisher z.B.</p>
<p><strong>Konakart</strong><br />
/var/glassfish/domains/domain1/applications/j2ee-modules/konakart/WEB-INF/classes/konakart.properties<br />
<strong>KonakartAdmin</strong><br />
/var/glassfish/domains/domain1/applications/j2ee-modules/konakartadmin/WEB-INF/classes/konakartadmin.properties</p>
<p>darin findet ihr schon die Einträge für die Datenbank. Einfach die Nutzer und das Passwort noch anpassen euren Glassfish neu starten und viola das System läuft.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F30%2Fkonakart-auf-glassfish-laufen-lassen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1153&amp;md5=ee807d89d005f6739cca3457906d27ad" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/09/30/konakart-auf-glassfish-laufen-lassen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Konakart &#8211; SOAP &#8211; Kategorien lesen/anlegen</title>
		<link>http://www.jkoeber.de/2011/09/23/konakart-soap-kategorien-lesenanlegen/</link>
		<comments>http://www.jkoeber.de/2011/09/23/konakart-soap-kategorien-lesenanlegen/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 21:42:48 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorials / How to do]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[category]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[konakart]]></category>
		<category><![CDATA[read]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[synchronize]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Webservice]]></category>
		<category><![CDATA[write]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1137</guid>
		<description><![CDATA[Arbeiten mit dem Konakart Webservice kann einige Schwierigkeiten mit sich bringen. Ich war auch erst einmal ein paar Stunden und Tage darüber die passende IDE und den richtigen Weg zu wählen. Meine Lösung:

Eclipse mit einer virtuellen Maschine auf der eine Konakartinstallation läuft.

Netbeans RPC Webservices ist leider nicht möglich da sich Netbeans dagegen sträubt und ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F23%2Fkonakart-soap-kategorien-lesenanlegen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Arbeiten mit dem Konakart Webservice kann einige Schwierigkeiten mit sich bringen. Ich war auch erst einmal ein paar Stunden und Tage darüber die passende IDE und den richtigen Weg zu wählen. Meine Lösung:</p>
<p>Eclipse mit einer virtuellen Maschine auf der eine Konakartinstallation läuft.</p>
<p>Netbeans RPC Webservices ist leider nicht möglich da sich Netbeans dagegen sträubt und scheinbar einige Teile der WSDL falsch übersetzt. Wie ich schon in ein paar Beiträgen vorher beschrieben habe wäre es sinnvoll die Serviceverbindung und Abarbeitung aller Daten in einem Eclipse Projekt durch zu führen.</p>
<p><strong>Schritt 1:</strong> Verbindung zu Konakart</p>
<pre name="code" class="java">
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.konakartadmin.ws.KKWSAdminIf;
import com.konakartadmin.ws.KKWSAdminIfServiceLocator;

/**
* KonakartService Class
* per extend in die Subklasse z.b. Kategorie einbinden und per aufruf init()
* zum webservice verbinden
**/
public class KonakartService {
    public static Log log = LogFactory.getLog(KonakartService.class);
    public static KKWSAdminIf eng;

    /** Default credentials for accessing the KonaKart Application Engine */
    private static String DEFAULT_USERNAME = "admin@konakart.com";
    private static String DEFAULT_PASSWORD = "princess";

    /** The session id returned by a successful login */
    public static String sessionId;

    /**
     * @param args
     */
    public static void init() {
        try {
            /*
             * Instantiate a KonaKart Engine instance
             */
            eng = new KKWSAdminIfServiceLocator().getKKWSAdmin();
            eng.setEndpoint("MEINEIP"); // set ip address or hostname

            sessionId = eng.login(DEFAULT_USERNAME, DEFAULT_PASSWORD); // get session id
            log.info(DEFAULT_USERNAME + " logged in successfully and got session " + sessionId);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
</pre>
<p><strong>Schritt 2:</strong> Kategorien lesen</p>
<pre name="code" class="java">
	private void synchronize() {
	   // Auslesen des Hauptmenu's
	   AdminCategory[] webShopMainMenu = getWebshopMainMenu(2);
	}

        /**
        * Laden des Hauptmenu's anhand der Language ID
        **/
	private static AdminCategory[] getWebshopMainMenu(int languageId) throws RemoteException {
		AdminCategory[] categories = eng.getCategoryTree(languageId,true);
		for(int i=0;i < categories.length;i++) {
			generateTree(categories[i]);
		}
		return categories;
	}

	private static void generateTree(AdminCategory item) {
		AdminCategory[] children = item.getChildren();
		for(int c=0;c < children.length;c++) {
			System.out.println("CHILDREN: " + children[c].getName());
			if(children[c].getChildren().length > 0) {
				generateTree(children[c]);
			}
		}
	}
</pre>
<p><strong>Schritt 3:</strong Kategorie anlegen</p>
<pre name="code" class="java">
        // Beschreibung, auch Multilanguage möglich, einfach das Array um 1 erweitern
	AdminCategoryDescription[] description = new AdminCategoryDescription[1];
	description[0].setDescription(&#8220;Testbeschreibung&#8221;);
	description[0].setName(&#8220;Beschreibung 1&#8243;);
	description[0].setLanguageId(eng.getLanguageByCode(&#8220;de_DE&#8221;).getId());
	description[0].setLanguage(eng.getLanguageByCode(&#8220;de_DE&#8221;));

	// Kategoriedaten
	AdminCategory category = new AdminCategory();
	category.setDescription(&#8220;Beschreibung&#8221;);
	category.setDescriptions(description);
	category.setInvisible(false);
	category.setName(&#8220;Kategorie 1&#8243;);

	// Kategorie anlegen
	eng.insertCategory(sessionId, category);
</pre>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F23%2Fkonakart-soap-kategorien-lesenanlegen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1137&amp;md5=3d27986db907b2d664ffc30bcee7119f" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/09/23/konakart-soap-kategorien-lesenanlegen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android: ListViews optimieren und Felder ändern</title>
		<link>http://www.jkoeber.de/2011/09/22/android-listviews-optimieren/</link>
		<comments>http://www.jkoeber.de/2011/09/22/android-listviews-optimieren/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 10:14:36 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Tutorials / How to do]]></category>
		<category><![CDATA[Adapter]]></category>
		<category><![CDATA[Buffer]]></category>
		<category><![CDATA[Listview]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Recycle]]></category>
		<category><![CDATA[Speichernutzung]]></category>
		<category><![CDATA[static]]></category>
		<category><![CDATA[View]]></category>
		<category><![CDATA[ViewHolder]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1129</guid>
		<description><![CDATA[Wie schon angeschlagen im letzten Post, heute geht es um die ListView Optimierung in Android. In einem sehr interessanten Webcast von Google I/O 2010 gab es schon einiges sehr sinnvolles zu ListViews und auch wieder einiges was ich dazu gelernt habe.

Für alle die es interessiert: The World of ListView



&#160;

Hier noch das Tutorial bzw. HowTo ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F22%2Fandroid-listviews-optimieren%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Wie schon angeschlagen im letzten Post, heute geht es um die ListView Optimierung in Android. In einem sehr interessanten Webcast von Google I/O 2010 gab es schon einiges sehr sinnvolles zu ListViews und auch wieder einiges was ich dazu gelernt habe.</p>
<p>Für alle die es interessiert: <strong>The World of ListView</strong></p>
<p><iframe src="http://www.youtube.com/embed/wDBM6wVEO70" frameborder="0" width="475" height="315"></iframe></p>
<p>&nbsp;</p>
<p>Hier noch das Tutorial bzw. HowTo zu dem Video. Wozu ViewHandler gebraucht werden und wie man Speicherschonend die ListViews befüllt. Anschließend noch ein kleiner Ausschnitt wie man ListViews aktualisiert mit <strong>notifyDataSetChanged().</strong></p>
<p>Ich gehe davon aus das jeder weiß wie man eine ListView in der Layout.xml definiert, daher fangen wir sofort an mit der implementierung der View im Code.</p>
<p><strong>Step 1</strong></p>
<p>ListView in der Activity aufrufen.</p>
<p>&nbsp;</p>
<pre class="java" name="code">import java.util.ArrayList;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ListView;

public class ListActivity extends Activity {

	private Context ctx;
	private ListView liste;
	private ListeItemAdapter adapter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.liste);
		this.ctx = this;

		List<String >items = new ArrayList<String>();
		for(int i=0;i<100;i++) {
			items.add(new ListeItemAdapter().randomText);
		}

		adapter = new ListeItemAdapter(this, R.layout.liste_item, items);
		liste = (ListView) findViewById(R.id.liste);
		liste.setAdapter(adapter);
	}
}
</pre>
<p>Der Adapter und somit das Herzstück des Tutorials. Wie definiere ich einen ViewHolder zum speichern der statischen Views für eine sinnvolle Speicherwiedernutzung.</p>
<pre class="java"  name="code">import java.util.List;
import java.util.Random;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class ListeItemAdapter extends BaseAdapter {

	private Context ctx;
	private int rowResID;
	private List<String> itemList;
	private LayoutInflater layoutInflater;
	public String randomText = myRandomText();

	private static class ViewHolder {
		public static TextView text1;
		public static TextView text2;
		public static TextView text3;
		public static ImageView status;
	}

	public ListeItemAdapter() { }

	public ListeItemAdapter(final Context ctx, final int rowResID, final List<String> itemList) {
		this.ctx = ctx;
		this.rowResID = rowResID;
		this.itemList = itemList; 

		layoutInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	}

	public int getCount() {
		return this.itemList.size();
	}

	public Object getItem(int position) {
		return this.itemList.get(position);
	}

	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	public void setItemList(List<String> itemList) {
		this.itemList = itemList;
	}

	public View getView(int position, View v, ViewGroup vg) {
		ViewHolder holder;

		// prüfen ob eine view bereits existiert
		if(v == null || v.getTag() == null) {
			holder = new ViewHolder();
			v = layoutInflater.inflate(rowResID, null); // inflate the item layout!
			holder.text1 = (TextView) v.findViewById(R.id.text1);
			holder.text2 = (TextView)v.findViewById(R.id.text2);
			holder.text3 = (TextView)v.findViewById(R.id.text3);
			holder.status = (ImageView) v.findViewById(R.id.status);
			v.setTag(holder); // viewholder setzen
		} else {
		// laden der Views über den ViewHolder
			holder = (ViewHolder) v.getTag();
		}

		// get item value
		String item = itemList.get(position);

		// Views füllen
		holder.text1.setText(item);
		holder.text2.setText(myRandomText());
		holder.text3.setText(myRandomText());
		holder.status.setImageResource(myRandomImage());

        return v;
	}

	/**
	 * get random String value
	 * @return String
	 */
	public String myRandomText() {
		String[] values = new String[] { "Hase","Hund","Katze","Maus","Schwein","Pferd","Esel","Kuh","Henne","Hahn","Vogel","Affe","Giraffe","Schlange" };
		Random generator = new Random();
		return values[generator.nextInt(values.length)];
	}
	/**
	 * get random Image Resource
	 * @return int
	 */
	private int myRandomImage() {
		int[] values = new int[] { R.drawable.tick_green_00, R.drawable.tick_green_01, R.drawable.tick_green_02, R.drawable.tick_green_03 };
		Random generator = new Random();
		return values[generator.nextInt(values.length)];
	}

}</pre>
<p>Somit wäre eigentlich alles geklärt. Es ist fast selbst beschreibend für die, die sich schon mit ListViews auseinander gesetzt haben.<br />
Wir werden jetzt mit einem Handler in der MainActivity noch ein delayed Handler aufrufen indem wir die Werte der Listview ändern.<br />
Hier die veränderte Activity.</p>
<p><strong><span style="color: #339966;">PART 2</span></strong></p>
<p><strong>Step1</strong></p>
<pre class="java" name="code">
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ListView;

public class ListActivity extends Activity {

	private Context ctx;
	private ListView liste;
	private ListeItemAdapter adapter;
	private Handler handler;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.liste);
		this.ctx = this;
		handler = new Handler();

		List<String >items = new ArrayList<String>();
		for(int i=0;i<100;i++) {
			items.add(new ListeItemAdapter().randomText);
		}

		adapter = new ListeItemAdapter(this, R.layout.liste_item, items);
		liste = (ListView) findViewById(R.id.liste);
		liste.setAdapter(adapter);

		Thread updateListViewThread = new Thread() {
			@Override
			public void run() {
				super.run();

				final List<String >items = new ArrayList<String>();
				for(int i=0;i<100;i++) {
					items.add(new ListeItemAdapter().randomText);
				}

				handler.postDelayed(new Runnable() {
					@Override
					public void run() {
						adapter.setItemList(items);
						adapter.notifyDataSetChanged();
					}
				}, 5000);

			}
		};
		updateListViewThread.start();

	}

}
</pre>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F22%2Fandroid-listviews-optimieren%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1129&amp;md5=87fab0ff98345a25c687d39407f49950" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/09/22/android-listviews-optimieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Workaround für Konakart und Netbeans</title>
		<link>http://www.jkoeber.de/2011/09/19/workaround-fur-konakart-und-netbeans/</link>
		<comments>http://www.jkoeber.de/2011/09/19/workaround-fur-konakart-und-netbeans/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 21:58:12 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jax-rpc]]></category>
		<category><![CDATA[Jee]]></category>
		<category><![CDATA[konakart]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[RPC]]></category>
		<category><![CDATA[Schnittstelle]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[Webservice]]></category>
		<category><![CDATA[webshop]]></category>
		<category><![CDATA[workaround]]></category>
		<category><![CDATA[wsdl]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1124</guid>
		<description><![CDATA[Es ist ein Graus. Konakart Webshop Software arbeitet per SOAP Schnittstelle einfach nicht mit Netbeans zusammen. Die Java IDE ist sehr einfach und auch das Webservice einbinden ist mit ein paar Klicks erledigt. Ich werde euch, wenn ich noc eine andere Lösung finde darüber informieren. Aber derzeit ist es mir nicht möglich gewesen einen ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F19%2Fworkaround-fur-konakart-und-netbeans%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Es ist ein Graus. Konakart Webshop Software arbeitet per SOAP Schnittstelle einfach nicht mit Netbeans zusammen. Die Java IDE ist sehr einfach und auch das Webservice einbinden ist mit ein paar Klicks erledigt. Ich werde euch, wenn ich noc eine andere Lösung finde darüber informieren. Aber derzeit ist es mir nicht möglich gewesen einen vernünftigen, vorallem schnellen Workaround für das Problem zu schaffen. Auch das anpassen der WSDL Files bringt keinen rechten Erfolg daher einen kurzen Tipp von mir.</p>
<p>Ladet euch Eclipse herunter und startet ein Java Projekt. Führt hierbei den den Webservice Client Punkt aus und includiert beide WSDL Files. Im Normalfall findet ihr sie unter:</p>
<p><span style="color: #993300;">http://meinserver.local/konakart/services/KKWebServiceEng?wsdl</span><br />
<span style="color: #993300;"> http://meinserver.local/konakartadmin/services/KKWSAdmin?</span></p>
<p>Anschließend könnt ihr per Import in Netbeans das Projekt in euere IDE importieren. Die fehlenden JAR&#8217;s werden direkt verlinkt. Dieses könnt ihr in euer Hauptprojekt so einbinden und übernehmen. Es läuft ohne Probleme.</p>
<p>Es ist keine vernünftiger Workaround und eigentlich auch schade das es bisher auch noch keine vernünftige Lösung von Konakart gibt. Evtl. schaffe ich es noch die WSDL Files so anzupassen das sie auch vernünftig im Netbeans verarbeitet wird.</p>
<p>Die JAX-RPC Plugin Erweiterung im Netbeans macht schon einige Fortschritte.</p>
<p><a href="http://wiki.netbeans.org/MovingJaxrpcToUpdateCenter" target="_blank">http://wiki.netbeans.org/MovingJaxrpcToUpdateCenter</a></p>
<p>Aber das gelbe vom Ei ist es noch nicht. Falls jemand schon andere Erfahrungen damit gemacht hat oder wie einfach es sich mit der RMI Schnittstelle arbeitet, lasst es mich bitte wissen.</p>
<p>&nbsp;</p>
<p>Kleine Vorschau zum nächsten Blogeintrag:</p>
<p><strong>Thema</strong>: Android &#8211; <em>Listviews</em> optimieren und mit <em>Viewhandlern</em> arbeiten. Recyceln von Views. Änderungen in Listviews darstellen. Das richtige Ansprechen von Feldern in Listviews. <em>2 verschiedene Möglichkeiten</em>.</p>
<p>&nbsp;
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F19%2Fworkaround-fur-konakart-und-netbeans%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1124&amp;md5=7985425325852dece2e10c4abcbce040" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/09/19/workaround-fur-konakart-und-netbeans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android AIDL Prozess erstellen</title>
		<link>http://www.jkoeber.de/2011/08/01/android-aidl-prozess-erstellen/</link>
		<comments>http://www.jkoeber.de/2011/08/01/android-aidl-prozess-erstellen/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 18:48:34 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorials / How to do]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[AIDL]]></category>
		<category><![CDATA[Beispiel]]></category>
		<category><![CDATA[Einfach]]></category>
		<category><![CDATA[Example]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Remote Service]]></category>
		<category><![CDATA[sample]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1117</guid>
		<description><![CDATA[AIDL Prozesse oder Services sind Schnittstellen zur Kommunikation und Automatisierung außerhalb der App. Wenn deine App für Widgets oder auch für länger laufende Prozesse einiges an Ressourcen benötigt und vor allem auch nach dem schließen der Applikation weiter arbeiten soll. z.B. Streamen von Musik oder Aktualisieren von Daten bei Newsfeed's etc. sind sogenannte Remote ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F08%2F01%2Fandroid-aidl-prozess-erstellen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>AIDL Prozesse oder Services sind Schnittstellen zur Kommunikation und Automatisierung außerhalb der App. Wenn deine App für Widgets oder auch für länger laufende Prozesse einiges an Ressourcen benötigt und vor allem auch nach dem schließen der Applikation weiter arbeiten soll. z.B. Streamen von Musik oder Aktualisieren von Daten bei Newsfeed&#8217;s etc. sind sogenannte Remote Services sinnvoll.</p>
<p>Remoteservices werden mit einer .aidl file spezifiziert, dieses beinhaltet eine Interfaceklasse die die Struktur des späteren Services erzeugt. Vieles zur Kommunikation mit dem System erzeugt Eclipse wieder von alleine, um das wir uns nicht kümmern müssen. Einmal verstanden ist es halb so schwer.</p>
<p>Mein Mainpackage z.B. <strong>de.jkoeber.testapp</strong> darin erstelle ich eine .aidl file mit dem Namen <strong>MyRemoteService.aidl</strong></p>
<pre name="code" class="java">package de.jkoeber.testapp;/** service interface */
interface MyRemoteService{
void startUpate();
void stopUpdate();
boolean isUpdating();
}
</pre>
<p>Aus dieser AIDL File erstellt der Builder von Eclipse in den Ordner <strong>gen</strong> die Java Klasse zur Kommunikation mit dem Systemen.</p>
<p>Im nächsten Step registrieren wir den Service in der App. Andernfalls kann das ganze Programm nicht mit der File umgehen. Also fügen wir z.B. folgendes in die <strong>AndroidManifest.xml</strong> ein.</p>
<pre name="code" class="xml">
<service android:name=".remoteservices.MyRemoteService" android:process=":remote">
  <intent-filter>
    <action android:name="de.jkoeber.testapp.MyRemoteService" />
    <action android:name="de.jkoeber.testapp.REMOTE_SERVICE" />
  </intent-filter>
</service>
</pre>
<p>Jetzt zur Erklärung. Ein Remoteservice wird über die Interfacefile erzeugt. Dem Remoteservice hängt aber eine Klasse an, die die angegebenen Funktionen im Interface ausführt. das wäre dann in der Zeile: <strong>android:name=&#8221;.remoteservices.MyRemoteService&#8221;</strong> Das heißt, ich hab ein neues Packages erstellt das .remoteservices heißt und hab darin die Klasse MyRemoteService erzeugt. Per Intent Filter wird anschließend die Interface .aidl Datei angegeben.</p>
<p>Jetzt erzeugen wir noch die Klasse zur AIDL. Es ist wie bei jedem Interface, das es einer Klasse zu Grunde liegt.</p>
<pre name="code" class="java">
package de.jkoeber.testapp.remoteservices;

import java.util.ArrayList;
import java.util.List;

import de.jkoeber.testapp.MyRemoteService;

public class MyRemoteService extends Service {
    private Handler handler = new Handler();

    @Override
    public void onCreate() {
        super.onCreate();
        ctx= this;
    }

    @Override
    public IBinder onBind(Intent intent) {
        // Return the interface
        return mBinder;
    }

    private final MyRemoteService.Stub mBinder = new MyRemoteService.Stub() {
		@Override
		public void startUpate() throws RemoteException {
		    // start update
		}

		/**
		 * stop updating service
		 */
		@Override
		public void stopUpdate() throws RemoteException {
                    // stop service
		}

		/**
		 * check if update is running
		 */
		@Override
		public boolean isUpdating() throws RemoteException {
                   // check if service is running
                }
    };

}
</pre>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F08%2F01%2Fandroid-aidl-prozess-erstellen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1117&amp;md5=95a2852670f9fd7044a813e30705eb71" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/08/01/android-aidl-prozess-erstellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android SDK Manager Error: unknown option: -</title>
		<link>http://www.jkoeber.de/2011/08/01/android-sdk-manager-error-unknown-option/</link>
		<comments>http://www.jkoeber.de/2011/08/01/android-sdk-manager-error-unknown-option/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 13:07:25 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorials / How to do]]></category>
		<category><![CDATA[-]]></category>
		<category><![CDATA[1&1]]></category>
		<category><![CDATA[10]]></category>
		<category><![CDATA[12]]></category>
		<category><![CDATA[13]]></category>
		<category><![CDATA[AVD]]></category>
		<category><![CDATA[emulator]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[geht nicht mehr]]></category>
		<category><![CDATA[kein emulator]]></category>
		<category><![CDATA[lässt sich nicht starten]]></category>
		<category><![CDATA[Manager]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[starten]]></category>
		<category><![CDATA[starting]]></category>
		<category><![CDATA[unknown option]]></category>
		<category><![CDATA[version]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1119</guid>
		<description><![CDATA[Wer den Fehler: unknown option: - please use -help for a list of valid options steht erstmal vor einem Rätsel. Es ist aber ziemlich einfach. Da Android eher von Google kommt und damit auch eher die Unix und Mac Programmierer ansprechen will stellt man sich dem dummen Windows Nutzer quer und baut schnell mal ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F08%2F01%2Fandroid-sdk-manager-error-unknown-option%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Wer den Fehler: unknown option: &#8211; please use -help for a list of valid options steht erstmal vor einem Rätsel. Es ist aber ziemlich einfach. Da Android eher von Google kommt und damit auch eher die Unix und Mac Programmierer ansprechen will stellt man sich dem dummen Windows Nutzer quer und baut schnell mal seinen AVD Manager um.</p>
<p>Seit der aktuelle Version des SDK und AVD Managers ist es nicht mehr gestattet mit Leerstellen im Pfad zum AVD Manager zu arbeiten.<br />
Wer voher einen ähnlichen Pfad wie ich hatte mit Leerstelle. zum Beispiel: <em>c:\Program Files\Android\SDK-Manager\</em> wird jetzt ziemlich schnell enttäuscht und man erhält den Fehler: <strong>unknown option: &#8211; please use -help for a list of valid options</strong> </p>
<p>Typischerweise gibt es kein Logging und somit beginnt eine dreitägige Tour der Suche in den endlosen Weiten der Updates und Reinstallationen um einen solch banalen Fehler zu finden. Für alle anderen die den Fehler auch haben und sich Emulatoren nicht mehr vernünftig starten lassen. Ladet euren SDK Manager in ein Verzeichnis ohne Leerstellen: <em>c:\android\sdk-manager\</em> und schon funktoiniert es wie gehabt.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F08%2F01%2Fandroid-sdk-manager-error-unknown-option%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1119&amp;md5=93b66f8583e5ba66744da6a1f18868ed" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/08/01/android-sdk-manager-error-unknown-option/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

