<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8159671505356365656</id><updated>2012-02-17T12:28:48.907+01:00</updated><category term='einstellung'/><category term='hilfe'/><category term='strange'/><category term='SpringRoo'/><category term='finanzamt'/><category term='springsource'/><category term='javascript'/><category term='encoding'/><category term='sonderzeichen'/><category term='bug'/><category term='apple'/><category term='mailbox'/><category term='visibility'/><category term='spring mvc'/><category term='jira'/><category term='github'/><category term='rufumleitung'/><category term='demo'/><category term='atlassian'/><category term='exceptions'/><category term='photooapp'/><category term='encryption'/><category term='defect'/><category term='opensource'/><category term='utf8'/><category term='script'/><category term='special chars'/><category term='handy'/><category term='elster'/><category term='umlaute'/><category term='app'/><category term='tipp'/><category term='mobilfunk'/><category term='ftplicity'/><category term='comments'/><category term='utility'/><category term='safari'/><category term='6u22'/><category term='backup'/><category term='broken'/><category term='apache'/><category term='cronjob'/><category term='i18n'/><category term='java'/><category term='workaround'/><category term='translation'/><category term='security'/><category term='tutorial'/><category term='elster eportal'/><category term='mac os x'/><category term='utf-8'/><category term='duplicity'/><category term='idee'/><category term='sample'/><category term='zeichensatz'/><category term='properties'/><category term='jquery'/><category term='iPhone'/><category term='defekt'/><category term='tipps'/><category term='server'/><category term='ubuntu'/><category term='kaputt'/><category term='gsmcode'/><title type='text'>Goldstift's blogspot - my 2 cent</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8159671505356365656.post-6167049786193579817</id><published>2011-10-24T23:31:00.000+02:00</published><updated>2011-11-07T08:24:23.482+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='spring mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='properties'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><category scheme='http://www.blogger.com/atom/ns#' term='i18n'/><category scheme='http://www.blogger.com/atom/ns#' term='translation'/><category scheme='http://www.blogger.com/atom/ns#' term='SpringRoo'/><category scheme='http://www.blogger.com/atom/ns#' term='exceptions'/><title type='text'>SpringRoo: Howto translate Java exceptions to user-friendly error messages</title><content type='html'>&lt;h3&gt;Introduction&lt;/h3&gt;This blog post belongs to a tutorial series on &lt;a href="http://www.springsource.org/roo/why"&gt;SpringRoo&lt;/a&gt; 1.2.0 which uses the sample application "&lt;a href="https://github.com/aheusingfeld/photooapp/"&gt;photooapp&lt;/a&gt;" to provide practical examples.&lt;br /&gt;Within this blog post I will try to explain how you can configure your SpringRoo application to translate well-known exceptions to user-friendly error messages.&lt;br /&gt;By default SpringRoo's exception handling is very basic meaning the technical exception message is directly presented to the user. Our aim is to provide the user with human-readable error messages he (most probably) can understand and react upon. &lt;br /&gt;&lt;h3&gt;Basics: Translations in Spring MVC&lt;/h3&gt;First of all we need to make ourselves familiar with the translation process in Spring MVC. To translate any given String to the currently set browser locale, Spring MVC uses so called "message codes". These codes are defined in property files which are located in "src/main/webapp/WEB-INF/i18n/application.properties". For each supported locale there will be a separate application.properties file, e.g. application_de.properties for german translations of the message codes. The "application.properties" file must always be used as the fallback reference.&lt;br /&gt;&lt;h3&gt;Adding a sample Translation&lt;/h3&gt;So let's say, we wanted to translate a "org.hibernate.exception.ConstraintViolationException" which is thrown whenever the user tries to create a "duplicate entry".&lt;br /&gt;Therefore we would add the following line to the application.properties file:&lt;br /&gt;&lt;pre style="background-color: #f3f3f3; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;    exceptions.db.duplicateentry=The record could not be saved as there is already a record in the database having the same unique identifier\!&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;Customize exception JSP&lt;/h3&gt;Next we prepare the "uncaughtException.jspx" which is the default JSP for exception handling in Spring MVC. To keep it simple, we'll remove the lines with the "-" and add the ones with "+":&lt;br /&gt;&lt;script src="https://gist.github.com/1314197.js?file=uncaughtException.jspx"&gt;&lt;/script&gt;With the help of the little snipped '&lt;i&gt;&amp;lt;spring:message code="${exception.message}" /&amp;gt;&lt;/i&gt;' Spring searches for a property with the name of the Exception's message in the above named property file. Therefore we "only" need to find a way to set "exceptions.db.duplicateentry" as the Exception's message. &lt;br /&gt;&lt;h3&gt;Spring MVC ExceptionResolver&lt;/h3&gt;The ExceptionResolver in Spring MVC is used to determine which JSP fits best whenever any Exception is thrown. In my opinion this is the perfect place to perform our little magic.To accomplish this and be able to handle any kind of Exception in the most flexible way I added the following three classes (links lead you to github):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://github.com/aheusingfeld/photooapp/blob/eb9fb0d8b46c50c27a8fdb1e2c01a498fed4b136/src/main/java/de/goldstift/photoo/web/exceptions/I18nMappingExceptionResolver.java" target="_blank"&gt;I18nMappingExceptionResolver&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/aheusingfeld/photooapp/blob/eb9fb0d8b46c50c27a8fdb1e2c01a498fed4b136/src/main/java/de/goldstift/photoo/web/exceptions/AnalyzedApplicationException.java" target="_blank"&gt;AnalyzedApplicationException&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/aheusingfeld/photooapp/blob/eb9fb0d8b46c50c27a8fdb1e2c01a498fed4b136/src/main/java/de/goldstift/photoo/web/exceptions/MessageMatchCriteria.java" target="_blank"&gt;MessageMatchCriteria&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;The &lt;i&gt;I18nMappingExceptionResolver&lt;/i&gt; is configured via a number of &lt;i&gt;MessageMatchCriteria&lt;/i&gt; and wraps the original exception inside an &lt;i&gt;AnalyzedApplicationException&lt;/i&gt;. The ladder will then have the translatable property as "message". The &lt;i&gt;I18nMappingExceptionResolver&lt;/i&gt; has to be set as the default exception resolver which is done by changing the following in &lt;i&gt;webmvc.xml&lt;/i&gt;:&lt;br /&gt;&lt;script src="https://gist.github.com/1314197.js?file=webmvc.xml"&gt;&lt;/script&gt;The relevant change is the property "messageMapping" which contains a map of the a fore mentioned &lt;i&gt;MessageMatchCriteria&lt;/i&gt; which are mapped to translatable properties. The "classNamePart" can hold a simple or fully qualified class name or just a part of it. The same applies to the "messagePart" attribute - as you can see in the sample above, the term "Duplicate entry" is part of the original exception message and if found will return a different property name than a normal ConstraintViolationException. I should mention that the classPart and the messagePart are searched in the complete stacktrace of the original exception.&lt;br /&gt;Another thing to note is that the &lt;i&gt;AnalyzedApplicationException&lt;/i&gt; makes it easy to access the originals root cause e.g. in the JSP as it's accessible via the attribute "rootCause". Therefore the variable "${exception.rootCause.message}" will resolve to the root cause's exception message.&lt;br /&gt;&lt;h3&gt;Resume&lt;/h3&gt;All the changes have already been done to photooapp so you can review all the changes by taking a look at the following commit statement: &lt;a href="https://github.com/aheusingfeld/photooapp/commit/eb9fb0d8b46c50c27a8fdb1e2c01a498fed4b136" target="_blank"&gt;https://github.com/aheusingfeld/photooapp/commit/eb9fb0d8b46c50c27a8fdb1e2c01a498fed4b136&lt;/a&gt;&lt;br /&gt;Please leave a comment if you have any questions or good advice for improving the blog post series. Thanks in advance.&lt;br /&gt;&lt;h3&gt;Further links&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Photooapp sourcecode at Github: &lt;a href="https://github.com/aheusingfeld/photooapp"&gt;https://github.com/aheusingfeld/photooapp&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SpringRoo Website: &lt;a href="http://www.springsource.org/roo"&gt;www.springsource.org/roo&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SpringRoo Downloads at Github: &lt;a href="https://github.com/SpringSource/spring-roo/archives/master"&gt;https://github.com/SpringSource/spring-roo/archives/master&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Spring Reference Documentation: &lt;a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-exceptionhandlers"&gt;Spring MVC - ExceptionResolver&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Other blog posts of this series&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://goldstifts.blogspot.com/2011/09/starting-photooapp-springroo-tutorial.html"&gt;Starting PhotooApp - A SpringRoo tutorial application (German)&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://goldstifts.blogspot.com/2011/09/springroo-entity-klassen-und-jpa.html"&gt;SpringRoo: Entity-Klassen und JPA-Repositories mit SpringRoo erstellen (German)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://goldstifts.blogspot.com/2011/10/springroo-howto-translate-java.html"&gt;SpringRoo: Howto translate Java exceptions to user-friendly error messages (English)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SpringRoo: Spring JS/ Dojo durch jQuery ersetzen&lt;/li&gt;&lt;li&gt;SpringRoo: Standard-Auswahllisten in Textfelder mit dynamischen Vorschlagswerten umbauen&lt;/li&gt;&lt;li&gt;SpringRoo: Excel-Download für alle Listen-Seiten mit minimalem Aufwand &lt;/li&gt;&lt;li&gt;SpringRoo: Dynamische Finder mit Hilfe der JPA Criteria API&lt;/li&gt;&lt;li&gt;SpringRoo: Standardwebseiten auf smartphone-kompatibles HTML5 aktualisieren&lt;/li&gt;&lt;/ul&gt;&lt;script type="text/javascript"&gt;var dzone_url = 'http://goldstifts.blogspot.com/2011/10/springroo-howto-translate-java.html';&lt;/script&gt;&lt;script type="text/javascript"&gt;var dzone_style = '2';&lt;/script&gt;&lt;script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8159671505356365656-6167049786193579817?l=goldstifts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/6167049786193579817/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://goldstifts.blogspot.com/2011/10/springroo-howto-translate-java.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/6167049786193579817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/6167049786193579817'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/2011/10/springroo-howto-translate-java.html' title='SpringRoo: Howto translate Java exceptions to user-friendly error messages'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8159671505356365656.post-3027485685084131306</id><published>2011-10-01T00:33:00.001+02:00</published><updated>2011-10-01T00:42:24.538+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='einstellung'/><category scheme='http://www.blogger.com/atom/ns#' term='mobilfunk'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='gsmcode'/><category scheme='http://www.blogger.com/atom/ns#' term='tipp'/><category scheme='http://www.blogger.com/atom/ns#' term='hilfe'/><category scheme='http://www.blogger.com/atom/ns#' term='rufumleitung'/><category scheme='http://www.blogger.com/atom/ns#' term='mailbox'/><category scheme='http://www.blogger.com/atom/ns#' term='handy'/><title type='text'>iPhone: Wartezeit für Rufumleitung bei Abwesenheit setzen</title><content type='html'>&lt;h2&gt;Frage: Wie kann man eigentlich am iPhone die Zeit oder die Anzahl der Klingelzeichen einstellen, die das Telefon wartet, bis ein nicht angenommener Anruf bspw. an die Mailbox weitergeleitet wird?&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Antwort:&lt;/b&gt;&lt;br /&gt;Diese Weiterleitung nennt man auch "Rufumleitung wenn keine Rufannahme"&lt;br /&gt;&lt;br /&gt;Da dies nicht Telefon-spezifisch sondern eine Einstellung in den Systemen des Netzbetreibers ist, gibt es hierfür nicht in jedem Telefon einen Menüpunkt oder eine Einstellungsmöglichkeit. So auch nicht beim Apple iPhone.&lt;br /&gt;&lt;br /&gt;Es gibt aber dennoch die Möglichkeit, diese Einstellung über einen sog. GSM-Code zu ändern. Eine Übersicht der meisten Codes gibt es unter http://www.gsmcodes-online.de/&lt;br /&gt;Zur Rufumleitung: http://www.gsmcodes-online.de/Rufumleitungen/rufumleitungen.html&lt;br /&gt;&lt;br /&gt;Diese Nummernfolge muss direkt in den Ziffernblock der "Telefon"-App eingetippt werden. &lt;br /&gt;&lt;br /&gt;&lt;/b&gt;Beispiel "Sprachanrufe nach 30 Sekunden auf die Mailbox umleiten": &lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;**61*MAILBOXNUMMER*11*30#&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Meine MAILBOXNUMMER im Telekom-Netz ist z.B. +49151 13 12345678 dementsprechend lautet die ganze Zeichenkette dann&lt;br /&gt;&lt;em&gt;&lt;br /&gt;**61*+491511312345678*11*30#&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Wie die MailboxNummer bei anderen Providern ist, kann ich leider nicht sagen, man kann aber vorher durch die Eingabe von "*#61#" die aktuelle Einstellung abfragen.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8159671505356365656-3027485685084131306?l=goldstifts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/3027485685084131306/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://goldstifts.blogspot.com/2011/10/iphone-wartezeit-fur-rufumleitung-bei.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/3027485685084131306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/3027485685084131306'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/2011/10/iphone-wartezeit-fur-rufumleitung-bei.html' title='iPhone: Wartezeit für Rufumleitung bei Abwesenheit setzen'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8159671505356365656.post-5857858188196661202</id><published>2011-09-25T00:29:00.002+02:00</published><updated>2011-10-24T23:37:35.888+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='app'/><category scheme='http://www.blogger.com/atom/ns#' term='photooapp'/><category scheme='http://www.blogger.com/atom/ns#' term='idee'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='sample'/><category scheme='http://www.blogger.com/atom/ns#' term='springsource'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='SpringRoo'/><title type='text'>SpringRoo: Entity-Klassen und JPA-Repositories mit SpringRoo erstellen</title><content type='html'>Dies ist der zweite Artikel in meiner Tutorial-Reihe zu &lt;a href="http://www.springsource.org/roo/why"&gt;SpringRoo&lt;/a&gt; 1.2.0 in der die Beispiel-Anwendung "photooapp" entwickelt wird.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Vorbedingungen &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In diesem Beitrag geht es um die initiale Erstellung der Roo-Anwendung. Hierfür müssen folgende Vorbedingungen erfüllt sein:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u27-download-440405.html"&gt;Java Development Kit (JDK) 6 oder höher ist installiert&lt;/a&gt; und im "PATH"  &lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/SpringSource/spring-roo/archives/master"&gt;SpringRoo 1.2.0.M1 wurde heruntergeladen&lt;/a&gt; und installiert&lt;/li&gt;&lt;li&gt;&lt;a href="http://maven.apache.org/download.html"&gt;Apache Maven wurde heruntergeladen&lt;/a&gt; und installiert &lt;/li&gt;&lt;li&gt;lokaler MySQL 5.1 Server wurde installiert und gestartet&lt;/li&gt;&lt;li&gt;Initiales Setup-Skript für MySQL-Datenbank und -Benutzer wurde ausgeführt&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Lokalen Datenbankserver installieren (falls notwendig)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wir gehen davon aus, dass die Anwendung später mit einer MySQL 5.1-Datenbank betrieben werden soll, die auf dem gleichen Server läuft wie die Anwendung.&lt;br /&gt;Um eine ähnliche Umgebung für die Entwicklung zu verwenden, benötigen wir eine lokale MySQL-Installation. Für diejenigen ohne eine lokale Installation ist die wohl einfachste und schnellste Art dies zu erreichen wahrscheinlich das XAMPP-Paket von &lt;a href="http://www.apachefriends.org/de/index.html"&gt;Apachefriends&lt;/a&gt;. Es kann über die URL http://www.apachefriends.org/de/xampp.html heruntergeladen werden.&lt;br /&gt;&lt;br /&gt;Ist die Software installiert und der MySQL-Datenbankserver gestartet, können mit den folgenden beiden Befehlen die Datenbank und der zugehörige Benutzer erstellt werden. Diese Befehle sind auch im &lt;a href="https://github.com/aheusingfeld/photooapp/blob/master/doc/photooapp-mysql-setup.sql"&gt;MySQL-Setup-Skript&lt;/a&gt; enthalten:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ /Applications/XAMPP/xamppfiles/bin/mysql -u root -p&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Enter password: &lt;br /&gt;Welcome to the MySQL monitor.  Commands end with ; or \g.&lt;br /&gt;Your MySQL connection id is 8&lt;br /&gt;Server version: 5.1.44 Source distribution&lt;br /&gt;&lt;br /&gt;Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.&lt;br /&gt;&lt;br /&gt;mysql&amp;gt; CREATE DATABASE photooapp DEFAULT CHARSET=utf8;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;mysql&amp;gt; GRANT ALL ON photooapp.* TO photooapp@localhost IDENTIFIED BY 'pho!00App';&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;mysql&amp;gt; exit&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Bye &lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ &lt;/div&gt;&lt;br /&gt;Nun sollten alle notwendigen Vorbedingungen erfüllt sein und wir können in der SpringRoo shell weitermachen.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Datenmodell-Klassen in SpringRoo erstellen&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Für die Demo-Anwendung "Photooapp" wurde folgendes (vorläufiges) Datenmodell erstellt, das wir nun in SpringRoo umsetzen wollen:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://github.com/aheusingfeld/photooapp/raw/master/doc/class-overview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="571" src="https://github.com/aheusingfeld/photooapp/raw/master/doc/class-overview.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Hierzu öffnen wir die SpringRoo Shell:&lt;br /&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ahe:(git)photooapp[master]/$ ~/dev/tools/spring-roo-1.2.0.M1/bin/roo.sh &lt;br /&gt;____  ____  ____  &lt;br /&gt;/ __ \/ __ \/ __ \ &lt;br /&gt;/ /_/ / / / / / / / &lt;br /&gt;/ _, _/ /_/ / /_/ /  &lt;br /&gt;/_/ |_|\____/\____/    1.2.0.M1 [rev 1fa252f]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.&lt;br /&gt;...&lt;br /&gt;roo&amp;gt; script --file log.roo --lineNumbers true&lt;/div&gt;&lt;br /&gt;Nun gibt es zwei Möglichkeiten:&lt;br /&gt;&lt;br /&gt;a) Man tippt die folgenden Befehle auf der Roo-Shell ein:&lt;br /&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;project de.goldstift.photoo&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;jpa setup --provider HIBERNATE --database MYSQL --databaseName photooapp --userName photooapp --hostName 127.0.0.1 --password pho!00App&lt;br /&gt;&lt;br /&gt;entity --class ~.domain.Tag --activeRecord false --testAutomatically&lt;br /&gt;field string --fieldName name --notNull --sizeMin 2&lt;br /&gt;field string --fieldName lowerCaseName --notNull --sizeMin 2&lt;br /&gt;&lt;br /&gt;entity --class ~.domain.Person --activeRecord false --testAutomatically&lt;br /&gt;field string --fieldName lastname --notNull --sizeMin 2&lt;br /&gt;field string --fieldName firstname&lt;br /&gt;field string --fieldName nickname --notNull&lt;br /&gt;&lt;br /&gt;entity --class ~.domain.Event --activeRecord false --testAutomatically &lt;br /&gt;field string --fieldName name --notNull --sizeMin 2&lt;br /&gt;field date --fieldName fromDate --type java.util.Date --dateTimeFormatPattern "yyyy-MM-dd HH:mm:ss"&lt;br /&gt;field date --fieldName toDate --type java.util.Date --dateTimeFormatPattern "yyyy-MM-dd HH:mm:ss"&lt;br /&gt;&lt;br /&gt;entity --class ~.domain.Folder --activeRecord false --testAutomatically &lt;br /&gt;field string --fieldName title&lt;br /&gt;field date --fieldName createDate --type java.util.Date --dateTimeFormatPattern "yyyy-MM-dd HH:mm:ss"&lt;br /&gt;field string --fieldName systemPath --notNull --sizeMin 1&lt;br /&gt;field string --fieldName urlPath --notNull --sizeMin 1&lt;br /&gt;field boolean --fieldName writable --primitive false&lt;br /&gt;&lt;br /&gt;entity --class ~.domain.PhotoFile --activeRecord false --testAutomatically &lt;br /&gt;field reference --fieldName folder --type ~.domain.Folder --cardinality MANY_TO_ONE --fetch EAGER&lt;br /&gt;field string --fieldName filename --notNull&lt;br /&gt;field number --fieldName width --notNull --type java.lang.Short&lt;br /&gt;field number --fieldName height --notNull --type java.lang.Short&lt;br /&gt;&lt;br /&gt;entity --class ~.domain.Photo --activeRecord false --testAutomatically &lt;br /&gt;field string --fieldName title&lt;br /&gt;field string --fieldName description&lt;br /&gt;field string --fieldName thumbnail --notNull&lt;br /&gt;field reference --fieldName thumbnailFile --type ~.domain.PhotoFile --cardinality MANY_TO_ONE --fetch EAGER&lt;br /&gt;field reference --fieldName previewFile --type ~.domain.PhotoFile --cardinality MANY_TO_ONE --fetch EAGER&lt;br /&gt;field reference --fieldName originalFile --type ~.domain.PhotoFile --cardinality MANY_TO_ONE --fetch EAGER&lt;br /&gt;field date --fieldName importDate --type java.util.Date --dateTimeFormatPattern "MS"&lt;br /&gt;field date --fieldName shotDate --type java.util.Date --dateTimeFormatPattern "MS"&lt;br /&gt;field set --fieldName tags --type ~.domain.Tag --cardinality MANY_TO_MANY --fetch EAGER &lt;br /&gt;field set --fieldName persons --type ~.domain.Person --cardinality MANY_TO_MANY --fetch EAGER &lt;br /&gt;field set --fieldName events --type ~.domain.Event --cardinality MANY_TO_MANY --fetch EAGER &lt;br /&gt;&lt;br /&gt;repository jpa --interface ~.repository.TagRepository --entity ~.domain.Tag&lt;br /&gt;repository jpa --interface ~.repository.EventRepository --entity ~.domain.Event&lt;br /&gt;repository jpa --interface ~.repository.PersonRepository --entity ~.domain.Person&lt;br /&gt;repository jpa --interface ~.repository.PhotoRepository --entity ~.domain.Photo&lt;br /&gt;service --interface ~.service.TagService --entity ~.domain.Tag&lt;br /&gt;service --interface ~.service.EventService --entity ~.domain.Event&lt;br /&gt;service --interface ~.service.PersonService --entity ~.domain.Person&lt;br /&gt;service --interface ~.service.PhotoService --entity ~.domain.Photo&lt;br /&gt;&lt;br /&gt;json all&lt;br /&gt;web mvc setup&lt;br /&gt;web mvc all --package ~.web&lt;/div&gt;&lt;br /&gt;oder&lt;br /&gt;&lt;br /&gt;b) man importiert die Befehle als Roo-Skript (speichern als "log.roo") mit Hilfe des folgenden Befehls:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;roo&amp;gt; script --file log.roo --lineNumbers true&lt;/div&gt;&lt;br /&gt;Anschließend kann die Anwendung über die folgenden Maven Befehle gebaut und gestartet werden:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ahe:(git)photooapp[master]/$ mvn clean package&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;(...) &lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ahe:(git)photooapp[master]/$ mvn jetty:run&lt;/div&gt;&lt;br /&gt;Durch letzteren Befehl wird die Anwendung in einem &lt;a href="http://www.eclipse.org/jetty/about.php"&gt;Jetty ApplicationServer&lt;/a&gt; gestartet, wodurch sie unter &lt;a href="http://localhost:8080/photooapp"&gt;http://localhost:8080/photooapp&lt;/a&gt; verfügbar sein sollte.&lt;br /&gt;&lt;br /&gt;Die komplette Anwendung ist bei github verfügbar unter &lt;a href="https://github.com/aheusingfeld/photooapp"&gt;https://github.com/aheusingfeld/photooapp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Weiterführende Links&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Photooapp Quellcode bei github: &lt;a href="https://github.com/aheusingfeld/photooapp"&gt;https://github.com/aheusingfeld/photooapp&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SpringRoo Webseite: &lt;a href="http://www.springsource.org/roo"&gt;www.springsource.org/roo&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SpringRoo Downloads bei Github: &lt;a href="https://github.com/SpringSource/spring-roo/archives/master"&gt;https://github.com/SpringSource/spring-roo/archives/master&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Apache Maven downloads: &lt;a href="http://maven.apache.org/download.html"&gt;http://maven.apache.org/download.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Weitere Artikel der Reihe&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://goldstifts.blogspot.com/2011/09/starting-photooapp-springroo-tutorial.html"&gt;Starting PhotooApp - A SpringRoo tutorial application&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://goldstifts.blogspot.com/2011/09/springroo-entity-klassen-und-jpa.html"&gt;SpringRoo: Entity-Klassen und JPA-Repositories mit SpringRoo erstellen&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://goldstifts.blogspot.com/2011/10/springroo-howto-translate-java.html"&gt;SpringRoo: Howto translate Java exceptions to user-friendly error messages (English)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SpringRoo: Spring JS/ Dojo durch jQuery ersetzen&lt;/li&gt;&lt;li&gt;SpringRoo: Standard-Auswahllisten in Textfelder mit dynamischen Vorschlagswerten umbauen&lt;/li&gt;&lt;li&gt;SpringRoo: Excel-Download für alle Listen-Seiten mit minimalem Aufwand &lt;/li&gt;&lt;li&gt;SpringRoo: Dynamische Finder mit Hilfe der JPA Criteria API&lt;/li&gt;&lt;li&gt;SpringRoo: Standardwebseiten auf smartphone-kompatibles HTML5 aktualisieren&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8159671505356365656-5857858188196661202?l=goldstifts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/5857858188196661202/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://goldstifts.blogspot.com/2011/09/springroo-entity-klassen-und-jpa.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/5857858188196661202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/5857858188196661202'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/2011/09/springroo-entity-klassen-und-jpa.html' title='SpringRoo: Entity-Klassen und JPA-Repositories mit SpringRoo erstellen'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8159671505356365656.post-7434215755227817161</id><published>2011-09-23T00:35:00.000+02:00</published><updated>2011-10-24T23:38:26.338+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='app'/><category scheme='http://www.blogger.com/atom/ns#' term='photooapp'/><category scheme='http://www.blogger.com/atom/ns#' term='idee'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='sample'/><category scheme='http://www.blogger.com/atom/ns#' term='springsource'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='SpringRoo'/><title type='text'>Starting PhotooApp - A SpringRoo tutorial application</title><content type='html'>Ich hatte bereits &lt;a href="http://goldstifts.blogspot.com/2011/02/umlaute-und-sonderzeichen-in-spring-roo.html"&gt;im Februar angekündigt&lt;/a&gt;, dass ich hier ein paar Artikel über SpringRoo schreiben würde, und nutze nun das Erscheinen des neuen Meilensteins um damit zu beginnen.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Die Idee&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vor ein paar Tagen ist endlich SpringRoo &lt;a href="https://github.com/SpringSource/spring-roo/tree/1.2.0.M1"&gt;1.2.0.M1&lt;/a&gt; erschienen, welches der erste sog. Milestone der nächsten Version von SpringRoo ist. Das Besondere hieran ist &lt;a href="http://blog.springsource.com/2011/09/14/new-application-layering-and-persistence-choices-in-spring-roo/"&gt;die Unterstützung des Repository- oder auch DAO-Models&lt;/a&gt;, welches im Gegensatz zu dem sog. ActiveRecord-Model steht. Bisher verwendete &lt;a href="http://static.springsource.org/spring-roo/reference/html-single/index.html#architecture-dao"&gt;SpringRoo zwingend das ActiveRecord-Model&lt;/a&gt;. Dank dieser Neuerung kann SpringRoo nun endlich in Kombination mit &lt;a href="https://github.com/SpringSource/spring-data-jpa"&gt;Spring Data JPA&lt;/a&gt; genutzt werden, was viele &lt;a href="http://blog.springsource.com/2011/02/10/getting-started-with-spring-data-jpa/"&gt;Vorteile und einige neue Möglichkeiten&lt;/a&gt; gerade im Bereich der Finder eröffnet.&lt;br /&gt;Mein Ziel ist anhand einer Beispiel-Anwendung/ Demo-App die Möglichkeiten von SpringRoo zu demonstrieren und Workarounds für bekannte Unschönheiten aufzuzeigen.&lt;br /&gt;&lt;br /&gt;Auf Grund persönlicher Präferenzen wird die Demo-App eine serverbasierte Fotoverwaltung, die sowohl von mobilen Endgeräten als auch von Desktop-PCs genutzt werden kann. Als Feature sollen die mobilen Endgeräte Fotos und Videos an die Anwendung übermitteln können, so dass diese direkt für andere Nutzer verfügbar sind. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Anforderungen&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hier die bisherigen Anforderungen:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Die Anwendung muss Fotos aus einem Dateisystemordner importieren können&lt;/li&gt;&lt;li&gt; Die Anwendung muss während des Imports Minibilder/ Thumbnails der Originale erstellen, die eine maximale Kantenlänge von 250px haben&lt;/li&gt;&lt;li&gt;Die Anwendung muss während des Imports Vorschaubilder/ Previews der Originale erstellen, die eine maximale Kantenlänge von 1280px haben&lt;/li&gt;&lt;li&gt;Ein Foto hat folgende Eigenschaften &lt;/li&gt;&lt;ol&gt;&lt;li&gt;Titel&lt;/li&gt;&lt;li&gt;Beschreibung&lt;/li&gt;&lt;li&gt;Thumbnail-Datei (Fotodatei)&lt;/li&gt;&lt;li&gt;Vorschau-Datei (Fotodatei)&lt;/li&gt;&lt;li&gt;Original-Datei (Fotodatei)&lt;/li&gt;&lt;li&gt;Importdatum&lt;/li&gt;&lt;li&gt;Erstellungsdatum&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Eine Fotodatei hat folgende Eigenschaften&lt;/li&gt;&lt;ol&gt;&lt;li&gt; Dateisystemordner&lt;/li&gt;&lt;li&gt;dateiname&lt;/li&gt;&lt;li&gt;Breite&lt;/li&gt;&lt;li&gt;Höhe&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Die Anwendung soll die EXIF-Daten eines Fotos anzeigen können&lt;/li&gt;&lt;li&gt;Ein Foto muss keinem oder beliebig vielen Stichwörtern zugeordnet werden können&lt;/li&gt;&lt;li&gt;Ein Foto muss keiner oder beliebig vielen Personen zugeordnet werden können, die auf dem Photo zu sehen sind &lt;/li&gt;&lt;li&gt;Ein Foto muss keinem oder beliebig vielen Events zugeordnet werden können&lt;/li&gt;&lt;li&gt;Ein Event hat folgende Eigenschaften&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Name&lt;/li&gt;&lt;li&gt;Von-Datum&lt;/li&gt;&lt;li&gt;Bis-Datum&lt;br /&gt; &lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Fotos müssen anhand von folgenden UND-verknüpften Filterkriterien gesucht werden können&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Stichwörter (Suchfeld mit Vorschlagswerten)&lt;/li&gt;&lt;li&gt;Personen (Suchfeld mit Vorschlagswerten)&lt;/li&gt;&lt;li&gt;Events (Suchfeld mit Vorschlagswerten)&lt;/li&gt;&lt;li&gt; Name des Dateisystemordners&lt;/li&gt;&lt;li&gt;Titel des Fotos&lt;/li&gt;&lt;li&gt;Erstellungsdatum in gewähltem Zeitraum&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Suchergebnislisten müssen eine eindeutige, wiederverwendbare URL haben&lt;/li&gt;&lt;li&gt;Die Anwendung sollte einen Präsentations-/ Slideshow-Modus für Suchergebnislisten unterstützen, welcher die Vorschaubilder der Listeneinträge für jeweils 3 Sekunden anzeigt&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;&lt;span style="font-size: large;"&gt;Planung&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Diese Anforderungen werde ich in folgende Schritte (und Blog-Posts) aufteilen:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://goldstifts.blogspot.com/2011/09/springroo-entity-klassen-und-jpa.html"&gt;SpringRoo: Entity-Klassen und JPA-Repositories mit SpringRoo erstellen&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://goldstifts.blogspot.com/2011/10/springroo-howto-translate-java.html"&gt;SpringRoo: Howto translate Java exceptions to user-friendly error messages (English)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SpringRoo: Spring JS/ Dojo durch jQuery ersetzen&lt;/li&gt;&lt;li&gt;SpringRoo: Standard-Auswahllisten in Textfelder mit dynamischen Vorschlagswerten umbauen&lt;/li&gt;&lt;li&gt;SpringRoo: Excel-Download für alle Listen-Seiten mit minimalem Aufwand &lt;/li&gt;&lt;li&gt;SpringRoo: Dynamische Finder mit Hilfe der JPA Criteria API&lt;/li&gt;&lt;li&gt;SpringRoo: Standardwebseiten auf smartphone-kompatibles HTML5 aktualisieren&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Weitere Ideen und Vorschläge können gerne als Kommentar gestellt werden.&lt;br /&gt;&lt;br /&gt;Die Demo-App ist bei Github unter der Adresse &lt;a href="https://github.com/aheusingfeld/photooapp"&gt;https://github.com/aheusingfeld/photooapp&lt;/a&gt; verfügbar.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE 24.09.2011 23:00h:&lt;/b&gt;&lt;br /&gt;- Anforderungen in Deutsch übersetzt&lt;br /&gt;- Liste der geplanten Blogposts/ weiteren Schritte erstellt&lt;br /&gt;&lt;br /&gt;Vielen Dank für Euer Feedback und Euer Interesse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8159671505356365656-7434215755227817161?l=goldstifts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/7434215755227817161/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://goldstifts.blogspot.com/2011/09/starting-photooapp-springroo-tutorial.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/7434215755227817161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/7434215755227817161'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/2011/09/starting-photooapp-springroo-tutorial.html' title='Starting PhotooApp - A SpringRoo tutorial application'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8159671505356365656.post-7556545014945493096</id><published>2011-06-05T13:22:00.001+02:00</published><updated>2011-09-23T00:37:32.308+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server'/><category scheme='http://www.blogger.com/atom/ns#' term='cronjob'/><category scheme='http://www.blogger.com/atom/ns#' term='tipps'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='ftplicity'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='duplicity'/><category scheme='http://www.blogger.com/atom/ns#' term='utility'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Praxistipps zu ftplicity</title><content type='html'>Ich nutze seit geraumer Zeit "ftplicity" für das Backup meiner Server auf einen FTP-Backupserver. In diversen &lt;a href="http://www.howtoforge.de/howto/erstellen-von-verschlusselten-ftp-backups-mit-duplicity-und-ftplicity-auf-debian-etch/" target="_blank"&gt;Artikeln&lt;/a&gt; u.a. bei heise.de (&lt;a href="http://www.heise.de/security/artikel/Hinter-Schloss-und-Siegel-270834.html" taret="_blank"&gt;"Hinter Schloss und Siegel"&lt;/a&gt;) wird genau beschrieben, wie man so ein Backup auch verschlüsselt für einen nicht vertrauenswürdigen Backupserver einrichtet.&lt;br /&gt;Mein Backup wird durch die folgenden crontab-Einträge gesteuert:&lt;br /&gt;&lt;pre&gt;# run the (incremental) backup each night at 05:11h&lt;br /&gt;11 5 * * 1-6 /usr/local/bin/ftplicity backup &amp;amp;&amp;gt; /var/log/ftplicity_incremental.log&lt;br /&gt;25 5 * * 1-6 /root/bin/checkBackupSize.sh | mail -s "ftplicity backup status" MY@MAIL.de&lt;br /&gt;# do a full backup every sunday &amp;amp; delete old backups&lt;br /&gt;45 3 * * 0 /usr/local/bin/ftplicity full &amp;amp;&amp;gt; /var/log/ftplicity_full.log&lt;br /&gt;35 4 * * 0 /usr/local/bin/ftplicity purge --force &amp;amp;&amp;gt;&amp;gt; /var/log/ftplicity_full.log&lt;br /&gt;25 5 * * 0 mail -s "ftplicity_full.log" MY@MAIL.de &amp;lt; /var/log/ftplicity_full.log&lt;br /&gt;&lt;/pre&gt;Über die Zeit habe ich aber gemerkt, dass eine Punkte nicht beschrieben sind.  &lt;br /&gt;&lt;h3&gt;Wie kann ich mir den belegten Backupspeicher ansehen?&lt;/h3&gt;Um den Hintergrund dieser Frage besser einschätzen zu können, muss man wissen, dass &lt;br /&gt;&lt;ol style="margin-left: 1em;"&gt;&lt;li&gt;die meisten Backupserver eine Quota für die Benutzer einrichten&lt;/li&gt;&lt;li&gt;zum Löschen einer Datei via FTP der gleiche Platz auf dem Server/ der Quota frei sein muss, wie die Datei bereits belegt&lt;/li&gt;&lt;/ol&gt;Vor diesem Hintergrund bedeutet dies, dass man eine 10MB große Datei nicht löschen kann, wenn in der Quota nur noch 9MB frei sind! Aus diesem Grund kann es passieren, dass man obsolete Backups nach erfolgreichem Fullbackup nicht mehr löschen kann, wenn nicht genauso viel Speicher in der Quota frei ist, wie gelöscht werden soll.  Zur Anzeige des belegten Speichers auf dem entfernten FTP-Server verwende ich als Workaround folgendes Perl-Skript: &lt;br /&gt;&lt;pre&gt;#!/bin/sh &lt;br /&gt;# Location: /root/bin/checkBackupSize.sh&lt;br /&gt;# Prints the size of all files on the remote FTP server to STDOUT&lt;br /&gt;&lt;br /&gt;ftp -n u30754.your-backup.de &amp;lt;&amp;lt;EOT  | perl -ne '$_=~/u30754   u30754   (\d+) /; $cnt=$cnt+$1; print $cnt."\n"' | tail -n 1 | perl -ne 'print "Current size of backup is " . $_/1024/1024 . " MB\n"'&lt;br /&gt;user u30754 A0Lr7NEIvEeFxMDw&lt;br /&gt;dir &lt;br /&gt;quit &lt;br /&gt;EOT&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;Wie funktioniert der Parameter "HOECHSTALTER"?&lt;/h3&gt;Dieser Parameter soll eigentlich das Alter der ältesten Datei markieren. Bei einem Aufruf von "ftplicity purge" wird dementsprechend versucht alle Dateien zu löschen, die älter als 7 Tage sind. Full-Backups können allerdings nur gelöscht werden, wenn es keine inkrementellen Backups mehr gibt, die von ihnen abhängen. &lt;br /&gt;&lt;br /&gt;Stellt man in der "~/.ftplicity/conf" das "HOECHSTALTER=7D", ruft aber nur alle 14 Tage ein "ftplicity full" auf, so werden auf dem Backup-Server die Dateien der inkrementellen Backups der letzten 14 Tage nicht löschbar sein!&lt;br /&gt;&lt;br /&gt;Dies sollte vor allem in Zusammenhang mit o.g. Tipp bzgl. "belegter Backupspeicher" beachtet werden.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8159671505356365656-7556545014945493096?l=goldstifts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/7556545014945493096/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://goldstifts.blogspot.com/2011/06/praxistipps-zu-ftplicity.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/7556545014945493096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/7556545014945493096'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/2011/06/praxistipps-zu-ftplicity.html' title='Praxistipps zu ftplicity'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8159671505356365656.post-3083776609624849294</id><published>2011-06-03T16:58:00.001+02:00</published><updated>2012-02-02T13:41:15.032+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jira'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='visibility'/><category scheme='http://www.blogger.com/atom/ns#' term='comments'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='workaround'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='atlassian'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>How to Set Default Comment Security Level in Atlassian JIRA</title><content type='html'>Atlassian JIRA in my humble opinion one of the greatest issue tracking systems around. Nevertheless there are still many missing features, one of them may be "setting the default comment security level".&lt;br /&gt;&lt;br /&gt;There is a nice little confluence wiki page which describes some kind of dirty hack to solve or at least work around this problem. The URL to that page is: &lt;a href="http://confluence.atlassian.com/display/JIRA/How+to+Set+Default+Comment+Security+Level"&gt;http://confluence.atlassian.com/display/JIRA/How+to+Set+Default+Comment+Security+Level&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately the workaround works only for JIRA 4.1 and lower as Atlassian completely rewrote there UI for version 4.2 onwards. Therefore the &amp;lt;select&amp;gt;-element for the "comment security level" is hidden and the user gets to see a HTML dropdown which is much more beautiful and nicer to work with. But it breaks the above mentioned hack as the HTML dropdown doesn't really care about the state of the &amp;lt;select&amp;gt;-element, as it holds the state inside of its own "model".&lt;br /&gt;There is already a JIRA issue describing the problem: &lt;a href="https://jira.atlassian.com/browse/JRA-23365"&gt;JRA-23365&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I couldn't solve the problem completely as I have absolutely no knowledge about the inner workings of "AJS", Atlassians Javascript Library, but I somehow could extend the above mentioned workaround.&lt;br /&gt;&lt;br /&gt;Here's the code I put into my "announcement banner" field:&lt;br /&gt;&lt;pre&gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;    &amp;lt;!--&lt;br /&gt;    jQuery.noConflict();&lt;br /&gt;    var defaultRoleName = 'role:10030'&lt;br /&gt;    window.onload = function() {&lt;br /&gt;        var commentLevelSelect = document.getElementById("commentLevel");&lt;br /&gt;        if (commentLevelSelect) {&lt;br /&gt;            for (var i = 1; i &amp;lt; commentLevelSelect.options.length; i++) {&lt;br /&gt;                if (commentLevelSelect.options[i].value == defaultRoleName) {&lt;br /&gt;                    commentLevelSelect.options[i].selected;&lt;br /&gt;                    commentLevelSelect.value = defaultRoleName;&lt;br /&gt;                    jQuery("a.drop span.icon").removeClass("icon-unlocked").addClass("icon-locked");&lt;br /&gt;&lt;br /&gt;                    var htmlEscapedLabel = AJS.$("&amp;lt;div/&amp;gt;").text(commentLevelSelect.options[i].text).html();&lt;br /&gt;                    jQuery("span.current-level").html(AJS.format(AJS.params.securityLevelViewableRestrictedTo, htmlEscapedLabel))&lt;br /&gt;&lt;br /&gt;                    break;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    //--&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;   .alertHeader{display:none;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;/pre&gt;Any comments and suggestions on this are very much appreciated!&lt;br /&gt;&lt;br /&gt;Update 2012-02-02: I updated the code and tested it with JIRA 4.3.4&lt;br /&gt;&lt;script src="https://gist.github.com/1723281.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8159671505356365656-3083776609624849294?l=goldstifts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/3083776609624849294/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://goldstifts.blogspot.com/2011/06/how-to-set-default-comment-security.html#comment-form' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/3083776609624849294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/3083776609624849294'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/2011/06/how-to-set-default-comment-security.html' title='How to Set Default Comment Security Level in Atlassian JIRA'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8159671505356365656.post-5211201707055625958</id><published>2011-02-13T12:15:00.000+01:00</published><updated>2011-10-25T14:21:08.872+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='umlaute'/><category scheme='http://www.blogger.com/atom/ns#' term='utf8'/><category scheme='http://www.blogger.com/atom/ns#' term='utf-8'/><category scheme='http://www.blogger.com/atom/ns#' term='special chars'/><category scheme='http://www.blogger.com/atom/ns#' term='encoding'/><category scheme='http://www.blogger.com/atom/ns#' term='broken'/><category scheme='http://www.blogger.com/atom/ns#' term='SpringRoo'/><category scheme='http://www.blogger.com/atom/ns#' term='defect'/><category scheme='http://www.blogger.com/atom/ns#' term='hilfe'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='zeichensatz'/><category scheme='http://www.blogger.com/atom/ns#' term='sonderzeichen'/><category scheme='http://www.blogger.com/atom/ns#' term='defekt'/><category scheme='http://www.blogger.com/atom/ns#' term='kaputt'/><category scheme='http://www.blogger.com/atom/ns#' term='strange'/><title type='text'>Broken special chars in Spring Roo?</title><content type='html'>This is the first post in an upcoming series of posts on Spring Roo (see footer for details an Roo).&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Problem: Special chars and Umlauts are not correctly displayed in my Roo-Application&lt;/h2&gt;[&lt;a href="http://goldstifts.blogspot.com/2011/02/umlaute-und-sonderzeichen-in-spring-roo.html"&gt;german version&lt;/a&gt;]&lt;br /&gt;There are often questions and support requests on the above named topic in &lt;a href="http://forum.springsource.org/forumdisplay.php?f=67"&gt;Spring Roo-Forum&lt;/a&gt;. Mostly questioners write that german "Umlauts" like ä, ö, ü and ß or other special chars in cyrillic are not correctly display or saved to the database. With the following post I'd like to review the most common sources of the problem and come up with solutions.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Encoding of the HTML/ JSP page&lt;/h3&gt;Roo generated JSPs are always delivered with UTF-8 encoding. In case you write your additional JSPs by hand, you should assure these pages are also delivered to the browser in UTF-8 encoding so the form data will be correctly send on submit.&lt;br /&gt;This can be achieved by specifying the following line of code at the beginning of each JSP:&lt;br /&gt;&lt;pre&gt;&amp;lt;jsp:directive.page contenttype="text/html;charset=UTF-8"&lt;br /&gt;   pageencoding="UTF-8"/&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;To show you an example where to exactly put this, the "default.jspx", which serves a frame for all other JSP pages via Apache Tiles, contains the following lines to preserve UTF-8 encoding in the resulting HTML:&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 400px;"&gt;&amp;lt;html xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:tiles="http://tiles.apache.org/tags-tiles" xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" &amp;gt;  &lt;br /&gt; &lt;br /&gt; &amp;lt;jsp:output doctype-root-element="HTML" doctype-system="about:legacy-compat" /&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;jsp:directive.page contentType="text/html;charset=UTF-8" /&amp;gt;  &lt;br /&gt;  &lt;br /&gt; &amp;lt;head&amp;gt;&lt;br /&gt;  &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- ... --&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;To check whether your page is delivered in UTF-8 encoding, open it in your browser and have a look at menu "View &amp;gt; Character Encoding".&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;CharacterEncodingFilter in web.xml file&lt;/h3&gt;This is the most common point of failure. We're talking about the order in which the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;filter-mapping&amp;gt;&lt;/span&gt;-Tags occur in your "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;src/main/webapp/WEB-INF/web.xml&lt;/span&gt;". These tags define in which order the filters are executed on each HTTP-Request.&lt;br /&gt;&lt;b&gt;Roo generates the correct order since Version 1.1.1! &lt;a href="https://jira.springsource.org/browse/ROO-1731"&gt;Previous versions are still buggy&lt;/a&gt;.&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;The correct order looks like the following:&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 400px;"&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;    &amp;lt;filter-name&amp;gt;CharacterEncodingFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;    &amp;lt;filter-name&amp;gt;Spring OpenEntityManagerInViewFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;    &amp;lt;filter-name&amp;gt;HttpMethodFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;    &amp;lt;filter-name&amp;gt;springSecurityFilterChain&amp;lt;/filter-name&amp;gt;&lt;br /&gt;    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In case you want to change the order it is important to understand at least a minimum of the inner workings of these filters:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/filter/CharacterEncodingFilter.html"&gt;CharacterEncodingFilter&lt;/a&gt; - Sets the encoding on the HTTP-Request in case the Browser didn't send the encoding of the HMTL-page/ form&lt;/li&gt;&lt;li&gt; &lt;a href="http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/orm/jpa/support/OpenEntityManagerInViewFilter.html"&gt;OpenEntityManagerInViewFilter&lt;/a&gt; - only for Hibernate, sets the EntityManager to a ThreadLocal (see &lt;a href="http://stackoverflow.com/questions/1538222/why-not-to-use-springs-openentitymanagerinviewfilter"&gt;discussion on&lt;/a&gt; &lt;a href="http://heapdump.wordpress.com/2010/04/04/should-i-use-open-session-in-view/"&gt;Pros and Cons&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/filter/HiddenHttpMethodFilter.html"&gt;HttpMethodFilter&lt;/a&gt; - Necessary to really perform e.g. HTTP PUT or HTTP DELETE requests!&lt;/li&gt;&lt;li&gt;&lt;a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/filter/DelegatingFilterProxy.html"&gt;springSecurityFilterChain&lt;/a&gt; - has to be run AFTER HttpMethodFilter in case you check HTTP-Method in Spring Security&lt;/li&gt;&lt;li&gt;... other filters&lt;/li&gt;&lt;/ul&gt;To avoid problems with the encoding of your special chars, "CharacterEncodingFilter" has to be run before any other filter has worked on the request data!&lt;br /&gt;&lt;b&gt;For this reason the general advice is: the &amp;lt;filter-mapping&amp;gt; for &lt;a href="http://forum.springsource.org/showthread.php?t=97672"&gt;CharacterEncodingFilter has to be at the first position in your "web.xml"&lt;/a&gt; (&lt;a href="https://jira.springsource.org/browse/ROO-1698"&gt;See ROO-1698 for an explanation&lt;/a&gt; - the charset CANNOT be set to the request after the InputStream has been read)!&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Database connection&lt;/h3&gt;The last point is to assure that your application communicates with the database via unicode with a default encoding of UTF-8.&lt;br /&gt;&lt;br /&gt;As Roo generates the correct connection string for MySQL since "the early days" there haven't been many bugs with this lately.&lt;br /&gt;The connection string can be configured in "&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;src/main/resources/META-INF/spring/database.properties&lt;/span&gt;&lt;/span&gt;" and looks like the following for MySQL:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;database.url=jdbc:mysql://[YOUR_DB_SERVER]:3306/[YOUR_DB_NAME]?autoReconnect=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=UTF-8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;Since version 1.1.1 Spring Roo provides a (by now) bug free support for special chars and umlauts, which as been tested with various languages worldwide.&lt;br /&gt;&lt;br /&gt;If you have any questions on Spring Roo or the topic named above you can find competent assistance in the Roo-Forum. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;References/ Links used in the text&lt;/h3&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO"&gt;ROO-JIRA issues&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-89"&gt;https://jira.springsource.org/browse/ROO-89&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-1030"&gt;https://jira.springsource.org/browse/ROO-1030&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-1585"&gt;https://jira.springsource.org/browse/ROO-1585&lt;/a&gt;&amp;nbsp; &lt;/li&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-1684"&gt;https://jira.springsource.org/browse/ROO-1684&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-1698"&gt;https://jira.springsource.org/browse/ROO-1698&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-1731"&gt;https://jira.springsource.org/browse/ROO-1731&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Threads in &lt;a href="http://forum.springsource.org/forumdisplay.php?f=67"&gt;ROO-Forum&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://forum.springsource.org/showthread.php?t=101926"&gt;http://forum.springsource.org/showthread.php?t=101926&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://forum.springsource.org/showthread.php?t=97672"&gt;http://forum.springsource.org/showthread.php?t=97672&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Other&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://heapdump.wordpress.com/2010/04/04/should-i-use-open-session-in-view/"&gt;http://heapdump.wordpress.com/2010/04/04/should-i-use-open-session-in-view/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/1538222/why-not-to-use-springs-openentitymanagerinviewfilter"&gt;http://stackoverflow.com/questions/1538222/why-not-to-use-springs-openentitymanagerinviewfilter&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.springsource.org/roo"&gt;Spring Roo&lt;/a&gt; is a Code-Generation-Tool for Software development in Java. It is a lightweight developer tool that makes it fast and easy to deliver instant results. Best of all, you code 100% in Java and get to reuse all your existing Java knowledge, skills and experience.&lt;br /&gt;&lt;br /&gt;There are already many Add-Ons available to customize Roo to your special needs. In case you don't find an Add-On that fits your needs, you can easily create your own Add-On in just a few steps.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;script type="text/javascript"&gt;var dzone_url = 'http://goldstifts.blogspot.com/2011/02/broken-special-chars-in-spring-roo.html';&lt;/script&gt;&lt;script type="text/javascript"&gt;var dzone_style = '2';&lt;/script&gt;&lt;script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"&gt;&lt;/script&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8159671505356365656-5211201707055625958?l=goldstifts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/5211201707055625958/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://goldstifts.blogspot.com/2011/02/broken-special-chars-in-spring-roo.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/5211201707055625958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/5211201707055625958'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/2011/02/broken-special-chars-in-spring-roo.html' title='Broken special chars in Spring Roo?'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8159671505356365656.post-3917510903170245142</id><published>2011-02-10T22:32:00.013+01:00</published><updated>2011-09-24T23:09:44.346+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='umlaute'/><category scheme='http://www.blogger.com/atom/ns#' term='utf8'/><category scheme='http://www.blogger.com/atom/ns#' term='utf-8'/><category scheme='http://www.blogger.com/atom/ns#' term='special chars'/><category scheme='http://www.blogger.com/atom/ns#' term='encoding'/><category scheme='http://www.blogger.com/atom/ns#' term='broken'/><category scheme='http://www.blogger.com/atom/ns#' term='SpringRoo'/><category scheme='http://www.blogger.com/atom/ns#' term='defect'/><category scheme='http://www.blogger.com/atom/ns#' term='hilfe'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='zeichensatz'/><category scheme='http://www.blogger.com/atom/ns#' term='sonderzeichen'/><category scheme='http://www.blogger.com/atom/ns#' term='defekt'/><category scheme='http://www.blogger.com/atom/ns#' term='kaputt'/><category scheme='http://www.blogger.com/atom/ns#' term='strange'/><title type='text'>Umlaute und Sonderzeichen in Spring Roo?</title><content type='html'>Dies ist der erste in einer Reihe von Blog-Posts über Spring Roo (Erläuterung siehe unten).&lt;br /&gt;[&lt;a href="http://goldstifts.blogspot.com/2011/02/broken-special-chars-in-spring-roo.html"&gt;english version&lt;/a&gt;]&lt;br /&gt;&lt;h2&gt;Problem: Sonderzeichen und Umlaute werden in meiner Roo-Anwendung nicht korrekt angezeigt&lt;/h2&gt;&lt;br /&gt;Im &lt;a href="http://forum.springsource.org/forumdisplay.php?f=67"&gt;Spring Roo-Forum&lt;/a&gt; gibt es öfter Anfragen, die o.g. Problem beschreiben, dass deutsche Umlaute wie ä, ö, ü und ß nicht korrekt gespeichert oder "kaputt" übertragen werden. Im Folgenden möchte ich kurz die häufigsten Fehlerquellen und Lösungen aufzeigen.&lt;br /&gt;&lt;h3&gt;Zeichensatz der HTML-/ JSP-Seite&lt;/h3&gt;Durch Roo generierte JSPs werden immer im Zeichensatz UTF-8 ausgeliefert. Schreibt man eigene JSPs bspw. mit Formularen, sollte diese HTML bzw. JSP-Seite als Zeichensatz ebenfalls UTF-8 verwenden. Dies erreicht man in dem am Anfang der JSP die folgende Zeile eingefügt wird:&lt;br /&gt;&lt;pre&gt;&amp;lt;jsp:directive.page contenttype="text/html;charset=UTF-8"&lt;br /&gt;   pageencoding="UTF-8"/&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Am Anfang der "default.jspx", die über Apache Tiles als "Rahmen" für alle anderen JSP-Seiten gilt, sind z.B. folgende Angaben zum Encoding/ Zeichensatz enthalten:&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 400px;"&gt;&amp;lt;html xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:tiles="http://tiles.apache.org/tags-tiles" xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" &amp;gt;  &lt;br /&gt; &lt;br /&gt; &amp;lt;jsp:output doctype-root-element="HTML" doctype-system="about:legacy-compat" /&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;jsp:directive.page contentType="text/html;charset=UTF-8" /&amp;gt;  &lt;br /&gt;  &lt;br /&gt; &amp;lt;head&amp;gt;&lt;br /&gt;  &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- ... --&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Ist sichergestellt, dass die Seiten im Zeichensatz "UTF-8" ausgeliefert werden (dies kann im Browser meist im Menüpunkt "Ansicht &amp;gt; Zeichensatz" kontrolliert werden), die Sonderzeichen werden aber trotzdem falsch übertragen, ist dies nicht die Fehlerursache.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;CharacterEncodingFilter in der web.xml&lt;/h3&gt;Dieser Punkt ist der häufigste Fehler. Es geht hierbei um die Reihenfolge der &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;filter-mapping&amp;gt;&lt;/span&gt;-Tags in der Datei "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;web.xml&lt;/span&gt;". Diese Tags geben an, in welcher Reihenfolge die einzelnen Filter bei einem HTTP-Request durchlaufen werden.&lt;br /&gt;&lt;b&gt;Roo generiert leider erst &lt;a href="https://jira.springsource.org/browse/ROO-1731"&gt;seit Version 1.1.1 per Default die korrekte Reihenfolge, wie folgt aussieht&lt;/a&gt;: &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 400px;"&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;    &amp;lt;filter-name&amp;gt;CharacterEncodingFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;    &amp;lt;filter-name&amp;gt;Spring OpenEntityManagerInViewFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;    &amp;lt;filter-name&amp;gt;HttpMethodFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;    &amp;lt;filter-name&amp;gt;springSecurityFilterChain&amp;lt;/filter-name&amp;gt;&lt;br /&gt;    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Will man die Reihenfolge der Filter ändern, ist es wichtig, deren Bedeutung zu verstehen:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/filter/CharacterEncodingFilter.html"&gt;CharacterEncodingFilter&lt;/a&gt; - Setzt den Zeichensatz des Requests, falls der Browser ihn nicht mitsendet&lt;/li&gt;&lt;li&gt; &lt;a href="http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/orm/jpa/support/OpenEntityManagerInViewFilter.html"&gt;OpenEntityManagerInViewFilter&lt;/a&gt; - nur in Verbindung mit Hibernate, setzt EntityManager in ThreadLocal (siehe &lt;a href="http://stackoverflow.com/questions/1538222/why-not-to-use-springs-openentitymanagerinviewfilter"&gt;Diskussion über&lt;/a&gt; &lt;a href="http://heapdump.wordpress.com/2010/04/04/should-i-use-open-session-in-view/"&gt;Vor- und Nachteile&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/filter/HiddenHttpMethodFilter.html"&gt;HttpMethodFilter&lt;/a&gt; - Notwendig um bspw. PUT oder DELETE abbilden zu können&lt;/li&gt;&lt;li&gt;&lt;a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/filter/DelegatingFilterProxy.html"&gt;springSecurityFilterChain&lt;/a&gt; - muss nach HttpMethodFilter kommen, wenn auf HTTP-Method eingeschränkt wird&lt;/li&gt;&lt;li&gt;... ggf. weitere Filter&lt;/li&gt;&lt;/ul&gt;Damit Fehler in der Behandlung von Texten mit Sonderzeichen ausgeschlossen werden, sollte der "CharacterEncodingFilter" durchlaufen worden sein, bevor die Requestdaten in irgendeiner Form weiterverarbeitet werden.&lt;br /&gt;&lt;b&gt;Aus diesem Grund lautet die Empfehlung: das &amp;lt;filter-mapping&amp;gt; für den &lt;a href="http://forum.springsource.org/showthread.php?t=97672"&gt;CharacterEncodingFilter muss in der "web.xml" an erster Stelle stehen&lt;/a&gt; (&lt;a href="https://jira.springsource.org/browse/ROO-1698"&gt;Erklärung siehe ROO-1698&lt;/a&gt;)!&lt;/b&gt; &lt;br /&gt;&lt;h3&gt;Datenbankverbindung&lt;/h3&gt;Zu guter Letzt sollte sichergestellt werden, dass auch die Kommunikation mit der Datenbank über Unicode bzw. mit dem Standardzeichensatz UTF-8 geführt wird.&lt;br /&gt;&lt;br /&gt;Kommt als Datenbank bspw. MySQL zum Einsatz, generiert Roo automatisch die Unicode-Unterstützung über folgende Konfiguration in der Datei "&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;src/main/resources/META-INF/spring/database.properties&lt;/span&gt;&lt;/span&gt;":&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;database.url=jdbc:mysql://[YOUR_DB_SERVER]:3306/[YOUR_DB_NAME]?autoReconnect=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=UTF-8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Fazit&lt;/h3&gt;Seit Version 1.1.1 verfügt Spring Roo über eine (bisher) fehlerfreie Unterstützung für Sonderzeichen, die bereits in diversen Sprachen getestet wurde.&lt;br /&gt;Bei Fragen und Problemen findet man im Roo-Forum auf jeden Fall kompetente Hilfe. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Im Text verwendete, weiterführende Links&lt;/h3&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO"&gt;ROO-JIRA issues&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-89"&gt;https://jira.springsource.org/browse/ROO-89&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-1030"&gt;https://jira.springsource.org/browse/ROO-1030&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-1585"&gt;https://jira.springsource.org/browse/ROO-1585&lt;/a&gt;&amp;nbsp; &lt;/li&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-1684"&gt;https://jira.springsource.org/browse/ROO-1684&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-1698"&gt;https://jira.springsource.org/browse/ROO-1698&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="https://jira.springsource.org/browse/ROO-1731"&gt;https://jira.springsource.org/browse/ROO-1731&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Threads im &lt;a href="http://forum.springsource.org/forumdisplay.php?f=67"&gt;ROO-Forum&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://forum.springsource.org/showthread.php?t=101926"&gt;http://forum.springsource.org/showthread.php?t=101926&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://forum.springsource.org/showthread.php?t=97672"&gt;http://forum.springsource.org/showthread.php?t=97672&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Sonstige&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://heapdump.wordpress.com/2010/04/04/should-i-use-open-session-in-view/"&gt;http://heapdump.wordpress.com/2010/04/04/should-i-use-open-session-in-view/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/1538222/why-not-to-use-springs-openentitymanagerinviewfilter"&gt;http://stackoverflow.com/questions/1538222/why-not-to-use-springs-openentitymanagerinviewfilter&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.springsource.org/roo"&gt;Spring Roo&lt;/a&gt; ist ein Code-Generierungs-Werkzeug für die Softwareentwicklung, welches Entwickler in die Lage versetzt schnell und unkompliziert vorzeigbare Ergebnisse bspw. in Form von benutzbaren Prototypen zu liefern. Im Gegensatz zu anderen Werkzeugen, Frameworks und Tools entwickelt man mit Spring Roo zu 100% in Java.&lt;br /&gt;&lt;br /&gt;Für die Anpassung oder Erweiterung von Roo bspw. durch eigene Add-Ons kann auf vorhandenes Java-Wissen und -Erfahrung aufgebaut werden. Unterstützt durch die geringen Einstiegshürden und die hohe Modularisierung, kann so jedes Projekt leicht an die ganz speziellen, individuellen Bedürfnisse angepasst und einmal geschriebene Komponenten oder Add-Ons wiederverwendet werden.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;Update 12.02.2011 23:50h:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Frage eingearbeitet: "Setzt Roo diese Einstellungen automatisch oder muss man diese selbst anpassen?" - siehe Fazit&lt;/li&gt;&lt;li&gt;verschiedene Verbesserungsvorschläge eingearbeitet und Tippfehler korrigiert&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8159671505356365656-3917510903170245142?l=goldstifts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/3917510903170245142/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://goldstifts.blogspot.com/2011/02/umlaute-und-sonderzeichen-in-spring-roo.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/3917510903170245142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/3917510903170245142'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/2011/02/umlaute-und-sonderzeichen-in-spring-roo.html' title='Umlaute und Sonderzeichen in Spring Roo?'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8159671505356365656.post-4639049878090458624</id><published>2011-01-19T18:35:00.006+01:00</published><updated>2011-02-10T23:35:47.887+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='6u22'/><category scheme='http://www.blogger.com/atom/ns#' term='elster eportal'/><category scheme='http://www.blogger.com/atom/ns#' term='mac os x'/><category scheme='http://www.blogger.com/atom/ns#' term='elster'/><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><category scheme='http://www.blogger.com/atom/ns#' term='finanzamt'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Probleme beim Login ins Elster ePortal mit Mac OS X</title><content type='html'>Ich hatte bis vor Kurzem einige Probleme, mich im Elster ePortal anzumelden. Im Folgenden will ich kurz den Fehler und die für mich funktionierende Lösung zeigen.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;FEHLERBESCHREIBUNG&lt;/h3&gt;Wenn man auf der &lt;a href="https://www.elsteronline.de/eportal/"&gt;Startseite&lt;/a&gt; im linken Bereich den Punkt "Login &amp;gt; Software-Zertifikat" wählt und dann auf "Login" klickt, wird das Java Applet geladen und der grüne, sich drehende Kreis angezeigt. Es erscheint kein Popup, die Java-Konsole oder ähnliches!&lt;br /&gt;Wirft man während dieser Wartezeit einen Blick in die sog. Fehlerkonsole des Browsers, so findet man die folgende Fehlermeldung:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Failed to load resource: https://www.elsteronline.de/eportal/&lt;/pre&gt;&lt;pre&gt;de.elster.portal.applet.ElsterAppletAnalyze.class the server&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;responded with a status of 404 (Not Found)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Ich vermutete zunächst, dass hier ein Problem mit der Codebase des Applets vorliegt. Die Kollegen verwenden interessanter Weise das veraltete &amp;lt;object&amp;gt;-Tag, anstatt das wesentlich angenehmere JavaScript (&lt;a href="view-source:http://www.java.com/js/deployJava.js"&gt;deployJava.js&lt;/a&gt;)* von Oracle/ Sun  zu verwenden.&lt;br /&gt;&lt;br /&gt;* Es gibt eine überarbeitete Version des &lt;a href="http://jira.atlassian.com/includes/deployJava.js"&gt;JavaScript von Atlassian&lt;/a&gt;, die auch unter Opera läuft!&lt;br /&gt;&lt;br /&gt;SYSTEMUMGEBUNG&lt;br /&gt;Betriebssystem: Mac OS X 10.6.5&lt;br /&gt;Java: 1.6.0_22&lt;br /&gt;Browser: Safari 5.0.3 (6533.19.4)&lt;br /&gt;Browser2: Firefox 4.0b7&lt;br /&gt;&lt;br /&gt;RANDBEMERKUNG&lt;br /&gt;Nach einer gewissen Zeit kommt anscheinend ein Timeout woraufhin eine neue Seite geöffnet und folgende Fehlermeldungen angezeigt werden.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;h3&gt;Konfigurations-Assistent&lt;/h3&gt;Die Überprüfung der Konfiguration Ihres Computers wurde soeben durchgeführt.&lt;br /&gt;&lt;h3&gt;Fehlende Voraussetzung&lt;/h3&gt;&lt;br /&gt;&lt;h4&gt;Java Sicherheitseinstellungen&lt;/h4&gt;&lt;br /&gt;Ihr System erfüllt nicht die grundlegenden Voraussetzungen zur Nutzung des ElsterOnline-Portals. Voraussetzung für die Nutzung von ElsterOnline ist die Einstellung AllPermissions in den Java-Sicherheitseinstellungen für signierte Applets.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Kein kompatibles Java-Plugin installiert&lt;/h4&gt;&lt;br /&gt;Ihr System erfüllt nicht die grundlegenden Voraussetzungen zur Nutzung des ElsterOnline-Portals. Wir empfehlen Ihnen, falls ElsterOnline dies für Ihr Betriebssystem unterstützt (siehe Anforderungen), das aktuelle Java Runtime Environment (JRE) zu installieren. Zum Download der neuesten Version der Java-Software rufen Sie bitte die Java-Homepage (http://www.java.com/de/) auf. Diese Seiten enthalten detaillierte Anweisungen zum Download und zur Installation der Java-Software (JRE).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Warnhinweis Nicht erkanntes Betriebssystem&lt;/h4&gt;&lt;br /&gt;Ihr Betriebssystem wurde nicht erkannt und wird möglicherweise von ElsterOnline nicht unterstützt. Eine Liste der von ElsterOnline unterstützten Betriebssysteme finden Sie unter Anforderungen. Die problemlose Nutzung von ElsterOnline kann mit Ihrem Betriebssystem möglich sein, selbst wenn es nicht in der Anforderungsliste aufgeführt ist. Dies wird jedoch nicht garantiert. Falls ein Problem auftritt, kann Sie die Hotline nur dann bei der Behebung unterstützen, falls Ihr Betriebssystem in der Anforderungsliste enthalten ist.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Randbemerkung:&lt;br /&gt;Auf dem System war die aktuellste Java Version (siehe Versionsangabe oben) installiert  und in den &lt;a href="https://www.elsteronline.de/eportal/Anforderungen.tax"&gt;Anforderungen für Elster&lt;/a&gt; ist Mac OS X 10.6.5 mit JRE6+Safari5 als unterstützte Umgebung freigegeben.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Lösung: Neuinstallation&lt;/h3&gt;&lt;br /&gt;- Java for Mac OS X 10.6 Update 3 herunterladen (&lt;a href="http://support.apple.com/kb/DL972"&gt;http://support.apple.com/kb/DL972&lt;/a&gt;)&lt;br /&gt;- alle Anwendungen, die Java verwenden (z.B. auch Safari und Firefox) beenden&lt;br /&gt;- das Java-Update installieren&lt;br /&gt;- Safari neustarten und auf &lt;a href="https://www.elsteronline.de/eportal/"&gt;https://www.elsteronline.de/eportal/&lt;/a&gt; leiten&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8159671505356365656-4639049878090458624?l=goldstifts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/4639049878090458624/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://goldstifts.blogspot.com/2011/01/probleme-beim-login-ins-elster-eportal.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/4639049878090458624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/4639049878090458624'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/2011/01/probleme-beim-login-ins-elster-eportal.html' title='Probleme beim Login ins Elster ePortal mit Mac OS X'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8159671505356365656.post-9185357097949686991</id><published>2009-04-22T23:09:00.003+02:00</published><updated>2009-04-22T23:20:35.707+02:00</updated><title type='text'>...letztlich doch hier</title><content type='html'>...eigentlich wollte ich mein Blog unbedingt auf meinem eigenen Server haben und hätte mir vor ein paar Wochen jemand gesagt, dass ich mal einem Dienst von Google freiwillig einige meiner Daten anvertrauen würde, hätte ich denjenigen wahrscheinlich für verrückt erklärt.&lt;br /&gt;&lt;br /&gt;Naja, letztlich war der Reiz "blogger.com" mal auszuprobieren und die mangelnde Zeit mal eben ein eigenes Blog zu schreiben ausschlaggebend dafür, dass ich hiermit nun doch mein Blog bei Blogger.com eröffne.&lt;br /&gt;&lt;br /&gt;Welcome everybody but please don't stare even though all walls are out of glass these days... "...and you'll find out why 1984 won't be like 1984" (&lt;a href="http://www.youtube.com/watch?v=OYecfV3ubP8"&gt;http://www.youtube.com/watch?v=OYecfV3ubP8&lt;/a&gt;) - klar, aber vielleicht 25 Jahre später!?&lt;br /&gt;&lt;br /&gt;In diesem Sinne, vergesst nicht, das Internet vergisst nichts!&lt;br /&gt;&lt;br /&gt;Gruß&lt;br /&gt;Alex&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8159671505356365656-9185357097949686991?l=goldstifts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goldstifts.blogspot.com/feeds/9185357097949686991/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://goldstifts.blogspot.com/2009/04/letztlich-doch-hier.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/9185357097949686991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8159671505356365656/posts/default/9185357097949686991'/><link rel='alternate' type='text/html' href='http://goldstifts.blogspot.com/2009/04/letztlich-doch-hier.html' title='...letztlich doch hier'/><author><name>goldstift</name><uri>http://www.blogger.com/profile/16078533036760011608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
