tag:blogger.com,1999:blog-26817439581395992052024-03-14T09:34:55.284+01:00mr678Meine Erlebnisse, Highlights und Aha-Momente die ich rund um die Themen IT, Java, web2.0 habe.Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.comBlogger50125tag:blogger.com,1999:blog-2681743958139599205.post-71732112658701805902013-01-15T00:17:00.000+01:002013-01-15T00:17:50.863+01:00BlogsystemIm Prinzip bin ich mit blogger.com zufrieden. Allerdings reizt natürlich auch mal wieder ein neues System...<br />
<br />
Vermutlich werde ich meinen Blog umziehen und technologisch auf jekyllbootstrap (http://jekyllbootstrap.com/) umstellen. Mit dem Kommentarsystem von disqus (http://disqus.com) schaut das Ganze eigentlich ganz nett aus :-)<br />
<br />
Sobald ich hier technisch dazu gekommen bin, werde ich natürlich hier darüber berichten.Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-33623163462491352602012-12-24T12:02:00.001+01:002012-12-24T12:02:06.421+01:00Archivieren von Outlook Mails in TextdateienIch habe ein kleines Script geschrieben, mit dem man seine gesamten Outlook Mails (inkl. Archiv) in Textdateien archivieren/exportieren kann. Mail-Attachments werden ebenfalls exportiert.<br />
Um die Formatierung von HTML-Mails nicht zu verlieren, werden die Mails direkt als HTML Datei exportiert und können mit einen Browser betrachtet werden.<br />
<br />
Anschließend lassen sich mit der Suche im Windows-Explorer sehr schnell Mails wieder finden.<br />
<br />
Das Script ist unter https://github.com/mr678/mail-export-scripts zu finden.Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-83050660106499079892012-10-25T00:14:00.003+02:002012-10-25T00:18:07.826+02:00Software Architektur - Designentscheidung: Modelgetriebene Entwicklung<div class="MsoNormal">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Als Software Architekt steht man zu Projektbeginn vor vielen
Entscheidungen. <o:p></o:p></div>
<div class="MsoNormal">
Eine Entscheidung ist unter anderem ob man Modelgetrieben,
inkl. Casetool-Unterstützung, vorgehen will oder eben nicht.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Im folgenden einige Punkte wieso ich mich bisher <u>gegen</u>
den MDA / MDSD Ansatz (Model Driven Architecture, Model Driven Software
Development) entschieden habe:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt;">
</div>
<ul>
<li>MDA ist cool wenn es ein großes
unternehmensweites Datenmodell gibt.<br />Unternehmensweite Datenmodelle sind aufgrund der Service Orientierung etwas aus
der Mode gekommen (der erste google Treffer zu „Unternehmensweite Datenmodelle“
ist ein Artikel aus der Computerwoche <b>von 1989</b> (<a href="http://www.computerwoche.de/heftarchiv/1989/37/1151959/">http://www.computerwoche.de/heftarchiv/1989/37/1151959/</a>).<br /><br />In größeren Unternehmen existieren viele spezialisierte Applikationen die nur
über definierte Schnittstellen kommunizieren müssen (beispielsweise über BUS-
oder Workflowsysteme). Eine SOA passt hier oft besser als eine große Anwendung,
die mit einem unternehmensweiten Datenmodell umgehen kann.<br /><br />Kleine modulare Applikationen <span style="font-family: Wingdings;">à</span> Sind
die einzelnen Applikationen klein bzw. auch deren Datenmodell, stellt sich die
Frage ob der Einsatz eines Case-Tools mit Klassengeneratoren eher die
Produktionsgeschwindikgeit ausbremst.</li>
<li>Beim Einsatz eines OR-Mappers bspw. basierend auf JPA wie
Hibernate oder EclipseLink ist schon seit langen kein aufwändiges XML mehr
notwendig. Mit Hilfe von Annotations lassen sich die Datenbank-Entitäten
definieren.<br /><br />Bei der Verwendung eines MDA-Ansatzes können XML Beschreibungen zu den
Java-Entitäts-Klassen automatisch generiert werden. Hier ist ein MDA Ansatz
durchaus sinnvoll.<br /><br />Bei der Verwendung von Annotations wie bspw. in der JEE (@Entity) lässt sich
sehr schlank ein Datenmodell definieren. Der Einsatz von Case-Tools mit
Klassengeneratoren verringern hier eher die Produktionsgeschwindigkeit.</li>
</ul>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<ul>
<li>Werden UML Diagramme primär zur Dokumentation benötigt,
lassen diese sich bequem aus den bestehen Klassen generieren. Diese können bei
der JEE direkt ins JavaDoc integriert werden (UMLGraph).</li>
</ul>
<o:p></o:p><br />
<div class="MsoListParagraph">
<br /></div>
<div class="MsoNormal">
</div>
<ul>
<li>MDA / MDSD wird im Moment in meiner Wahrnehmung aktuell
weniger gepusht als JEE6.<br />Verhältnis der JPA Vorträgen zu Modelling- Vorträgen auf aktuellen Java
Konferenzen. Ggf. ist dies ein Grund wieso MDA Know How weniger verfügbar ist
als JPA Know How.<br /><br />Als technisch Verantwortlicher für eine Software ist dies ein nicht unwesentlicher
Punkt (gibt es Rotationsmöglichkeiten für Entwickler, welches Know How wird zur
Softwarewartung benötigt).</li>
</ul>
<o:p></o:p><br />
<div class="MsoListParagraph">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Aus diesen Gründen habe ich mich meist gegen MDSD
entschieden… ich geh allerdings davon aus, dass es noch weit mehr Gründe gibt
;-)<o:p></o:p></div>
<div class="MsoListParagraph">
<br /></div>
<div class="MsoNormal">
<br /></div>
Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-25292855273849265202012-10-16T18:27:00.000+02:002012-10-29T19:23:00.721+01:00JBoss AS Security - @RolesAllowed<div class="WordSection1">
<div class="MsoNormal">
Mit der Annotation @RolesAllowed (javax.annotation.security.RolesAllowed) kann der Zugriff auf Klassen oder einzelne Methoden von einem AppServer kontrolliert werden.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Leider haben diese Annotation im JBoss AS 7 keine Auswirkungen!<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Um EJBs abzusichern wird die Datei jboss-ejb3.xml benötigt (Maven Projekt: src/main/webapp/WEB-INF/jboss-ejb3.xml).<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt;"><?</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">xml</span><span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i><span style="color: teal;">?></span><span style="color: black;"> </span><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt;"><</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">jboss:ejb-jar</span><span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #7f007f;">xmlns:jboss</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://www.jboss.com/xml/ns/javaee"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #7f007f;">xmlns</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://java.sun.com/xml/ns/javaee"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: #7f007f; font-family: Consolas; font-size: 10.0pt;">xmlns:s</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;">"urn:security"</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #7f007f;">xmlns:xsi</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://www.w3.org/2001/XMLSchema-instance"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #7f007f;">xsi:schemaLocation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3-2_0.xsd</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<i><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;"> http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd"</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"3.1"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #7f007f;">impl-version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"2.0"</span></i><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">assembly-descriptor</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">s:security</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">ejb-name</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;">></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt;">*</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">ejb-name</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">s:security-domain</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;">></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt;">other</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">s:security-domain</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">s:security</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">assembly-descriptor</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">jboss:ejb-jar</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt;">></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Die Security Domain “other” ist die Default-Security-Domain auf einem JBoss AS 7. Hier muss bei Bedarf die entsprechende Domain gesetzt warden.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Finde ich irgendwie merkwürdig, dass Teile der JEE Spec erst explizit aktiviert werden müssen. <o:p></o:p></div>
<div class="MsoNormal">
Beim Deployen einer Anwendung wäre IMHO ein kleiner Hinweis angebracht, der darauf aufmerksam macht, dass @RolesAllowed verwendet wird aber nicht greift…<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
</div>
Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-31397210757625135412012-10-12T18:31:00.004+02:002012-10-12T18:31:45.707+02:00Integrationstests mit Arquillian <iframe src="http://de.slideshare.net/slideshow/embed_code/14692295" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="http://de.slideshare.net/mr678/20121012-tests-with-arquillian" title="2012-10-12 Testen mit Arquillian" target="_blank">2012-10-12 Testen mit Arquillian</a> </strong> from <strong><a href="http://de.slideshare.net/mr678" target="_blank">Matthias Reining</a></strong> </div>
<br />
<br />
Leider dürften die Folien ohne Tonspur nicht wirklich aussagekräftig sein....Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-28511845860902247982012-10-11T11:30:00.002+02:002012-10-11T11:30:37.348+02:00Start Tweetingich habe jetzt schon seit "Ewigkeiten" einen Twitter-Account / aber noch nie was gezwitschert.<br />
<br />
Hat sich mittlerweile geändert! Ich twittere jetzt auch und freu mich über Follower :-)<br />
<br />
<a href="http://twitter.com/MatthiasReining">http://twitter.com/MatthiasReining</a><br />
<br />
<br />
<br />Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-52197821647228124192012-03-01T22:13:00.000+01:002012-03-01T22:13:03.640+01:00RESTeasy - TroubleloggerAnbei mal nur ein Verweis auf einen anderen Blog:<br />
<br />
<a href="https://community.jboss.org/blogs/matthias.reining/2012/03/01/resteasy--troublelogger">https://community.jboss.org/blogs/matthias.reining/2012/03/01/resteasy--troublelogger</a>
<br />
<br />
Hab auch mal probiert bei JBoss was zu bloggen ;-)<br />
<div id="-chrome-auto-translate-plugin-dialog" style="background-attachment: initial !important; background-clip: initial !important; background-color: transparent !important; background-image: initial !important; background-origin: initial !important; background-position: initial initial !important; background-repeat: initial initial !important; display: none; left: 0px; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; opacity: 1 !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: absolute !important; text-align: left !important; top: 0px; z-index: 999999 !important;">
<div style="-webkit-border-radius: 10px !important; background-color: #363636 !important; background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #000), color-stop(50%, #363636), color-stop(100%, #000)); border-color: #000000 !important; border-width: 0px !important; color: #fafafa !important; font-size: 16px !important; max-width: 300px !important; opacity: 0.8 !important; overflow: visible !important; padding: 8px !important; text-align: left !important; z-index: 999999 !important;">
<div class="translate">
</div>
<div class="additional">
</div>
</div>
<img onclick="document.location.href='http://translate.google.com/';" src="http://www.google.com/uds/css/small-logo.png" style="-webkit-border-radius: 20px; background-color: rgba(200, 200, 200, 0.3) !important; cursor: pointer !important; margin: 0 !important; padding: 3px 5px 0 !important; position: absolute !important; right: 1px !important; top: -20px !important; z-index: -1 !important;" /></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-85606195118473084492011-12-27T20:35:00.000+01:002011-12-27T20:40:19.005+01:00javax.el.ELException: /dummy.xhtml: The class 'de.Dummy$Proxy$_$$_WeldClientProxy' does not have the property 'dummy'... Primeface namespaces<div class="WordSection1">
<div class="MsoNormal">
<span lang="EN-US">Wenn die Fehlermeldung<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">javax.el.ELException: /dummy.xhtml: The class 'de.Dummy$Proxy$_$$_WeldClientProxy' does not have the property 'dummy’<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
auftaucht, kann dies ggf. an Primefaces liegen (falls ihr es überhaupt eingebunden habt…)<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Beim Wechsel von Primefaces 2 auf Primefaces 3 ist dies bei mir aufgetreten. Genauer gesagt bei dieser Version:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10pt;">groupId</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;">></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;">org.primefaces</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10pt;">groupId</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10pt;">artifactId</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;">></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;">primefaces</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10pt;">artifactId</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10pt;">version</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;">></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;">3.0.RC1</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10pt;">version</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10pt;">></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Leider war die Fehlermeldung bzw. der Stacktrace nicht sonderlich aufschlussreich.<span style="font-size: 9pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br />
Die Primefaces-Namespaces haben sich geändert, was den Fehler verursacht:<br />
<br />
Alt: <span class="pln" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">xmlns</span><span class="pun" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">:</span><span class="pln" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">p</span><span class="pun" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">=</span><span class="str" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">"http://primefaces.prime.com.tr/ui"</span><br />
<span class="str" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"></span><br />
<div style="color: black; font-family: 'Times New Roman'; font-size: medium; line-height: normal; text-align: -webkit-auto;">
Neu (>=3.0RC1): <span class="pln" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">xmlns</span><span class="pun" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">:</span><span class="pln" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">p</span><span class="pun" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">=</span><span class="str" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;">"http://primefaces.org/ui"</span></div>
</div>
</div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com1tag:blogger.com,1999:blog-2681743958139599205.post-51694661170976078912011-12-02T01:33:00.001+01:002011-12-02T01:34:16.904+01:00eclipse - JEE Web Projekt mit exploded JAR-File unter WEB-INF\lib ?!?<br />
<div class="MsoNormal">
Wenn ich in eclipse ein Maven JEE Web Projekt habe
(maven archetype: jboss-javaee6-webapp version: 7.0.2.CR) , dass eine
dependency auf eine eclipse Maven EJB-JAR Projekt hat (ejb-javaee6
version:1.5), bekomme ich folgende Fehlermeldungen im JBoss AS 7:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;">01:07:52,533 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3)
MSC00001: Failed to start service
jboss.deployment.unit."is-pm-test.war".STRUCTURE: </span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">org.jboss.msc.service.StartException</span></u><span lang="EN-US" style="font-family: Consolas;"> in service jboss.deployment.unit."is-pm-test.war".STRUCTURE:
Failed to process phase STRUCTURE of deployment "is-pm-test.war"</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">DeploymentUnitPhaseService.java:121</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">ServiceControllerImpl.java:1824</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">ServiceControllerImpl.java:1759</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
[:1.6.0_20]</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source) [:1.6.0_20]</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at java.lang.Thread.run(Unknown
Source) [:1.6.0_20]</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;">Caused by: </span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">org.jboss.as.server.deployment.DeploymentUnitProcessingException</span></u><span lang="EN-US" style="font-family: Consolas;">: </span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">org.jboss.as.server.deployment.DeploymentUnitProcessingException</span></u><span lang="EN-US" style="font-family: Consolas;">: failed to process
"/D:/java-server/jboss/jboss-as-7.0.2.Final/standalone/deployments/is-pm-test.war/WEB-INF/lib/is-temporaldata-0.0.1-SNAPSHOT.jar"</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
org.jboss.as.web.deployment.WarStructureDeploymentProcessor.deploy(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">WarStructureDeploymentProcessor.java:118</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">DeploymentUnitPhaseService.java:115</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> ... 5 more</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;">Caused by: </span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">org.jboss.as.server.deployment.DeploymentUnitProcessingException</span></u><span lang="EN-US" style="font-family: Consolas;">: failed to process "/D:/java-server/jboss/jboss-as-7.0.2.Final/standalone/deployments/is-pm-test.war/WEB-INF/lib/is-tmp-0.0.1-SNAPSHOT.jar"</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
org.jboss.as.web.deployment.WarStructureDeploymentProcessor.createWebInfLibResources(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">WarStructureDeploymentProcessor.java:173</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at org.jboss.as.web.deployment.WarStructureDeploymentProcessor.createResourceRoots(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">WarStructureDeploymentProcessor.java:151</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
org.jboss.as.web.deployment.WarStructureDeploymentProcessor.deploy(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">WarStructureDeploymentProcessor.java:112</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> ... 6 more</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;">Caused by: </span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">java.util.zip.ZipException</span></u><span lang="EN-US" style="font-family: Consolas;">: error in opening zip file</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at java.util.zip.ZipFile.open(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">Native Method</span></u><span lang="EN-US" style="font-family: Consolas;">) [:1.6.0_20]</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
java.util.zip.ZipFile.<init>(Unknown Source) [:1.6.0_20]</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
java.util.jar.JarFile.<init>(Unknown Source) [:1.6.0_20]</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
java.util.jar.JarFile.<init>(Unknown Source) [:1.6.0_20]</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
org.jboss.vfs.spi.JavaZipFileSystem.<init>(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">JavaZipFileSystem.java:95</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
org.jboss.vfs.spi.JavaZipFileSystem.<init>(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">JavaZipFileSystem.java:81</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at org.jboss.vfs.VFS.mountZip(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">VFS.java:408</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at org.jboss.vfs.VFS.mountZip(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">VFS.java:434</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> at
org.jboss.as.web.deployment.WarStructureDeploymentProcessor.createWebInfLibResources(</span><u><span lang="EN-US" style="color: navy; font-family: Consolas;">WarStructureDeploymentProcessor.java:168</span></u><span lang="EN-US" style="font-family: Consolas;">)</span><span lang="EN-US" style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="font-size: xx-small;"><span lang="EN-US" style="font-family: Consolas;"> </span><span style="font-family: Consolas;">... 8 more</span><span style="font-family: Consolas;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Ursache: <o:p></o:p></b></div>
<div class="MsoNormal">
Das eclipse Maven Plugin deployed zum einem das WAR Projekt
exploded (was sehr gut ist!). Weiterhin deployed es aber auch alle abhängigen
JAR Dateien unter WEB-INF\lib (mvn dependencies) exploded, die auf <u>geöffneten</u>
eclipse Projekten stammen.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Der App Server kann damit verständlicherweise nicht umgehen
(class files unter WEB-INF\lib, wo gibt’s denn sowas?).<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Abhilfe:<o:p></o:p></b></div>
<div class="MsoNormal">
Dieses Verhalten kann verhindert werden, in dem man in den
abhängigen Projekten folgende Einstellung vornimmt:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Project
Properties (des EJB-JAR eclipse Projektes) -> Project Facets -> <b>Utility
Module</b> aktivieren.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Anschließend warden die entsprechenden JAR Dependencies
nicht mehr exploded abgelegt <span style="font-family: Wingdings;">J</span><o:p></o:p></div>
<br />
<div id="-chrome-auto-translate-plugin-dialog" style="background-attachment: initial !important; background-clip: initial !important; background-color: transparent !important; background-image: initial !important; background-origin: initial !important; background-position: initial initial !important; background-repeat: initial initial !important; display: none; left: 0px; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; opacity: 1 !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: absolute !important; text-align: left !important; top: 0px; z-index: 999999 !important;">
<div style="-webkit-border-radius: 10px !important; background-color: #363636 !important; background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #000), color-stop(50%, #363636), color-stop(100%, #000)); border-color: #000000 !important; border-width: 0px !important; color: #fafafa !important; font-size: 16px !important; max-width: 300px !important; opacity: 0.8 !important; overflow: visible !important; padding: 8px !important; text-align: left !important; z-index: 999999 !important;">
<div class="translate">
</div>
<div class="additional">
</div>
</div>
<img onclick="document.location.href='http://translate.google.com/';" src="http://www.google.com/uds/css/small-logo.png" style="-webkit-border-radius: 20px; background-color: rgba(200, 200, 200, 0.3) !important; cursor: pointer !important; margin: 0 !important; padding: 3px 5px 0 !important; position: absolute !important; right: 1px !important; top: -20px !important; z-index: -1 !important;" /></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-11596114055678385202011-11-23T12:41:00.000+01:002011-11-23T12:45:42.234+01:00Internationalisierung und Datenformate<div class="WordSection1">
<div style="border-bottom: solid #BFBFBF 1.0pt; border: none; padding: 0cm 0cm 1.0pt 0cm;">
<h1>
<b>Internationalisierung und Datenformate<o:p></o:p></b></h1>
</div>
<h2>
<span class="Apple-style-span" style="background-color: white; font-size: 13px; font-weight: normal;"><span class="Apple-style-span" style="font-family: inherit;">Der folgende Artikel ist der Rohentwurf für einen Magazin-Artikel. </span></span></h2>
<h2>
Babylon war gestern!?<o:p></o:p></h2>
<div class="MsoNormal">
Verschiedene Sprachen gab es schon immer! Bereits im Alte Testament hatte ein Sprachgewirr den Stopp des Turmbaus zu Babel zur Folge. Diese Zeiten sind dank Normierungsgremien schon lange vorbei – allerdings beherbergen unterschiedliche Sprachen oft auch unterschiedliche Darstellungsformate was bei einer Konvertierung wiederrum auch heutzutage noch zu den unterschiedlichsten Fehlern führen kann.<o:p></o:p></div>
<div class="MsoNormal">
Neben der eigentliche Sprache unterscheiden sich auch Datenformate (Zahlen, Uhrzeiten, Datum, …). Hier gibt es unterschiedliche Formate und jedes Land macht es irgendwie anders… Es ist noch nicht mal gesagt, dass wen die gleiche Sprache gesprochen wird, dass dann die Formate gleich sind.<o:p></o:p></div>
<div class="MsoNormal">
Ein Datum im englischsprachigen Kanada schaut anders aus als in den USA. So wird bspw. der 14. November 2011 in kurzer Form in Kanada als 14/11/2011 geschrieben und in den USA als 11/14/2011 (Monat und Tage genau andersherum).<o:p></o:p></div>
<div class="MsoNormal">
Es ist durchaus ganz interessant, zu schauen wie unterschiedlich hier die Formate zum Teil sind (dies geht sogar so weit, dass unterschieden wird an welchem Tag die Woche beginnt)<o:p></o:p></div>
<div class="MsoNormal">
An einem Windows-PC kann man hier ganz einfach recherchieren: <o:p></o:p></div>
<div class="MsoNormal">
Windows <span style="font-family: Wingdings;">à</span> Systemsteuerung <span style="font-family: Wingdings;">à</span> Region und Sprache:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-D5odLWOHNVM/TszcC4METmI/AAAAAAAACdU/X8ci2EuiVUE/s1600/image001-723251.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5678155172208201314" src="http://2.bp.blogspot.com/-D5odLWOHNVM/TszcC4METmI/AAAAAAAACdU/X8ci2EuiVUE/s320/image001-723251.jpg" /></a><a href="http://1.bp.blogspot.com/-pZTVtkOtqFg/TszcC7AHRvI/AAAAAAAACdc/1nhBVPHbIYc/s1600/image002-723869.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5678155172963370738" src="http://1.bp.blogspot.com/-pZTVtkOtqFg/TszcC7AHRvI/AAAAAAAACdc/1nhBVPHbIYc/s320/image002-723869.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal">
<a href="http://4.bp.blogspot.com/-eCeRzzPCCY0/TszcDBmZKbI/AAAAAAAACds/56D_LZmq7Jo/s1600/image003-724575.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5678155174734539186" src="http://4.bp.blogspot.com/-eCeRzzPCCY0/TszcDBmZKbI/AAAAAAAACds/56D_LZmq7Jo/s320/image003-724575.jpg" /></a><a href="http://4.bp.blogspot.com/-55snz8xFL9w/TszcDVNoMkI/AAAAAAAACd0/YDv-oG8WcOo/s1600/image004-725754.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5678155179999375938" src="http://4.bp.blogspot.com/-55snz8xFL9w/TszcDVNoMkI/AAAAAAAACd0/YDv-oG8WcOo/s320/image004-725754.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: red;"><br /></span></div>
<div class="MsoNormal">
Noch detaillierte Informationen bekommt man zu den jeweiligen Länderspezifikas wenn sich die „Weiteren Einstellungen“ anschaut.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Anbei eine kurze Aufzählung von Elementen die sich je Ländereinstellung alleine bei den Zahlenformaten unterscheiden können:<o:p></o:p><br />
<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableDarkListAccent1" style="border-collapse: collapse; border: none; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themetint: 191; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="background: #595959; border: solid #404040 1.0pt; mso-background-themecolor: text1; mso-background-themetint: 166; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 147.15pt;" width="196">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 5; text-align: center;">
<b><span style="color: white; mso-themecolor: background1;">Zahlen<o:p></o:p></span></b></div>
</td>
<td style="background: #595959; border-left: none; border: solid #404040 1.0pt; mso-background-themecolor: text1; mso-background-themetint: 166; mso-border-alt: solid #404040 .5pt; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 3.0cm;" width="113">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 1; text-align: center;">
<b><span style="color: white; mso-themecolor: background1;">Beispiel 1 (de)<o:p></o:p></span></b></div>
</td>
<td style="background: #595959; border-left: none; border: solid #404040 1.0pt; mso-background-themecolor: text1; mso-background-themetint: 166; mso-border-alt: solid #404040 .5pt; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 217.95pt;" width="291">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 1; text-align: center;">
<b><span style="color: white; mso-themecolor: background1;">Beispiel 2<o:p></o:p></span></b></div>
</td>
</tr>
<tr>
<td style="background: white; border-top: none; border: solid #404040 1.0pt; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 147.15pt;" width="196">
<div align="left" class="MsoNormal" style="mso-yfti-cnfc: 68; text-align: left;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">Dezimaltrennzeichen<o:p></o:p></span></div>
</td>
<td style="background: white; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 3.0cm;" width="113">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 64; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">,<a href=""></a><a href=""><o:p></o:p></a></span></div>
</td>
<td style="background: white; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 217.95pt;" width="291">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 64; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">. [USA]</span><span class="MsoCommentReference"><span style="font-size: 8.0pt;"><!--[if !supportAnnotations]--><a class="msocomanchor" href="file:///F:/nobisCum/pr/article/my/nls%20-%20formate/111114_nC-Magazin_Datenformate-draft2-clean.docx#_msocom_1" id="_anchor_1" language="JavaScript" name="_msoanchor_1">[fs1]</a><!--[endif]--> </span></span><span class="MsoCommentReference"><span style="font-size: 8.0pt;"><!--[if !supportAnnotations]--><a class="msocomanchor" href="file:///F:/nobisCum/pr/article/my/nls%20-%20formate/111114_nC-Magazin_Datenformate-draft2-clean.docx#_msocom_2" id="_anchor_2" language="JavaScript" name="_msoanchor_2">[mre2]</a><!--[endif]--> </span></span><span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;"><o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="background: white; border-top: none; border: solid #404040 1.0pt; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 147.15pt;" width="196">
<div align="left" class="MsoNormal" style="mso-yfti-cnfc: 132; text-align: left;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">Anzahl der
Dezimalstellen<o:p></o:p></span></div>
</td>
<td style="background: #F2F2F2; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 3.0cm;" width="113">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 128; text-align: center;">
<a href=""></a><a href=""><span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">2<o:p></o:p></span></a></div>
</td>
<td style="background: #F2F2F2; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 217.95pt;" width="291">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 128; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">2 [USA]</span><span class="MsoCommentReference"><span style="font-size: 8.0pt;"><!--[if !supportAnnotations]--><a class="msocomanchor" href="file:///F:/nobisCum/pr/article/my/nls%20-%20formate/111114_nC-Magazin_Datenformate-draft2-clean.docx#_msocom_3" id="_anchor_3" language="JavaScript" name="_msoanchor_3">[fs3]</a><!--[endif]--> </span></span><span class="MsoCommentReference"><span style="font-size: 8.0pt;"><!--[if !supportAnnotations]--><a class="msocomanchor" href="file:///F:/nobisCum/pr/article/my/nls%20-%20formate/111114_nC-Magazin_Datenformate-draft2-clean.docx#_msocom_4" id="_anchor_4" language="JavaScript" name="_msoanchor_4">[mre4]</a><!--[endif]--> </span></span><span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;"><o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="background: white; border-top: none; border: solid #404040 1.0pt; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 147.15pt;" width="196">
<div align="left" class="MsoNormal" style="mso-yfti-cnfc: 68; text-align: left;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">Symbol für
Zifferngruppierung<o:p></o:p></span></div>
</td>
<td style="background: white; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 3.0cm;" width="113">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 64; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">.<o:p></o:p></span></div>
</td>
<td style="background: white; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 217.95pt;" width="291">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 64; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;"><blank> [Frankreich] <o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="background: white; border-top: none; border: solid #404040 1.0pt; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 147.15pt;" width="196">
<div align="left" class="MsoNormal" style="mso-yfti-cnfc: 132; text-align: left;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">Zifferngruppierung<o:p></o:p></span></div>
</td>
<td style="background: #F2F2F2; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 3.0cm;" width="113">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 128; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">123.456.789<o:p></o:p></span></div>
</td>
<td style="background: #F2F2F2; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 217.95pt;" width="291">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 128; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">123456.789 [Grönland: einmalige Gruppierung]<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="background: white; border-top: none; border: solid #404040 1.0pt; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 147.15pt;" width="196">
<div align="left" class="MsoNormal" style="mso-yfti-cnfc: 68; text-align: left;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">Negatives
Vorzeichen<o:p></o:p></span></div>
</td>
<td style="background: white; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 3.0cm;" width="113">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 64; text-align: center;">
<a href=""></a><a href=""><span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">-<o:p></o:p></span></a></div>
</td>
<td style="background: white; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 217.95pt;" width="291">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 64; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">- [USA]</span><span class="MsoCommentReference"><span style="font-size: 8.0pt;"><!--[if !supportAnnotations]--><a class="msocomanchor" href="file:///F:/nobisCum/pr/article/my/nls%20-%20formate/111114_nC-Magazin_Datenformate-draft2-clean.docx#_msocom_5" id="_anchor_5" language="JavaScript" name="_msoanchor_5">[fs5]</a><!--[endif]--> </span></span><span class="MsoCommentReference"><span style="font-size: 8.0pt;"><!--[if !supportAnnotations]--><a class="msocomanchor" href="file:///F:/nobisCum/pr/article/my/nls%20-%20formate/111114_nC-Magazin_Datenformate-draft2-clean.docx#_msocom_6" id="_anchor_6" language="JavaScript" name="_msoanchor_6">[mre6]</a><!--[endif]--> </span></span><span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;"><o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="background: white; border-top: none; border: solid #404040 1.0pt; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 147.15pt;" width="196">
<div align="left" class="MsoNormal" style="mso-yfti-cnfc: 132; text-align: left;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">Format für
negative Zahlen<o:p></o:p></span></div>
</td>
<td style="background: #F2F2F2; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 3.0cm;" width="113">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 128; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">-1,1<o:p></o:p></span></div>
</td>
<td style="background: #F2F2F2; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 217.95pt;" width="291">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 128; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">1.1- [persisch, minus nachgestellt]<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="background: white; border-top: none; border: solid #404040 1.0pt; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 147.15pt;" width="196">
<div align="left" class="MsoNormal" style="mso-yfti-cnfc: 68; text-align: left;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">Führende Null
anzeigen<o:p></o:p></span></div>
</td>
<td style="background: white; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 3.0cm;" width="113">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 64; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">0,7<o:p></o:p></span></div>
</td>
<td style="background: white; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 217.95pt;" width="291">
<div align="left" class="MsoListParagraph" style="margin-left: 18.0pt; mso-add-space: auto; mso-yfti-cnfc: 64; text-align: left;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">.7 [Thai]</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="background: white; border-top: none; border: solid #404040 1.0pt; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 147.15pt;" width="196">
<div align="left" class="MsoNormal" style="mso-yfti-cnfc: 132; text-align: left;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">Listentrennzeichen<o:p></o:p></span></div>
</td>
<td style="background: #F2F2F2; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 3.0cm;" width="113">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 128; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">;<o:p></o:p></span></div>
</td>
<td style="background: #F2F2F2; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 217.95pt;" width="291">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 128; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">, [USA]<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="background: white; border-top: none; border: solid #404040 1.0pt; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 147.15pt;" width="196">
<div align="left" class="MsoNormal" style="mso-yfti-cnfc: 68; text-align: left;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">Maßsysteme<o:p></o:p></span></div>
</td>
<td style="background: white; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 3.0cm;" width="113">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 64; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">Metrisch, z.B.
Zentimeter<o:p></o:p></span></div>
</td>
<td style="background: white; border-bottom: solid #404040 1.0pt; border-left: none; border-right: solid #404040 1.0pt; border-top: none; mso-background-themecolor: background1; mso-border-alt: solid #404040 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 191; mso-border-left-alt: solid #404040 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 191; mso-border-right-themecolor: text1; mso-border-right-themetint: 191; mso-border-themecolor: text1; mso-border-themetint: 191; mso-border-top-alt: solid #404040 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 191; padding: 0cm 5.4pt 0cm 5.4pt; width: 217.95pt;" width="291">
<div align="center" class="MsoNormal" style="mso-yfti-cnfc: 64; text-align: center;">
<span style="color: #404040; mso-themecolor: text1; mso-themetint: 191;">US-Maße, z.B.
inch [USA]<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<br />
<div>
<!--[if !supportAnnotations]-->
<div>
<div class="msocomtxt" id="_com_6" language="JavaScript">
<!--[if !supportAnnotations]--></div>
<!--[endif]--></div>
</div>
<br />
<br />
Neben den Zahlen gibt es noch weitere Kategorien wie etwa Währung, Uhrzeit, Datum und Sortierung die sich je nach Land unterscheiden können.</div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
Nach dieser kleinen Aufzählung von Besonderheiten überrascht es vermutlich auch nicht, dass dies in der IT manchmal zu Problemen führen kann.<o:p></o:p></div>
<h2>
<o:p> </o:p></h2>
<h2>
Interpretation<o:p></o:p></h2>
<div class="MsoNormal">
Sind die richtigen Werte erst mal in einem IT-System wie einer Datenbank gelandet, hat man schon einen Großteil richtig gemacht. Eine Datenbank verwaltet Zahlen, Uhrzeiten und Datumswerte in einer internen Darstellung.<o:p></o:p></div>
<div class="MsoNormal">
Die größte Fehlerquelle tritt daher meist bei der Konvertierung der Werte in das interne Format auf. Die entsprechenden Werte müssen von den Systemen korrekt interpretiert werden. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Im folgendem einige Szenarien bei denen es bei der Interpretation von Werten oft zu Problemen kommen kann:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u>Datenerfassung auf Webseiten / Spracheinstellungen<o:p></o:p></u></b></div>
<div class="MsoNormal">
Ein Webbrowser kann ebenfalls eigene Spracheinstellungen haben. <o:p></o:p></div>
<div class="MsoNormal">
Dies ist besonders dann interessant wenn eine Webanwendung in mehrere Sprachen verfügbar sein soll.<o:p></o:p></div>
<div class="MsoNormal">
Die eingestellte Länderkennung wird dann an den Server mitgegeben und ermöglich es bestehenden Web Frameworks eine Konvertierung vorzunehmen in die entsprechenden Datentypen (Number, Date, String).<o:p></o:p></div>
<div class="MsoNormal">
Dies klappt solange gut, solange man auch mit den korrekten Datentypen arbeitet. Wird ein Datumswert in einem Textfeld (String) gespeichert, kann ein Framework hier nicht mehr unterstützen. Eine anschließende manuelle Konvertierung ist oft schwierig oder sogar unmöglich.<o:p></o:p></div>
<div class="MsoNormal">
<b><span style="font-family: Wingdings;">à</span>saubere Datenformate, nichts selber machen; die meisten Frameworks (Struts, JSF, ASP.NET) können / besitzen NLS (i18n).<o:p></o:p></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u>CSV - Importdateien<o:p></o:p></u></b></div>
<div class="MsoNormal">
Häufig werden CSV-Dateien aus Excel zum Import in IT Systeme verwendet.<o:p></o:p></div>
<div class="MsoNormal">
Auch dies kann zu Problemen führen.<o:p></o:p></div>
<div class="MsoNormal">
Wenn man eine CSV Datei mit einem Texteditor ansieht, sieht man das dort meist Strichpunkte als Trennzeichen verwendet werden und keine Kommas. Dies liegt daran, dass in Nordeuropa als Listentrennzeichen ein Strichpunkt verwendet wird, in den USA dagegen ein Komma.<o:p></o:p></div>
<div class="MsoNormal">
Dies hat zur Folge, dass bei der Erstellung einer CSV Datei aus Excel heraus die Ländereinstellungen des Betriebssystems abgefragt werden. Werden diese nicht überschrieben kann daher eine CSV Datei auf einem Rechner mit deutschen Einstellungen anders aussehen als auf einem amerikanischen Rechner.<o:p></o:p></div>
<div class="MsoNormal">
Wenn die CSV Datei in ein System hochgeladen wird, kann man das entsprechende Format ggf. noch an der Ländereinstellung des Clients erkennen. Falls ein System allerdings eine CSV Schnittstelle hat, empfiehlt es sich das Format im Vorfeld fest mit allen Beteiligten zu vereinbaren.<o:p></o:p></div>
<div class="MsoNormal">
<b><span style="font-family: Wingdings;">à</span>Nicht die Defaulteinstellung des Listentrenners nehmen, sondern ein festes Format dafür vereinbaren.<o:p></o:p></b></div>
<div class="MsoNormal">
Das gleiche Problematik beim Import tritt nicht nur bei den Listentrennern ein sondern auch bei den Datentypen einzelner Spalten (Zahlen, Datum). Hier empfiehlt es sich wiederrum das genau Format mit allen beteiligten im Vorfeld zu definieren!<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u>Batchverarbeitung<o:p></o:p></u></b></div>
<div class="MsoNormal">
Bei der Batchverarbeitung treten die gleiche Probleme auf wie bereits oben beschrieben, nur dass diese manchmal schwerer zu testen sind.<o:p></o:p></div>
<div class="MsoNormal">
Die meisten Programmiersprachen konvertieren Zahlen und Datumswerte mit den Defaulteinstellungen des Systems auf dem sie gerade laufen. Im Client-Bereich ist dies auch sehr nützlich; läuft das Programm allerdings auf dem Server kann das zu Problemen führen.<o:p></o:p></div>
<div class="MsoNormal">
Leider kommt es immer wieder vor, dass sich die lokalen Einstellungen nicht von denen auf der Stagingumgebung unterscheiden. Hier funktioniert dann immer noch alles…<o:p></o:p></div>
<div class="MsoNormal">
Wenn sich dann allerdings die Stagingumgebung von der Produktion im Bereich der Region- und Ländereinstellungen unterscheidet, kann es zu ungewünschten Problemen führen.<o:p></o:p></div>
<div class="MsoNormal">
Aufgrund von mangelnden Serverresourcen kommt der Fall, dass die Testumgebung nicht identisch mit der Produktionsumgebung ist, in der Praxis leider öfters vor.<o:p></o:p></div>
<div class="MsoNormal">
<b><span style="font-family: Wingdings;">à</span>Nicht die Defaulteinstellung nehmen, sondern ein festes Format. bspw. immer mit der Angabe „de“<o:p></o:p></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<h2>
Summary<o:p></o:p></h2>
<div class="MsoNormal">
Mit Tests können natürlich auch hier viele Fehler vermieden werden. Aufgrund von unterschiedlichen Default-Einstellungen der Test- und Produktivserver kann es aber trotzdem immer wieder zu unerwünschten Formatproblemen kommen.<o:p></o:p></div>
<div class="MsoNormal">
Problem ist erkannt und in der Java Welt versucht man diese Problematik ein bisschen zu bekämpfen mit dem neuen Datumstyp „Joda-Time“.<o:p></o:p></div>
<div class="MsoNormal">
Letztendlich ist das Themenfeld Zahlen- und Datuminterpretation immer ein Fehlerpotential, das man nur mit entsprechenden Know How sauber bewältigen kann.<span style="font-size: 9pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
</div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com1tag:blogger.com,1999:blog-2681743958139599205.post-71996997710713143172011-07-07T20:03:00.001+02:002011-07-07T20:04:54.303+02:00Maven, WTP und der ClassPath<div class="WordSection1"><div class="MsoNormal">Verwendet man das <span style="font-family: 'Courier New'; font-size: 9pt;">m2eclipse</span> Plugin bei der Webentwicklung in eclipse (WTP – Web Tools Platform), tritt leider ein unerwünschtes Verhalten auf…<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Eclipse kennt nur einen ClassPath. <o:p></o:p></div><div class="MsoNormal">Schlimm genug. <o:p></o:p></div><div class="MsoNormal">Leider werden die, in Maven als provided gekennzeichnet Libraries, auch vom WTP Plugin in das <span style="font-family: 'Courier New'; font-size: 9pt;">WEB-INF\lib</span> Verzeichnis kopiert/deployed (siehe <a href="http://jira.codehaus.org/browse/MNGECLIPSE-714">http://jira.codehaus.org/browse/MNGECLIPSE-714</a>).<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Bei vielen Libraries ist dies nicht weiter schlimm. Bei einigen anderen verhindert dies dagegen die korrekte Funktionsweise des Tomcats.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">In meinem Beispiel habe ich in dem kompletten Tomcat einen Transaktionsmanager „gegeben“ (BTM). Dieser hängt sich unter anderem in die Datasoure Definition aus der server.xml.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Als common-lib wird hier bspw. jta-1.1.jar benötigt (liegt unter <span style="font-family: 'Courier New'; font-size: 9pt;"><CATALINA_HOME>\lib</span>.<o:p></o:p></div><div class="MsoNormal">Ist diese Library dann nochmal in der eigentlichen Webapplikation unter <span style="font-family: 'Courier New'; font-size: 9pt;">WEB-INF\lib</span> funktioniert BTM nicht mehr korrekt und die Applikation kann auf keine DB Resourcen zugreifen.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Folgender „Hack“ verschafft Abhilfe:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">pom.xml:<o:p></o:p></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">profiles</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">profile</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 8pt;"><!-- <u>Da</u> eclipse <u>keine</u> <u>Unterscheidung</u> <u>beim</u> <u>Classpath</u> <u>kennt</u> <u>und</u> <u>das</u> m2eclipse </span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 8pt;"> <u>hier</u> <u>auch</u> <u>keine</u> <u>Unterstützung</u> <u>bietet</u> (http://jira.codehaus.org/browse/MNGECLIPSE-714 </span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 8pt;"> -<u>Timestamp</u>:06.07.2011), <u>werden</u> Libraries die provided <u>sind</u> per WTP <u>innerhalb</u> </span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 8pt;"> <u>von</u> eclipse <u>immer</u> in <u>das</u> WEB-INF\<u>lib</u> <u>Verzeichnis</u> <u>kopiert</u>. <u>Mit</u> <u>Hilfe</u> <u>des</u> Profiles </span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 8pt;"> <u>wird</u> in <u>im</u> <u>Normalfall</u> (profile: default) die provided Libraries <u>von</u> <u>maven</u> </span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 8pt;"> <u>richtig</u> <u>gehandelt</u>. Falls man <u>sich</u> in <u>der</u> eclipse <u>Umgebung</u> <u>befindet</u> <u>kommen</u> </span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 8pt;"> <u>diese</u> <u>nicht</u> in den Web-<u>App</u> <u>Classpath</u>. Die <u>kann</u> <u>über</u> <u>ein</u> Property <u>sichergestellt</u> </span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 8pt;"> <u>werden</u>. <u>Das</u> <u>einzigste</u> Property <u>das</u> in Eclipse <u>beim</u> Start <u>gesetzt</u> <u>wird</u>, <u>ist</u> </span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 8pt;"> in den <u>aktuellen</u> eclipse <u>Versionen</u> osgi.requiredJavaVersion. <u>Anhand</u> <u>von</u> diesem </span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 8pt;"> wird daher das Profile gewählt --></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">id</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">eclipse-env</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">id</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">activation</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">property</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">name</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">osgi.requiredJavaVersion</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">name</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">value</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">1.5</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">value</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">property</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">activation</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">profile</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">profile</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">id</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">default</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">id</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">activation</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">activeByDefault</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">true</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">activeByDefault</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">activation</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">dependencies</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">dependency</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">groupId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">org.apache.tomcat</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">groupId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">artifactId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">tomcat-servlet-api</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">artifactId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">version</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">7.0.16</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">version</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">scope</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">provided</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">scope</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">dependency</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">dependency</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">groupId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">org.codehaus.btm</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">groupId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">artifactId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">btm</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">artifactId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">version</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">2.1.1</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">version</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">scope</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">provided</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">scope</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">dependency</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">dependency</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">groupId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">javax.transaction</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">groupId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">artifactId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">jta</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">artifactId</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">version</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">1.1</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">version</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">scope</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 8pt;">provided</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">scope</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">dependency</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">dependencies</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">profile</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 8pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 8pt;">profiles</span><span style="color: teal; font-family: 'Courier New'; font-size: 8pt;">></span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Mit Hilfe des neuen Maven Profiles „default“ werden die <span style="font-family: 'Courier New'; font-size: 9pt;">provided</span> Libraries per Default geladen (<span style="font-family: 'Courier New'; font-size: 9pt;">activatedByDefault=true</span>).<o:p></o:p></div><div class="MsoNormal">Innerhalb von eclipse greift aber das Profile „eclipse-dev“. Das Ganze wird anhand des java Paramters osgi.requiredJavaVersion ermittelt. Dieser Paramter wird beim Start von eclipse mitgegeben und ist daher bei der direkten Verwendung von Maven innerhalb von eclipse immer vorhanden.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">So einen Parameter setzt ein „normaler“ Web-Entwicklung normalerweise ja nicht, so dass es hier zu keinerlei Konflikten kommen sollte ;-)<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Mit diesem „Hack“ tauchen die provided Libraries nicht mehr im eclipse Class-Path auf und werden somit auch nicht nach <span style="font-family: 'Courier New'; font-size: 9pt;">WEB-INF\lib deployed</span>.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: Wingdings;">J</span><o:p></o:p></div><div class="MsoNormal"><br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com2tag:blogger.com,1999:blog-2681743958139599205.post-4955760133854440632011-05-17T10:35:00.001+02:002011-05-17T10:37:14.082+02:00Inject a Spring Bean into a JAX-WS (Spring 2.0)<div class="WordSection1"><div class="MsoNormal">Der folgende Beispielcode ist eine mögliche Lösung für folgendes Problem:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Auf einem Tomcat (5.5 <span style="font-family: Wingdings;">ß</span> alles altes Legacy Zeugs ;-) ) soll ein Webservice veröffentlicht werden. Als Technik soll JAX-WS verwendet werden. Ein Spring-WS kommt wegen dem Contract-First Ansatz nicht in Frage.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Der Webservice:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@WebService</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">(targetNamespace = </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"http://de.sourcecoding.webservice"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, name = </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"dummyws"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, serviceName = </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"dummyws"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">class</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> WSDummy {<o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> abcDTO getDummyData(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">int</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> id) {<o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none; text-indent: 35.4pt;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;">// ...</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">}</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Web.xml:<o:p></o:p></div><div class="MsoNormal" style="text-autospace: none; text-indent: 35.4pt;"><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">servlet</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">servlet-name</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">JAX-WS</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">servlet-name</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">description</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">Servlet</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> for JAX-WS integration</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">description</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">servlet-class</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">com.sun.xml.ws.transport.http.servlet.WSServlet</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">servlet-class</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">load-on-startup</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">1</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">load-on-startup</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">servlet</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">servlet-mapping</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">servlet-name</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">JAX-WS</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">servlet-name</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">url-pattern</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">/ws</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">url-pattern</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">servlet-mapping</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Funktioniert wunderbar <span style="font-family: Wingdings;">J</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Jetzt steht man allerdings vor dem Problem, wie man einen gemanagten Spring Bean hier injizieren kann. Mit folgenden Code ist dies Möglich:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@WebService</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">(targetNamespace = </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"http://de.sourcecoding.webservice"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, name = </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"dummyws"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, serviceName = </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"dummyws"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">class</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> WSDummy {<o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none; text-indent: 35.4pt;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@Resource</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> WebServiceContext </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">wsCtxt</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> AbcDTO getDummyData(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">int</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> id) {<o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><br />
</div><div class="MsoNormal" style="margin-left: 35.4pt; text-autospace: none; text-indent: 35.4pt;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">MessageContext msgCtxt = </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">wsCtxt</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">.getMessageContext();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ServletContext sc = (ServletContext) msgCtxt</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> .get(MessageContext.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">SERVLET_CONTEXT</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ApplicationContext context = WebApplicationContextUtils</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> .<i>getWebApplicationContext</i>(sc);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;">// hole Spring Bean</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> XYZService service = (XYZService) context.getBean(</span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"xXZService"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">}</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">In dem Webservice wird per @Resource der Context injiziert. Über diesen Context kann dann der gesetzt Spring ApplicationContext gezogen werden. In diesem Beispiel wird der XYZService dann als gemanagter Spring Bean behandelt.<o:p></o:p></div><div class="MsoNormal"><br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-21103216826850227892011-04-15T00:21:00.001+02:002011-04-19T09:13:48.518+02:00Anonyme Facebook KommentareIch bin gerade dabei in einem Spiel-Java-Blog die Kommentare per Facebook-Comments zu integrieren.<br />
<br />
Früher konnte man an dieser Stelle auch anonyme Facebook Kommentare abschicken, was für einen Blog recht cool wäre.<br />
<br />
Leider wird diese Funktion scheinbar nicht mehr von Facebook unterstützt.<br />
<br />
In den beiden folgenden Artikeln ist der Hintergrund hierfür aufgeführt...<br />
<br />
<a href="http://www.poynter.org/latest-news/media-lab/social-media/108565/facebook-manager-calls-for-end-to-anonymous-comments/">http://www.poynter.org/latest-news/media-lab/social-media/108565/facebook-manager-calls-for-end-to-anonymous-comments/</a><br />
<br />
<a href="http://www.nytimes.com/2010/11/30/opinion/30zhuo.html?_r=2">http://www.nytimes.com/2010/11/30/opinion/30zhuo.html?_r=2</a><br />
<br />
Naja vielleicht gibt's dann doch Kommentare über einen Login per OpenID...Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-73039994339060512562011-02-23T01:21:00.000+01:002011-02-23T01:21:41.470+01:00Historisierungskonzepte<div class="WordSection1"><br />
Der folgende Artikel ist der Rohentwurf für einen Magazin-Artikel (Rohentwurf := die Marketing-Abteilung hat noch keine Schleife darüber gedreht ;-) )<br />
<br />
<br />
<b>Historisierungskonzepte</b><br />
<span style="font-size: 11pt; line-height: 115%;"> - Datenhistorisierung in Versicherungsbestandsystemen -</span><o:p></o:p><br />
<div class="MsoNormal"><br />
</div><div class="MsoNormal">Eines der wesentlichen Aspekte eines Bestandsystems ist die Datenspeicherung. <o:p></o:p></div><div class="MsoNormal">Ein Versicherungsvertrag und alle darauf ausgeführten Änderungen müssen revisionssicher gespeichert werden. Jede Änderung bewirkt dabei, dass es eine neue Version des Vertrages gibt. Es handelt sich hierbei um einen neuen Vertragsstand. Ein wesentliches Merkmal eines Vertragstandes ist der Zeitpunkt ab wann dieser Stand seine Gültigkeit erreicht.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Bei diesen Vertragsstand-Versionen spricht man von den Historien eines Vertrags. Hierbei gibt es unterschiedliche Möglichkeiten wie die Persistierung von Vertragsständen in einem relationalen Datenbank Management System (RDBMS) realisiert werden kann. <o:p></o:p></div><div class="MsoNormal">Die Hersteller von Standard-Bestandsystem haben meist eine eigene Art der Historisierung. Im Normalfall ist diese aber immer an einen bestimmten Typ von Historisierung angelehnt. Auch bei individual entwickelten Systemen lässt sich die Historienführung meist auf eine übergreifende Kategorie zurückführen.<o:p></o:p></div><div class="MsoNormal">Zwei gängige Varianten zur Speicherung von zeitbezogenen Daten sind die Uni-Temporale und Bi-Temporale Datenspeicherung. Neben diesen beiden gibt es weitere Möglichkeiten, allerdings sind diese eher untypisch für Versicherungsbestandssysteme.<o:p></o:p></div><div class="MsoNormal">Im Folgenden werden die beiden Varianten anhand von Beispieldatensätzen vorgestellt.<o:p></o:p></div><div class="MsoNormal">Wir gehen hierzu von einem einfachen Datensatz in einem RDBMS aus:<o:p></o:p></div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none;"><tbody>
<tr><td style="border: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><br />
</div></td><td nowrap="" style="border-bottom: solid windowtext 1.0pt; border: none; padding: 0cm 0cm 0cm 0cm; width: 1.0cm;" valign="top" width="38"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">--PK--<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.2pt;" valign="top" width="132"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><br />
</div></td></tr>
<tr><td style="border-right: solid windowtext 1.0pt; border: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>Ohne Zeitbezug<o:p></o:p></b></div></td><td style="background: #D9D9D9; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 1.0cm;" valign="top" width="38"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">id<o:p></o:p></div></td><td style="background: #D9D9D9; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.2pt;" valign="top" width="132"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">data<o:p></o:p></div></td></tr>
</tbody></table><div class="MsoNormal"><br />
</div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none;"><tbody>
<tr><td style="border: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><br />
</div></td><td colspan="3" nowrap="" style="border-bottom: solid windowtext 1.0pt; border: none; padding: 0cm 0cm 0cm 0cm; width: 87.45pt;" valign="top" width="117"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">|------- PK -------|<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.2pt;" valign="top" width="132"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><br />
</div></td></tr>
<tr><td style="border-right: solid windowtext 1.0pt; border: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>Uni-Temporal<o:p></o:p></b></div></td><td style="background: #D9D9D9; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 30.75pt;" valign="top" width="41"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">id<o:p></o:p></div></td><td style="background: #D9D9D9; border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 1.0cm;" valign="top" width="38"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">bd<sub>1</sub><o:p></o:p></div></td><td style="background: #D9D9D9; border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 1.0cm;" valign="top" width="38"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">be<sub>1</sub><o:p></o:p></div></td><td style="background: #D9D9D9; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.2pt;" valign="top" width="132"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">data<o:p></o:p></div></td></tr>
<tr height="0"><td style="border: none;" width="144"></td><td style="border: none;" width="41"></td><td style="border: none;" width="40"></td><td style="border: none;" width="40"></td><td style="border: none;" width="132"></td></tr>
</tbody></table><div class="MsoNormal"><br />
</div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none;"><tbody>
<tr><td style="border: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><br />
</div></td><td colspan="5" nowrap="" style="border-bottom: solid windowtext 1.0pt; border: none; padding: 0cm 0cm 0cm 0cm; width: 155.9pt;" valign="top" width="208"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">|-------------- PK --------------|<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 91.15pt;" valign="top" width="122"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><br />
</div></td></tr>
<tr><td style="border-right: solid windowtext 1.0pt; border: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>Bi-Temporal<o:p></o:p></b></div></td><td style="background: #D9D9D9; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 30.5pt;" valign="top" width="41"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">id<o:p></o:p></div></td><td style="background: #D9D9D9; border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 34.55pt;" valign="top" width="46"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">bd<sub>1</sub><o:p></o:p></div></td><td style="background: #D9D9D9; border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 34.15pt;" valign="top" width="46"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">be<sub>1</sub><o:p></o:p></div></td><td style="background: #D9D9D9; border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 1.0cm;" valign="top" width="38"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">bd<sub>2</sub><o:p></o:p></div></td><td style="background: #D9D9D9; border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 1.0cm;" valign="top" width="38"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">be<sub>2</sub><o:p></o:p></div></td><td style="background: #D9D9D9; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 91.15pt;" valign="top" width="122"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">data<o:p></o:p></div></td></tr>
<tr height="0"><td style="border: none;" width="144"></td><td style="border: none;" width="41"></td><td style="border: none;" width="46"></td><td style="border: none;" width="46"></td><td style="border: none;" width="41"></td><td style="border: none;" width="41"></td><td style="border: none;" width="122"></td></tr>
</tbody></table><div class="MsoNormal"><br />
</div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; margin-left: 161.35pt;"><tbody>
<tr><td style="background: #C4BC96; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 281.85pt;" valign="top" width="376"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><span style="font-size: 9pt;">PK := Primary Key. Hiermit wird der Datensatz eindeutig identifiziert<br />
id := Identifiziert einen Datensatz ohne zeitlichen Bezug<br />
bd<sub>1</sub> := Beginn Datum der ersten Zeitperiode<br />
be<sub>1</sub> := Ende Datum der ersten Zeitperiode<br />
bd<sub>2</sub> := Beginn Datum der zweiten Zeitperiode<br />
be<sub>2</sub> := Ende Datum der zweiten Zeitperiode<br />
data := Daten</span><o:p></o:p></div></td></tr>
</tbody></table><div class="MsoNormal"><br />
</div><div class="MsoNormal">Diese theoretischen Grundlagen werden nun im Folgenden mit Versicherungsdaten in Bezug gebracht:<o:p></o:p></div><br />
<b>Ohne Zeitbezug (Non-Temporal)<o:p></o:p></b><br />
<div class="MsoNormal">Dieser Punkt ist nur der Vollständigkeit wegen aufgeführt. Es handelt sich hierbei um eine normale Art der Persistierung ohne Zeitbezug.<o:p></o:p></div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none;"><tbody>
<tr><td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.85pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>Id<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.95pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>kennzeichen<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 35.45pt;" valign="top" width="47"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>vk<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 42.55pt;" valign="top" width="57"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>vk sb<o:p></o:p></b></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.85pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">4711<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.95pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">M-XY 678<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 35.45pt;" valign="top" width="47"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">0<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 42.55pt;" valign="top" width="57"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">null<o:p></o:p></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.85pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">3216<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.95pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">K - AB 320<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 35.45pt;" valign="top" width="47"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">1<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 42.55pt;" valign="top" width="57"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">500<o:p></o:p></div></td></tr>
</tbody></table><div class="MsoNormal"><br />
</div><div class="MsoNormal">Die Tabelle beinhaltet zwei Versicherungsobjekte. <o:p></o:p></div><div class="MsoNormal">Bei einem Kfz Produkt gibt es natürlich weit mehr Daten, um das Ganz aber übersichtlich zu gestalten wurden hier nur die Daten für das Beispiel aufgeführt.<o:p></o:p></div><div class="MsoNormal">In der Tabelle gibt es einmal ein Kfz mit dem Kennzeichen M-XY 678 (id=4711) ohne Vollkasko Deckung (vk = 0).<o:p></o:p></div><div class="MsoNormal">Weiterhin ist ein zweites Fahrzeug enthalten (K-AB 320) (id=3216), dass ein Vollkasko Deckung (vk=1) enthält mit einem Selbstbehalt (sb) von 500 EUR.<o:p></o:p></div><div class="MsoNormal">Eine zeitliche Historisierung der Daten ist so nicht möglich!<o:p></o:p></div><div class="MsoNormal"><br />
</div><h2>Uni-Temporal<o:p></o:p></h2><div class="MsoNormal">Nun wird ein Gültigkeitszeitraum zu den Kfz Policen hinzugefügt. <o:p></o:p></div><div class="MsoNormal">Mit der Einführung der Spalten „gueltigAb“ und „gueltigBis“ wird ein zeitlicher Bezug hergestellt, von wann bis wann die Police in dieser Form gültig ist/war.<o:p></o:p></div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none;"><tbody>
<tr><td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.85pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>Id<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.9pt;" valign="top" width="95"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>gueltigAb<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.85pt;" valign="top" width="94"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>gueltigBis<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.95pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>kennzeichen<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 35.45pt;" valign="top" width="47"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>vk<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 42.55pt;" valign="top" width="57"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>vk sb<o:p></o:p></b></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.85pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">4711<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.9pt;" valign="top" width="95"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">01.01.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.85pt;" valign="top" width="94"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">31.12.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.95pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">M-XY 678<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 35.45pt;" valign="top" width="47"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">0<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 42.55pt;" valign="top" width="57"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">null<o:p></o:p></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.85pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">3216<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.9pt;" valign="top" width="95"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">08.02.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.85pt;" valign="top" width="94"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">31.12.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.95pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">K-AB 320<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 35.45pt;" valign="top" width="47"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">1<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 42.55pt;" valign="top" width="57"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">500<o:p></o:p></div></td></tr>
</tbody></table><div class="MsoNormal"><br />
</div><div class="MsoNormal">Das Kfz M-XY 678 (id=4711) ist versichert vom 01.01.2011 bis zum 31.12.2011. <o:p></o:p></div><div class="MsoNormal">Das Fahrzeug K-AB 320 (id=3216) wurde zum 08.02.2011 neu versichert. Die Kalenderjahrpolice geht bis zum Jahresende (31.12.2011).<o:p></o:p></div><div class="MsoNormal"><u>Änderungen<o:p></o:p></u></div><div class="MsoNormal">Der Versicherungsnehmer des Kfz M-XY 678 will seine Police um eine Vollkasko-Deckung erweitern. Sein Sohn wird zum 19.02.2011 Volljährig und nutzt als Fahranfänger ab diesem Zeitpunkt ebenfalls das Auto. Um sich gegen die Reparaturkosten bei einem selbstverschuldeten Unfall abzusichern, erweitert er seinen bestehenden Versicherungsvertrag ab den 19.02.2011 um eine Vollkasko-Deckung mit 300EUR Selbstbeteiligung.<o:p></o:p></div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none;"><tbody>
<tr><td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.85pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>Id<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.9pt;" valign="top" width="95"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>gueltigAb<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.85pt;" valign="top" width="94"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>gueltigBis<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.95pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>kennzeichen<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 35.45pt;" valign="top" width="47"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>vk<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 42.55pt;" valign="top" width="57"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>vk sb<o:p></o:p></b></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.85pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">4711<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.9pt;" valign="top" width="95"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">01.01.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.85pt;" valign="top" width="94"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>19.02.2011<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.95pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">M-XY 678<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 35.45pt;" valign="top" width="47"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">0<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 42.55pt;" valign="top" width="57"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">null<o:p></o:p></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.85pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">4711<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.9pt;" valign="top" width="95"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>19.02.2011<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.85pt;" valign="top" width="94"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">31.12.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.95pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">M-XY 678<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 35.45pt;" valign="top" width="47"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>1<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 42.55pt;" valign="top" width="57"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>300<o:p></o:p></b></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.85pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">3216<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.9pt;" valign="top" width="95"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">08.02.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.85pt;" valign="top" width="94"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">31.12.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.95pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">K-AB 320<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 35.45pt;" valign="top" width="47"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">1<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 42.55pt;" valign="top" width="57"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">500<o:p></o:p></div></td></tr>
</tbody></table><div class="MsoNormal"><br />
</div><div class="MsoNormal">Mit der Einführung der Daten <span style="font-family: 'Courier New'; font-size: 9pt; line-height: 115%;">gueltigAb</span><span style="font-size: 9pt; line-height: 115%;"> </span>und <span style="font-family: 'Courier New'; font-size: 9pt; line-height: 115%;">gueltigBis</span><span style="font-size: 9pt; line-height: 115%;"> </span>kann nun festgestellt werden von wann bis wann welche Version einer Police gültig war.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><u>Deckungsprüfung<o:p></o:p></u></div><div class="MsoNormal">Wenn der Versicherungsnehmer für sein Kfz (id=4711; M-XY 678) nun einen Vollkasko-Schaden zum 22.02.2011 meldet, kann die Schadenabteilung die Deckung mit folgenden Select prüfen:<o:p></o:p></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt; line-height: 115%;">SELECT * FROM kfz_police <br />
WHERE id=4711 <br />
AND ‚<b>22.02.2011</b>‘ BETWEEN <b>gueltigAb</b> AND <b>gueltigBis</b><o:p></o:p></span></div><div class="MsoNormal">Als Ergebnis bekommt man den ersten Datensatz, der eine Vollkasko Deckung enthält. Der Schaden des Versicherten ist gedeckt.<o:p></o:p></div><div class="MsoNormal"><br />
</div><h2>Bi-Temporal<o:p></o:p></h2><div class="MsoNormal">Neben dem Gültigkeitszeitraum ist bei einer Versicherungspolice weiterhin der Wirksamkeitszeitraum von Interesse. <o:p></o:p></div><div class="MsoNormal">Der Wirksamkeitszeitraum beschreibt den Zeitraum von wann bis wann der Datensatz mit dem entsprechenden Gültigkeitszeitraum wirksam bzw. bekannt war. <o:p></o:p></div><div class="MsoNormal">Mit der Einführung der Spalten „wirkVon“ und „wirkBis“ wird ein zeitlicher Bezug hergestellt, von wann bis wann der Policenstand dem Versicherer bekannt ist/war.<o:p></o:p></div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none;"><tbody>
<tr><td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 39.75pt;" valign="top" width="53"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>Id<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.4pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>gueltigAb<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.35pt;" valign="top" width="92"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>gueltigBis<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>wirkVon<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>wirkBis<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 76.45pt;" valign="top" width="102"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>kennzeichen<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 33.35pt;" valign="top" width="44"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>vk<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.3pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>vk sb<o:p></o:p></b></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 39.75pt;" valign="top" width="53"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">4711<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.4pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">01.01.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.35pt;" valign="top" width="92"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">31.12.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>22.10.2010<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>31.12.9999<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 76.45pt;" valign="top" width="102"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">M-XY 678<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 33.35pt;" valign="top" width="44"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">0<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.3pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">null<o:p></o:p></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 39.75pt;" valign="top" width="53"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">3216<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.4pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">08.02.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.35pt;" valign="top" width="92"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">31.12.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>04.02.2011<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>31.12.9999<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 76.45pt;" valign="top" width="102"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">K-AB 320<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 33.35pt;" valign="top" width="44"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">1<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.3pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">500<o:p></o:p></div></td></tr>
</tbody></table><div class="MsoNormal"><br />
</div><div class="MsoNormal">Das Kfz M-XY 678 (id=4711) wurde am 22.10.2010 in der Abwerbephase für den Zeitraum 01.01.2011 bis zum 31.12.2011 versichert.<o:p></o:p></div><div class="MsoNormal">Für das Fahrzeug K-AB 320 (id=3216) wurde am 04.02.2011 eine neue Versicherung mit Beginn 08.02.2011 abgeschlossen.<o:p></o:p></div><div class="MsoNormal">Das Datum 31.12.9999 bedeutet fachlich „bis auf weiteres“.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><u>Änderungen<o:p></o:p></u></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Anbei die gleiche Änderung von oben:<o:p></o:p></div><div class="MsoNormal">Der Versicherungsnehmer des Kfz M-XY 678 schreibt, mit etwas Verspätung, der Versicherung am 27.02.2011 ein Fax und gibt an, dass eine Vollkasko-Deckung mit 300EUR Selbstbeteilung ab dem 19.02.2011 in dem Vertrag mit aufgenommen werden soll. <o:p></o:p></div><div class="MsoNormal"><br />
</div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none;"><tbody>
<tr><td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 39.75pt;" valign="top" width="53"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>Id<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.4pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>gueltigAb<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.35pt;" valign="top" width="92"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>gueltigBis<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>wirkVon<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>wirkBis<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 76.45pt;" valign="top" width="102"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>kennzeichen<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 33.35pt;" valign="top" width="44"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>vk<o:p></o:p></b></div></td><td style="border-left: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.3pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>vk sb<o:p></o:p></b></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 39.75pt;" valign="top" width="53"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">4711<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.4pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">01.01.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.35pt;" valign="top" width="92"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>19.02.2011<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">22.10.2010<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>27.02.2011<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 76.45pt;" valign="top" width="102"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">M-XY 678<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 33.35pt;" valign="top" width="44"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">0<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.3pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">null<o:p></o:p></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 39.75pt;" valign="top" width="53"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">4711<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.4pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>19.02.2011<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.35pt;" valign="top" width="92"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">31.12.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>27.02.2011<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">31.12.9999<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 76.45pt;" valign="top" width="102"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">M-XY 678<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 33.35pt;" valign="top" width="44"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>1<o:p></o:p></b></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.3pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><b>300<o:p></o:p></b></div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 39.75pt;" valign="top" width="53"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">3216<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.4pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">08.02.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 69.35pt;" valign="top" width="92"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">31.12.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">04.02.2011<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 67.9pt;" valign="top" width="91"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">31.12.9999<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 76.45pt;" valign="top" width="102"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">K-AB 320<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 33.35pt;" valign="top" width="44"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">1<o:p></o:p></div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; width: 40.3pt;" valign="top" width="54"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">500<o:p></o:p></div></td></tr>
</tbody></table><div class="MsoNormal"><br />
</div><div class="MsoNormal">Mit den Daten <span style="font-family: 'Courier New'; font-size: 9pt; line-height: 115%;">wirkVon</span><span style="font-size: 9pt; line-height: 115%;"> </span>und <span style="font-family: 'Courier New'; font-size: 9pt; line-height: 115%;">wirkBis</span><span style="font-size: 9pt; line-height: 115%;"> </span>ist es nun möglich festzugstellen, welcher Stand dem Versicherer wann bekannt war.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><u>Deckungsprüfung<o:p></o:p></u></div><div class="MsoNormal">Wenn der Versicherungsnehmer für sein Kfz (id=4711; M-XY 678) nun einen Vollkasko-Schaden zum 22.02.2011 meldet, kann die Schadenabteilung die Deckung wieder mit folgenden Select prüfen:<o:p></o:p></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt; line-height: 115%;">SELECT * FROM kfz_police <br />
WHERE id=4711 <br />
AND ‚<b>22.02.2011</b>‘ BETWEEN <b>gueltigAb</b> AND <b>gueltigBis</b><o:p></o:p></span></div><div class="MsoNormal">Als Ergebnis bekommt man den ersten Datensatz, der eine Vollkasko Deckung enthält. Der Schaden des Versicherten ist auf den ersten Blick gedeckt.<o:p></o:p></div><div class="MsoNormal">Mit folgenden Select kann nun auch geprüft werden ob eventuell ein Versicherungsbetrug versucht wurde:<o:p></o:p></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt; line-height: 115%;">SELECT * FROM kfz_police <br />
WHERE id=4711 <br />
AND ‚<b>22.02.2011</b>‘ BETWEEN <b>wirkAb</b> AND <b>wirkBis</b><o:p></o:p></span></div><div class="MsoNormal">Dieser Select liefert zeigt, dass zum Schadentermin dem Versicherer noch kein Vollkasko Deckung bekannt war.<o:p></o:p></div><div class="MsoNormal">Jetzt sollte die Schadenabteilung noch mal genauer recherchieren. <o:p></o:p></div><b><br />
Ausblick:<o:p></o:p></b><br />
<div class="MsoNormal">Dieser Artikel hat nun im Kleinen gezeigt, wie eine Historienführung funktioniert.<o:p></o:p></div><div class="MsoNormal">Folgende Sachverhalte sollten im Rahmen der Einführung eines Historienkonzeptes auch immer noch beachtet werden:<o:p></o:p></div><div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span>Objekt-Beziehungen: 1:1 und 1:n Tabellen, mit Datum versehen.<o:p></o:p></div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span>Große Vertragskonstrukte: Rahmenvertrag, Einzelverträge<o:p></o:p></div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span>Flottenkonzepte: Rahmenvertrag, Objektklassen, Einzelverträge<o:p></o:p></div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span>Korrekturen von Vertragsständen zum gleichen GülitigAb Datum.<o:p></o:p></div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span>Wie wird mit Uhrzeiten umgegangen (24:00Uhr oder 0:00 Uhr) <o:p></o:p></div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span>Bearbeitung von rückwirkenden Änderungen<o:p></o:p></div><div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span>…<o:p></o:p></div><b><br />
Fazit:<o:p></o:p></b><br />
<div class="MsoNormal">Viele Versicherungssysteme arbeiten mit einer Historisierung, die an einer Uni-Temporale-Historisierung angelehnt ist. Die Wirksamkeitskomponente wird dann oft versucht über die Bearbeitungsdokumentation (BDok) abzudecken. Spätestens im Schaden bzw. Leistungsfall ist dann oft eine automatisierte Prüfung nicht mehr so einfach möglich.<o:p></o:p></div><div class="MsoNormal">Eine Bi-Temporale Historisierung ist im Versicherungsumfeld immer zu empfehlen!<o:p></o:p></div><div class="MsoNormal"><br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-62584866336794597442010-11-19T11:31:00.000+01:002010-11-19T11:31:25.668+01:00devoxx 2010<div class="WordSection1"><div class="MsoNormal"><b>Devoxx 2010<o:p></o:p></b></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Ich hab mit meinen Kollegen Jürgen (Twitter: @JuergenReichert) die Devoxx 2010 in Antwerpen besucht.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><a href="http://www.devoxx.com/"><span style="color: windowtext; text-decoration: none;">http://www.devoxx.com</span></a><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Allgemeines: Coole Veranstaltung: sehr gut organisiert; überall superschnelles WLAN; Catering hat gepasst<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Im folgenden die von mir besuchten Sessions mit einem kurzen Kommentar von mir:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>Montag 15. November 2010<o:p></o:p></b></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>Seam 3: State oft the Union </b>(By Dan Allen and Peter Muir)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: Seam is a powerful open source development platform for building rich Internet applications in Java EE, now rebuilt on JSR-299: Contexts and Dependency Injection for Java EE. JSR-299 is an elegant set of new services that include dependency injection, contextual lifecycle management, configuration, interceptors and event notification. While these services are familiar, the innovative use of meta-annotations is uniquely expressive and typesafe, and a significant step forward from Seam 2. The implementation of this new programming model is provided by Weld. Seam extends the CDI programming model by providing portable enhancements, extensions and integrations that tie technologies such as Java Persistence 2 (JPA), Enterprise JavaBeans (EJB 3.1), JavaServer Faces 2 (JSF), Business Process Management (BPM), business rules (Drools), reporting (PDF and Excel), security and e-mail templates into a unified full-stack solution, supported by sophisticated tooling.<o:p></o:p></span></div><div style="margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; mso-margin-top-alt: 12.0pt;"><span style="color: #a6a6a6; font-family: Calibri, sans-serif; font-size: 10pt;">In this session, Pete Muir and Dan Allen, two of the lead Seam developers, detail the state of the union for Seam 3. We'll cover how it's being reachitected on JSR-299, cover its new modularized and autonomous infrastructure and provide an overview of features, both migrated and new. This talk has a nice blend of theory and application. Audience members will take away from this talk and understanding of CDI and Seam 3 and knowledge to get their hands dirty and started developing with this platform.<o:p></o:p></span></div><div style="margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; mso-margin-top-alt: 12.0pt;"><span style="font-family: Calibri, sans-serif; font-size: 11pt;">mr678: Sehr cooler Vortrag. Mich hätte an einigen Stellen noch interessiert wie sich JEE6 von Seam3 abgrenzt. Dies ging (verständlicherweise) nicht immer richtig aus dem Vortrag der JBoss Jungs hervor.<o:p></o:p></span></div><div style="margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; mso-margin-top-alt: 12.0pt;"><span style="font-family: Calibri, sans-serif; font-size: 11pt;">Joe Baxtter hat Seam Forge vorgestellt – Livedemo hat allerdings auch nicht ganz geklappt ;-)<o:p></o:p></span></div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/The+latest+innovations+of+the+Adobe+Flash+Platform+for+Java+developers" title="The latest innovations of the Adobe Flash Platform for Java developers"><span style="color: windowtext; text-decoration: none;">The latest innovations of the Adobe Flash Platform for Java developers</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Michael+Chaize" title="Michael Chaize"><span style="color: windowtext; text-decoration: none;">Michael Chaize</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: </span><span style="color: #a6a6a6; font-size: 10pt;">During this session, we’ll discover the new Flex 4 framework associated with Flash Builder 4 (Eclipse plug-in to develop Flex apps) and how your rich front-end can exchange objects with your JAVA server. If you wish to develop Desktop applications, then you’ll be interested by the new features of the Adobe AIR 2 runtime. We’ll see how to run offline applications, invoke a Java native process on the client side, play with your webcam or your microphone... on Windows, MAC and Linux. The last part of this session will cover Mobile and Tablet applications. Thanks to the future releases of the Flash platform, JAVA developers can rapidly develop applications for Android (and soon Blackberries, WebOS and iOS), leveraging specific mobile APIs such as multitouch, the accelerometer, access to the camera or the microphone, etc... These three hours will give you a 360 panorama of the Adobe RIA technologies.<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">mr678: Coole Präsentation. Wie bekommt man die Sachen auf dem iPhone usw. zu laufen. Präsentationstechnisch 1A<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>DI 16. November 2010<o:p></o:p></b></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/Java+EE+6+Tutorial.+Reloaded%21" title="Java EE 6 Tutorial. Reloaded!"><span style="color: windowtext; text-decoration: none;">Java EE 6 Tutorial. Reloaded!</span></a></b> (by <a href="http://www.devoxx.com/display/Devoxx2K10/Antonio+Goncalves" title="Antonio Goncalves"><span style="color: windowtext; text-decoration: none;">Antonio Goncalves</span></a> and <a href="http://www.devoxx.com/display/Devoxx2K10/Alexis+Moussine-Pouchkine" title="Alexis Moussine-Pouchkine"><span style="color: windowtext; text-decoration: none;">Alexis Moussine-Pouchkine</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: Last year, Antonio & Alexis presented Java EE 6 in a room full of admirers of this new specification (Java EE 6 was out after Devoxx, mid-december 2009). This time Antonio and Alexis are back with more advanced features on Java EE 6 which is even more powerful than they initially thought! JPA 2.0 entities, EJB 3.1 EJBs, Servlet 3.0, Bean Validation, JAX-RS, @Inject and CDI... will have no more secret for you.<o:p></o:p></span></div><div class="MsoNormal">Mr678: Sehr coole Präsentation – cooler Überblick, a bissle JEE5 vorausgesetzt<o:p></o:p></div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/JBoss+Tools%2C+the+Deployment+Ninja%21" title="JBoss Tools, the Deployment Ninja!"><span style="color: windowtext; text-decoration: none;">JBoss Tools, the Deployment Ninja!</span></a> </b> (by <a href="http://www.devoxx.com/display/Devoxx2K10/JBoss+Tools%2C+the+Deployment+Ninja%21" title="JBoss Tools, the Deployment Ninja!"><span style="color: windowtext; text-decoration: none;">Max Andersen</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: Come and see how you can use the JBoss Tools Eclipse plugin to deploy fast and efficient to any Application Server (not just JBoss), local, remote and even into The Cloud. Also see how JBoss Tools can be used to either take full usage of Eclipse WTP for deployment or if you prefer plain old Java Project's still allows you to do incremental (aka. Freaking Fast) deployment for easy testing of both local and remote applications.<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Mr678: Ziemlich kurz… Bsp wie man mit JBoss Tools exploded deployed…. naja<o:p></o:p></div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/What%27s+new+in+Hibernate++a+JPA+2+perspective" title="What's new in Hibernate a JPA 2 perspective"><span style="color: windowtext; text-decoration: none;">What's new in Hibernate: a JPA 2 perspective</span></a> (</b>by <a href="http://www.devoxx.com/display/Devoxx2K10/Emmanuel+Bernard" title="Emmanuel Bernard"><span style="color: windowtext; text-decoration: none;">Emmanuel Bernard</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: If you want to know what new feature of Hibernate you are missing, come and join us.<br />
</span><span style="color: #a6a6a6; font-size: 10pt;">Java </span><span style="color: #a6a6a6; font-size: 10pt;">Persistence</span><span style="color: #a6a6a6; font-size: 10pt;"> 2 is closing the gap and standardizes even more persistence related features.<br />
What does this mean in the context of the Hibernate project? Generally speaking, what's new in Hibernate?<o:p></o:p></span></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">In this session, we will check out the new features of Hibernate and in particular the one coming from Java Persistence 2. They will be explored in live coding sessions.<o:p></o:p></span></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">We will explore:<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l3 level1 lfo2; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">the new type-safe Criteria API as well as its close brother the new Hibernate Static metamodel generator<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l3 level1 lfo2; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">the new locking options and their consequences for your applications<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l3 level1 lfo2; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Infinispan's new second level cache<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l3 level1 lfo2; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">fetch profiles<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l3 level1 lfo2; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">the new partial generators<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l3 level1 lfo2; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">and many more things<o:p></o:p></span></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">We will also walk through what's beyond Hibernate Core: Hibernate has slowly grown from the ORM to a set of domain model centric tools like validation, full-text search and so on:<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l4 level1 lfo4; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Hibernate Validator and the Bean Validation specification<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l4 level1 lfo4; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Hibernate Envers and temporal data support<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l4 level1 lfo4; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Hibernate Search and full-text search for Hibernate applications.<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l4 level1 lfo4; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">General knowledge of Hibernate or ORM (Object Relational Mapping) is preferred<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Mr678: Überblick über JPA 2 Features und die komplette Hibernate Produktpalette<o:p></o:p></div><div class="MsoNormal">Bin um 15:00Uhr gegangen – die Arbeit hat gerufen…<o:p></o:p></div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/Java+EE+6++Tooling+Status++what+am+I+missing" title="Java EE 6 Tooling Status what am I missing"><span style="color: windowtext; text-decoration: none;">Java EE 6: Tooling Status: what am I missing?</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Ludovic+Champenois" title="Ludovic Champenois"><span style="color: windowtext; text-decoration: none;">Ludovic Champenois</span></a>)<b><o:p></o:p></b></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: If you are a Java EE 6 user, your choices for Tooling have never been better. Maybe you have been using a specific tool forever (NetBeans, Eclipse, IntelliJ), and do not have the time of the energy to learn a new one? Join this talk to see the latest developments in the following IDEs around Java EE 6:<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l6 level1 lfo6; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">NetBeans and its advanced Java EE 6 GlassFish integration<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l6 level1 lfo6; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Eclipse and the Oracle OEPE pack with GlassFish integration, as well as the latest features in the Eclipse December 2010 release (with hopefully more Java EE6 features)<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l6 level1 lfo6; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Intellij and its EE 6 support.<o:p></o:p></span></div><div class="MsoNormal" style="margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; mso-margin-top-alt: 12.0pt;"><span style="color: #a6a6a6; font-size: 10pt;">The talk will use live demos of the 3 IDEs, presenting advanced features for the EE 6 developer:<br />
JPA2, JSF 2, CDI, JAX-RS, Bean Validation, Servlet 3.0, Maven support, and end to end advanced wizards.<o:p></o:p></span></div><div class="MsoNormal">Mr678: Vergleich der IDE netbeans, eclipse, IntelliJ<o:p></o:p></div><div class="MsoNormal">Winner netbeans – war aber auch ein Oracle/sun Mann…<o:p></o:p></div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/Excel+on+the+JVM++Generating+Fast+Code+from+Spreadsheet+Models" title="Excel on the JVM Generating Fast Code from Spreadsheet Models"><span style="color: windowtext; text-decoration: none;">Excel on the JVM: Generating Fast Code from Spreadsheet Models</span></a> </b> (by <a href="http://www.devoxx.com/display/Devoxx2K10/Peter+Arrenbrecht" title="Peter Arrenbrecht"><span style="color: windowtext; text-decoration: none;">Peter Arrenbrecht</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: Make your application compile spreadsheets directly to parametrized, high-performance Java classes for use in your business logic using the Abacus Formula Compiler (<a href="http://formulacompiler.org/"><span style="color: #a6a6a6; text-decoration: none;">http://formulacompiler.org/</span></a>, available under GPL or commercially).<o:p></o:p></span></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Why? In many business applications, the calculation of certain key values varies from user to user, and over time. Examples of such values are: prices and shipping rates in order-entry applications, asset valuations in portfolio management solutions, or insurance premiums in sales force applications.<o:p></o:p></span></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Business analysts, or the users themselves, know best how such key values are calculated and they know - and love - tools like Microsoft Excel or OpenOffice Calc. So let them use these familiar tools to define and update the calculations instead of adding endless and, for many users, incomprehensible configuration options to your code.<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">For you, no more hand-coding of changing calculation models. And, since changes in spreadsheets can be incorporated at run-time, no more waiting for the next code release for your users!<o:p></o:p></span></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">I will show this in action with examples from the Abacus Financial Applications suite (<a href="http://abacus.ch/"><span style="color: #a6a6a6; text-decoration: none;">http://abacus.ch/</span></a>).<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Mr678: Ähnlich wie p7030 – Allerdings werden alle Formeln neu berechnet.<o:p></o:p></div><div class="MsoNormal">jExcel (in Zukunft POI) wird benutzt um Excel/OpenOffice auszulesen. Aus Excel werden Java Klassen generiert inkl. der Formeln (Performance technisch recht cool)<o:p></o:p></div><div class="MsoNormal">Im Gespräch im Anschluss habe ich Hr. Arrenbrecht nach den Kosten gefragt: 10.000EUR Commercal Lizence.<o:p></o:p></div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>MI 17. November<o:p></o:p></b></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>KeyNote: <a href="http://www.devoxx.com/display/Devoxx2K10/Welcome+and+Intro" title="Welcome and Intro"><span style="color: windowtext; text-decoration: none;">Welcome and Intro</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Stephan+Janssen" title="Stephan Janssen"><span style="color: windowtext; text-decoration: none;">Stephan Janssen</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: Welcome and Intro to the devoxx 2010 conference.<o:p></o:p></span></div><div class="MsoNormal">Mr678: Vorstellung von parleys.com und devoxx-ausenrum…<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>KeyNote: <a href="http://www.devoxx.com/display/Devoxx2K10/Java+SE++The+Road+Ahead" title="Java SE The Road Ahead"><span style="color: windowtext; text-decoration: none;">Java SE: The Road Ahead</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Mark+Reinhold" title="Mark Reinhold"><span style="color: windowtext; text-decoration: none;">Mark Reinhold</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: During this keynote you'll get an overview of the state of Java SE 7 and beyond.<o:p></o:p></span></div><div class="MsoNormal">Mr678: Java Chief Architect von Oracle<o:p></o:p></div><div class="MsoNormal">RoadMap vorgestellt – Interessantes zu Java 7 / 8<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>KeyNote: <a href="http://www.devoxx.com/display/Devoxx2K10/The+State+of+the+Web" title="The State of the Web"><span style="color: windowtext; text-decoration: none;">The State of the Web</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Dion+Almaer" title="Dion Almaer"><span style="color: windowtext; text-decoration: none;">Dion Almaer</span></a> and <a href="http://www.devoxx.com/display/Devoxx2K10/Ben+Galbraith" title="Ben Galbraith"><span style="color: windowtext; text-decoration: none;">Ben Galbraith</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: The State oft the Web keynote.<o:p></o:p></span></div><div class="MsoNormal">Mr678: Sehr coole Präsentation. Wo kommt das Web her und wo geht’s hin…<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/Enterprise+IT+vs.+WWW" title="Enterprise IT vs. WWW"><span style="color: windowtext; text-decoration: none;">Enterprise IT vs. WWW</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Stefan+Tilkov" title="Stefan Tilkov"><span style="color: windowtext; text-decoration: none;">Stefan Tilkov</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: For years, the enterprise IT community used to believe they were the big guys, and those Web folks were just script kiddies building toy apps with PHP. But by now, the really interesting systems are those built on the Web, with non-functional requirements that make even the biggest banking or insurance app pale in comparison. Integration, as practiced on the Web, is also widely different from the typical enterprise IT approach - yet it seems to yield results that outshine years of effort in most large companies.<o:p></o:p></span></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">In this session, we'll take a look at how the typical enterprise IT landscape can benefit from the Web's architecture, what Java developers need to learn to be part of this, and why the whole idea of "applications" is going to disappear.<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Mr678: PHP/Ruby Entwickler vs. Java Enterprise<o:p></o:p></div><div class="MsoNormal">REST ist hipp (amazon, twitter, …) und die Erfindung von PHP/Ruby – Enterprise kann a bissle was lernen…<o:p></o:p></div><div class="MsoNormal">Viel von dem Enterprise Zeug wird auch nicht benötigt. „Der User sind nicht wir“.<o:p></o:p></div><div class="MsoNormal">Sich auf das eigentliche Konzentrieren, am Ende kommt oft nur HTML raus….<o:p></o:p></div><div class="MsoNormal">FatClient will kein User…<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/Using+Git+to+just+replace+SVN+is+like+using+a+Ferrari+to+haul+dirt" title="Using Git to just replace SVN is like using a Ferrari to haul dirt"><span style="color: windowtext; text-decoration: none;">Using Git to just replace SVN is like using a Ferrari to haul dirt</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Using+Git+to+just+replace+SVN+is+like+using+a+Ferrari+to+haul+dirt" title="Using Git to just replace SVN is like using a Ferrari to haul dirt"><span style="color: windowtext; text-decoration: none;">Matthew McCullough</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: </span><span style="color: #a6a6a6; font-size: 10pt;">Git is an exciting new DVCS that is gaining traction in the development world. But if you are merely using it as SVN++, then you are missing out on 75% of what it has to offer. In a quick 15 minutes, I'll open eyes to the team-behavior improvements, bug finding, and performance that only Git offers today.<o:p></o:p></span></div><div class="MsoNormal">Mr678: Vorteile von GIT gegenüber SVN wurden vorgestelt<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="MsoHyperlink"><b><span style="color: windowtext; text-decoration: none;"><a href="http://www.devoxx.com/display/Devoxx2K10/Vaadin+-+Rich+Web+Applications+in+Java+without+Plug-ins+or+JavaScript" title="Vaadin - Rich Web Applications in Java without Plug-ins or JavaScript"><span style="color: windowtext; text-decoration: none;">Vaadin - Rich Web Applications in Java without Plug-ins or JavaScript</span></a> </span></b></span><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">(by <a href="http://www.devoxx.com/display/Devoxx2K10/Joonas+Lehtinen" title="Joonas Lehtinen"><span style="color: windowtext; text-decoration: none;">Joonas Lehtinen</span></a>)<o:p></o:p></span></span></div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: #a6a6a6; font-size: 10pt; text-decoration: none;">Abstract: </span></span><span style="color: #a6a6a6; font-size: 10pt;">Get introduced to Vaadin open source web framework by its founder. The framework provides a desktop-like user experience on the web without writing any HTML, XML or JavaScript. The user interface is written completely in Java and run at the server-side. Applications are deployed as Servlets, Portlets or to Google App Engine and run in any modern web browser without plug-ins or applets.<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l5 level1 lfo8; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Java-developers interested in writing rich desktop-like user interfaces for web should attend - no experience of web technologies is needed.<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l5 level1 lfo8; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Get introduced to server-side RIA frameworks<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l5 level1 lfo8; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Learn pros and cons compared to client-side RIA and Google Web Toolkit<o:p></o:p></span></div><div class="MsoNormal" style="margin-left: 0cm; mso-list: l0 level1 lfo10; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Start writing beautiful web applications with Vaadin<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">Mr678: Ähnlich GWT und Wicket… nur cooler!<o:p></o:p></span></span></div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">Gleich mal ausprobiert – rockt!!!<o:p></o:p></span></span></div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">BeanValidation geht out-the-box nicht, aber scheinbar mit einem Zusatzplugin<o:p></o:p></span></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">--<o:p></o:p></span></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="MsoHyperlink"><b><span style="color: windowtext; text-decoration: none;"><a href="http://www.devoxx.com/display/Devoxx2K10/HTML5+Websockets++A+New+World+of+Limitless%2C+Live%2C+and+Wickedly+Cool+Web+Applications" title="HTML5 Websockets A New World of Limitless, Live, and Wickedly Cool Web Applications"><span style="color: windowtext; text-decoration: none;">HTML5 Websockets: A New World of Limitless, Live, and Wickedly Cool Web Applications</span></a> </span></b></span><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">(by <a href="http://www.devoxx.com/display/Devoxx2K10/Jonas+Jacobi" title="Jonas Jacobi"><span style="color: windowtext; text-decoration: none;">Jonas Jacobi</span></a>)<o:p></o:p></span></span></div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: #a6a6a6; font-size: 10pt; text-decoration: none;">Abstract: </span></span><span style="color: #a6a6a6; font-size: 10pt;">W3C’s HTML5 standard has rapidly gained momentum as 2010’s hottest technology with help from companies, such as Google, Apple, and Microsoft. Developers and businesses alike are all trying to catch and align themselves with this new standard. Out of all the ideas and features in this new set of specifications, the most intriguing, exciting, and controversial section is HTML5 WebSocket. At first glance, some misinterpret WebSocket as merely a better transport protocol and replacement of HTTP or XHR. However, upon additional understanding, one quickly learns WebSocket is NOT a replacement or improved version of HTTP or XHR, nor do we want it to be!<o:p></o:p></span></div><div style="margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; mso-margin-top-alt: 12.0pt;"><span style="color: #a6a6a6; font-family: Calibri, sans-serif; font-size: 10pt;">If we look at the current hype around PaaS, Cloud, pre-built business widgets and applications, virtualization, payments etc… they have all forgotten to look at the road. The actual tarmac that makes all of this communicate. We all assumed the Web was just there, and that HTTP provided everything we needed for Web communication. HTML5 WebSocket is the evolution of the communication fabric TO, ACROSS and WITHIN the Web/Cloud, and now we need to open our minds and start looking at the possibilities of this new way to communicate over the Web! Think BIG, really BIG!<o:p></o:p></span></div><div style="margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; mso-margin-top-alt: 12.0pt;"><span style="color: #a6a6a6; font-family: Calibri, sans-serif; font-size: 10pt;">This session is targeted developers and architects that are looking for better ways of increasing user experience and communication over the Web to create, improve, or replace existing Web applications. The session is also targeted developers and architects that just want to stretch their minds and receive the necessary information on making an educated assessment of the business and technical opportunities, and challenges, made possible by this new HTML5 standard. Wickedly cool demos, code examples, and comparisons with existing technologies and architectures will be used to illustrate these possibilities and their use cases.</span><span style="font-family: Calibri, sans-serif; font-size: 11pt;"><o:p></o:p></span></div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">Mr678: Aus meiner Sicht waren hier die Marketingfuzzies am Werk – ersten 20 Minuten technisch super langweilig. Danach wurden allgemein die Vorzüge und Möglichkeiten von WebSockets besprochen.<o:p></o:p></span></span></div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">Den Mehrwert das das umworbene Projekt hat war mir leider nicht ganz klar.<o:p></o:p></span></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">--<o:p></o:p></span></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="MsoHyperlink"><b><span style="color: windowtext; text-decoration: none;">BOF : <a href="http://www.devoxx.com/display/Devoxx2K10/The+state+of+Java+SE+7" title="The state of Java SE 7"><span style="color: windowtext; text-decoration: none;">The state of Java SE 7</span></a> </span></b></span><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">(by <a href="http://www.devoxx.com/display/Devoxx2K10/Mark+Reinhold" title="Mark Reinhold"><span style="color: windowtext; text-decoration: none;">Mark Reinhold</span></a> and <a href="http://www.devoxx.com/display/Devoxx2K10/Joe+Darcy" title="Joe Darcy"><span style="color: windowtext; text-decoration: none;">Joe Darcy</span></a> and <a href="http://www.devoxx.com/display/Devoxx2K10/Brian+Goetz" title="Brian Goetz"><span style="color: windowtext; text-decoration: none;">Brian Goetz</span></a>)<o:p></o:p></span></span></div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: #a6a6a6; font-size: 10pt; text-decoration: none;">Abstract: </span></span><span class="apple-style-span"><span style="color: #a6a6a6; font-size: 10pt;">Informal gathering with several JavaSE committers.</span></span><span class="MsoHyperlink"><span style="color: #a6a6a6; font-size: 10pt; text-decoration: none;"><o:p></o:p></span></span></div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none;">Mr678: interssante Diskussion rund um die Entwicklung von Java und welche Features aus Sicht der Diskussionsgruppe sinnvoll wären<o:p></o:p></span></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="MsoHyperlink"><b><span style="color: windowtext; text-decoration: none;">DO 18. November 2010-11-18<o:p></o:p></span></b></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>KeyNote: <a href="http://www.devoxx.com/display/Devoxx2K10/The+Future+Roadmap+of+Java+EE" title="The Future Roadmap of Java EE"><span style="color: windowtext; text-decoration: none;">The Future Roadmap of Java EE</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Jerome+Dochez" title="Jerome Dochez"><span style="color: windowtext; text-decoration: none;">Jerome Dochez</span></a>, <a href="http://www.devoxx.com/display/Devoxx2K10/Paul+Sandoz" title="Paul Sandoz"><span style="color: windowtext; text-decoration: none;">Paul Sandoz</span></a> and <a href="http://www.devoxx.com/display/Devoxx2K10/Linda+DeMichiel" title="Linda DeMichiel"><span style="color: windowtext; text-decoration: none;">Linda DeMichiel</span></a>)<o:p></o:p></div><div class="MsoNormal"><span class="MsoHyperlink"><span style="color: #a6a6a6; font-size: 10pt; text-decoration: none;">Abstract: The Future Roadmap of Java EE<o:p></o:p></span></span></div><div class="MsoNormal">Mr678: war nur zur Hälfte Anwesend (Der Kunde ist dazwischen gekommen ;-) )<o:p></o:p></div><div class="MsoNormal">Es wurden die Features der nächsten Java EE Versionen von den entsprechenden Key Playern vorgestellt.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/Project+Coin++Small+Language+Changes+in+JDK+7" title="Project Coin Small Language Changes in JDK 7"><span style="color: windowtext; text-decoration: none;">Project Coin: Small Language Changes in JDK 7</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Joe+Darcy" title="Joe Darcy"><span style="color: windowtext; text-decoration: none;">Joe Darcy</span></a> and <a href="http://www.devoxx.com/display/Devoxx2K10/Maurizio+Cimadamore" title="Maurizio Cimadamore"><span style="color: windowtext; text-decoration: none;">Maurizio Cimadamore</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: Project Coin is an ongoing effort to select and implement a set of small language enhancements for JDK 7. The language changes for JDK 7 include:<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l7 level1 lfo12; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">strings in switch<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l7 level1 lfo12; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">automatic resource management<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l7 level1 lfo12; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">diamond operator<o:p></o:p></span></div><div class="MsoListParagraph" style="mso-list: l7 level1 lfo12; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">multi-catch with final rethrow<o:p></o:p></span></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">This talk will discuss recommend uses of the new features and demonstrate IDE support. Additionally, selection considerations, implementation concerns, testing methodologies, and language feature interactions will also be discussed.<o:p></o:p></span></div><div class="MsoNormal">Mr678: Interessant, die Features im Detail und was eigentlich getan werden muss um sowas überhaupt in der JVM zu interieren.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/Extend+your+horizon+as+business+developer++work+smarter+with+WebSphere+Lombardi+Edition" title="Extend your horizon as business developer work smarter with WebSphere Lombardi Edition"><span style="color: windowtext; text-decoration: none;">Extend your horizon as business developer: work smarter with WebSphere Lombardi Edition</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Jan+Van+der+Sypt" title="Jan Van der Sypt"><span style="color: windowtext; text-decoration: none;">Jan Van der Sypt</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: A business developer can play an important role in the success of BPM projects. Despite the proclaimed value, BPM projects tend to be very costly and take too long. As a business developer you have the very important task to guide the business people in the process of transposing business requirements to a technology implementation. What actually is needed is a platform that will simplify the collaboration between business and IT people. This is what WebSphere Lombardi edition has to offer: a complete BPM solution that is covering the whole lifecycle, from modelling to implementation and monitoring, with one single product. All the different roles inside an organization will find a way to make their work smarter using this platform.<o:p></o:p></span></div><div class="MsoNormal">Mr678: Wenn IBM so den Vertrieb macht wundert es mich nicht das da so richtig keiner Lust drauf hat… Ansonsten schaut das Ganz aber recht cool aus. BPM Modell können realtime simuliert werden.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/loadUI+++A+uniquely+cool+approach+to+Interactive+Distributed+Load+Testing" title="loadUI A uniquely cool approach to Interactive Distributed Load Testing"><span style="color: windowtext; text-decoration: none;">loadUI : A uniquely cool approach to Interactive Distributed Load Testing</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/loadUI+++A+uniquely+cool+approach+to+Interactive+Distributed+Load+Testing" title="loadUI A uniquely cool approach to Interactive Distributed Load Testing"><span style="color: windowtext; text-decoration: none;">Ole Lensmar</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: <span class="apple-style-span">This Quickie will be a hands-on demo of loadUI, a novel and free Open Source Load Testing tool that supports distributed load testing via an innovative JavaFX-based user interface. With loadUI you create, configure and redistribute your load tests in real time (while your tests are actually running!), giving you the unique possibility to understand how your services behave under load and when load changes. loadUI supports testing of SOAP, REST, Web, AMF, JDBC and JMS interfaces and thanks to its OSGi and Groovy based infrastructure it can easily be expanded to accommodate for any other protocol or testing requirements you might have.</span><o:p></o:p></span></div><div class="MsoNormal">Mr678: coole GUI, ansonsten wirkt das ganze recht „verspielt“. <o:p></o:p></div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/Hadoop+and+NoSQL+at+Twitter" title="Hadoop and NoSQL at Twitter"><span style="color: windowtext; text-decoration: none;">Hadoop and NoSQL at Twitter</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Dmitriy+Ryaboy" title="Dmitriy Ryaboy"><span style="color: windowtext; text-decoration: none;">Dmitriy Ryaboy</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: <span class="apple-style-span">I will discuss our experiences using Hadoop, HBase, Cassandra, and Pig to scale Twitter's analytics platform. This talk will focus on the practical aspects of working at scale – the architecture, what works, what doesn't, and the software we've open-sourced to make things easier for others.</span><o:p></o:p></span></div><div class="MsoNormal">Mr678: Was muss twitter tun um den Traffic zu schaffen und ihre Daten auch noch auszuwerten. Superinteressant; abgefahrener shit; haben wir direkt eigentlich aber nichts zu tun…<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b><a href="http://www.devoxx.com/display/Devoxx2K10/JavaPosse+Live" title="JavaPosse Live"><span style="color: windowtext; text-decoration: none;">JavaPosse Live</span></a> </b>(by <a href="http://www.devoxx.com/display/Devoxx2K10/Dick+Wall" title="Dick Wall"><span style="color: windowtext; text-decoration: none;">Dick Wall</span></a> and <a href="http://www.devoxx.com/display/Devoxx2K10/Carl+Quinn" title="Carl Quinn"><span style="color: windowtext; text-decoration: none;">Carl Quinn</span></a> and <a href="http://www.devoxx.com/display/Devoxx2K10/Joe+Nuxoll" title="Joe Nuxoll"><span style="color: windowtext; text-decoration: none;">Joe Nuxoll</span></a>)<o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: Java Posse Live<o:p></o:p></span></div><div class="MsoNormal">Mr678: Unterhaltsames Frage und Antwortspiel…<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="apple-style-span"><b><a href="http://www.devoxx.com/display/Devoxx2K10/Activiti+in+Action" title="Activiti in Action"><span style="color: windowtext; text-decoration: none;">Activiti in Action</span></a></b></span><span class="apple-converted-space"><b> </b></span><span class="apple-style-span">(by</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Tom+Baeyens" title="Tom Baeyens"><span style="color: windowtext; text-decoration: none;">Tom Baeyens</span></a> and</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Joram+Barrez" title="Joram Barrez"><span style="color: windowtext; text-decoration: none;">Joram Barrez</span></a>)<o:p></o:p></span></div><div class="MsoNormal"><span class="apple-style-span"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: </span></span><span style="color: #a6a6a6; font-size: 10pt;">Learn about Activiti and how you can benefit from the BPM and workflow features in your next Java project.<br />
One aspect of Business Process Management (BPM) is to facilitate the collaboration between business people and developers.<br />
But also developers find it often just the simplest way to implement their requirements. When dealing with task lists, timers and asynchronous messages, it can be a challenge to bind all the hooks and eyes together. In these asynchronous architectures, Activiti is at its best.<br />
With Activiti, developers can create an overview diagram that represents the overall transactional control flow. We'll show how easy it is to link this process to your Java domain logic classes.<br />
Another interesting aspect of using Activiti is that you get the valuable history analysis reports and audit logs for free. For example, how many successful deals did we have for each region in less then 20 days. Or who gave permission for this purchase and what was the motivation. By default, the Activiti engine collects information for each process execution.<br />
In this session we'll demonstrate these features as well as the different components of the Activiti project.<span class="apple-style-span"><o:p></o:p></span></span></div><div class="MsoNormal"><span class="apple-style-span">Mr678: sehr interessant, danach gleich mal ausprobiert und eingelesen…</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>Freitag 19.11.2010<o:p></o:p></b></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="apple-style-span"><b>Keynote: <a href="http://www.devoxx.com/display/Devoxx2K10/The+Future+of+Java+Discussion+Panel" title="The Future of Java Discussion Panel"><span style="color: windowtext; text-decoration: none;">The Future of Java Discussion Panel</span></a></b></span><span class="apple-converted-space"> (</span><span class="apple-style-span">by</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Joshua+Bloch" title="Joshua Bloch"><span style="color: windowtext; text-decoration: none;">Joshua Bloch</span></a>,</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Mark+Reinhold" title="Mark Reinhold"><span style="color: windowtext; text-decoration: none;">Mark Reinhold</span></a>,</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Stephen+Colebourne" title="Stephen Colebourne"><span style="color: windowtext; text-decoration: none;">Stephen Colebourne</span></a>,</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Antonio+Goncalves" title="Antonio Goncalves"><span style="color: windowtext; text-decoration: none;">Antonio Goncalves</span></a>,</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Juergen+Hoeller" title="Juergen Hoeller"><span style="color: windowtext; text-decoration: none;">Juergen Hoeller</span></a></span><span class="apple-converted-space"> </span><span class="apple-style-span">and</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Bill+Venners" title="Bill Venners"><span style="color: windowtext; text-decoration: none;">Bill Venners</span></a>)</span><o:p></o:p></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: <span class="apple-style-span">Lets discuss the future of Java, the language, platform, eco-system, community with input from Oracle, Google, SpringSource, a JCP member, a JUG leader and functional language expert. The discussion panel will be moderated by our JavaPosse friends:</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Dick+Wall" title="Dick Wall"><span style="color: #a6a6a6; text-decoration: none;">Dick Wall</span></a></span><span class="apple-converted-space"> </span><span class="apple-style-span">and</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Joe+Nuxoll" title="Joe Nuxoll"><span style="color: #a6a6a6; text-decoration: none;">Joe Nuxoll</span></a>.</span><o:p></o:p></span></div><div class="MsoNormal">Mr678: kurzweilige Diskussion moderiert von den Jungs von der Java Posse<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="apple-style-span"><b><a href="http://www.devoxx.com/display/Devoxx2K10/Creating+Lightweight+Applications+With+Nothing+But+Vanilla+Java+EE+6" title="Creating Lightweight Applications With Nothing But Vanilla Java EE 6"><span style="color: windowtext; text-decoration: none;">Creating Lightweight Applications With Nothing But Vanilla Java EE 6</span></a></b></span><span class="apple-converted-space"> (</span><span class="apple-style-span">by</span><span class="apple-converted-space"> </span><span class="apple-style-span"><a href="http://www.devoxx.com/display/Devoxx2K10/Adam+Bien" title="Adam Bien"><span style="color: windowtext; text-decoration: none;">Adam Bien</span></a>)</span><span class="apple-converted-space"><o:p></o:p></span></div><div class="MsoNormal"><span style="color: #a6a6a6; font-size: 10pt;">Abstract: The combination of the Convention over Configuration and Dependency Injection principles, drastically simplifies the Java EE 6 development model. This session covers the approach for building lean, but still maintainable and scalable applications with nothing but plain Java EE 6 technologies. A (rich) JPA 2.0 domain object can be annotated with JSR-303 (Bean Validation) for validation purposes, EJB 3.1 Stateless / Stateful Session Bean provide the transactionality, remoting (JAX-RS / REST), concurrency. JSR-299 (CDI) enables the direct exposure to to the JSF 2 view and extension points, as well as aspects.<br />
The interesting point: such minimalistic architecture still remains extensible and testable.<o:p></o:p></span></div><div class="MsoNormal" style="margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; mso-margin-top-alt: 12.0pt;"><span style="color: #a6a6a6; font-size: 10pt;">The pragmatic combination of EJB 3.1, JPA 2.0, Bean Validation, Context and Dependency Injection and JAX-RS (REST) will be covered from the real world angle and is especially interesting to Java (EE) developers and architects:<o:p></o:p></span></div><div class="MsoListParagraph" style="margin-left: 18.0pt; mso-list: l2 level1 lfo14; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Pragmatic modularization and deployment of WARs / EARs<o:p></o:p></span></div><div class="MsoListParagraph" style="margin-left: 18.0pt; mso-list: l2 level1 lfo14; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Stateful vs stateless architectures<o:p></o:p></span></div><div class="MsoListParagraph" style="margin-left: 18.0pt; mso-list: l2 level1 lfo14; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Domain driven design vs. service oriented components<o:p></o:p></span></div><div class="MsoListParagraph" style="margin-left: 18.0pt; mso-list: l2 level1 lfo14; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">Component configuration with EJB 3.1, interceptors and CDI<o:p></o:p></span></div><div class="MsoListParagraph" style="margin-left: 18.0pt; mso-list: l2 level1 lfo14; text-indent: -18.0pt;"><span style="color: #a6a6a6; font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="color: #a6a6a6; font-size: 10pt;">incremental migration from J2EE<o:p></o:p></span></div><div class="MsoNormal">Mr678: coole hacking session<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Das wars. Fazit: perfekte Woche!<o:p></o:p></div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-87202194270713350162010-11-05T18:20:00.000+01:002010-11-05T18:20:42.710+01:00Apache Commons Configuration und NumberFormatException - Bug in EnvironmentConfiguration in Kombination mit CombinedConfiguration...<div class="WordSection1"><div class="MsoNormal">Beim Einsatz der Apache Commons Configuration Library bin ich über einen Fehler gestoßen beim Einsatz von <a href="http://commons.apache.org/configuration/apidocs/org/apache/commons/configuration/EnvironmentConfiguration.html">EnvironmentConfiguration </a>gepaart mit <a href="http://commons.apache.org/configuration/apidocs/org/apache/commons/configuration/CombinedConfiguration.html">CombinedConfiguration</a>.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Der Fehler tritt auf, wenn im Key eine Klammer enthalten ist.<o:p></o:p></div><div class="MsoNormal">Bei 64bit Windows7 Systemen ist dies allerdings der Normalfall mit der Environmentvariable <span style="font-family: 'Courier New'; font-size: 10pt;">ProgramFiles(x86)</span>.<span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Der Bug ist bereits gefixt, allerdings erst in der nächsten, noch nicht veröffentlichten Version 1.7, von Apache Commons Configuration.<o:p></o:p></div><div class="MsoNormal" style="text-indent: 35.4pt;"><a href="https://issues.apache.org/jira/browse/CONFIGURATION-404">https://issues.apache.org/jira/browse/CONFIGURATION-404</a><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Um nicht extra die Library patchen zu müssen habe ich folgenden kleinen Workaround hierfür gebastelt:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">private</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> AbstractConfiguration getEnvConfig() {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;">// use of EnvironmentConfiguration is not possible! (Bug in <u>apache</u> commons)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;">// see https://issues.apache.org/jira/browse/CONFIGURATION-404</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Pattern p = Pattern.<i>compile</i>(</span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"[\\(\\)]"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Map<String, String> envMap = </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">new</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> HashMap<String, String>();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">for</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> (Entry<String, String> entry : System.<i>getenv</i>().entrySet()) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String key = entry.getKey();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">if</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> (!p.matcher(key).find())</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> envMap.put(key, entry.getValue());</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">return</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">new</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> MapConfiguration(envMap);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> }</span><o:p></o:p></div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-77620164444600970052010-10-27T01:04:00.002+02:002010-11-05T09:45:13.440+01:00JSF 2 - Modell Aktualisierung nach fehlgeschlagener Validierung<div class="WordSection1"><div class="MsoNormal">Beim Experimentieren mit JSF 2 bin ich auf folgendes Problem gestoßen:</div><div class="MsoNormal"></div><ul><li>Wird eine Form submitted und die Validierung schlägt fehl werden entsprechende Fehlermeldungen angezeigt – ok.</li>
<li>Wenn man nun mit einem weiteren Button die bisherigen Usereingaben verwerfen will und die Form mit einen Backend Model aktualisieren will, stehen die letzten korrekten submitted-values in der Form und nicht die Werte des aktualisierten Backend Models.</li>
</ul><br />
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Leider habe ich noch keine saubere Lösung wie man das Problem angeht…<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Ich habe das Problem bei stackoverflow mal mit Beispielcode gepostet:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><a href="http://stackoverflow.com/questions/3933786/jsf-2-bean-validation-validation-failed-empty-values-are-replaced-with-last">http://stackoverflow.com/questions/3933786/jsf-2-bean-validation-validation-failed-empty-values-are-replaced-with-last</a><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Eine mögliche Lösung habe ich auch dazu gepostet – ist aber nicht wirklich schön.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Ich würde mich für jeden Tipp rund um das Problem natürlich tierisch freuen!!!<o:p></o:p></div><div class="MsoNormal"><br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-49372030522851754902010-08-02T15:39:00.000+02:002010-08-02T15:39:07.723+02:00FormatOnSave - Autoupdate funktioniert nicht... und braucht es auch gar nicht!<div class="WordSection1"><div class="MsoNormal">Eines meines Lieblings-Eclipse-Plugins war immer FormatOnSave! Das Plugin führt zwar im wesentlichen nur ein Strg+Shift+O (organize imports) und Strg+Shift+F (format code) aus, ist aber unheimlich hilfreich.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Das automatische Update funktioniert schon längere Zeit nicht mehr. Ich habe das Plugin daher einfach immer per „download & unzip“ installiert ohne hier mal genauer darauf zu achten.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Nach eine kurzen Netzrecherche ist auch klar wieso das Update nicht mehr funktioniert – die Funktion ist schon seit längeren out-of-the-box in eclipse Verfügbar was das Plugin überflüssig werden lässt.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Einfach unter Windows\Prefrences den Menüpunkt Java->Editor->Save Actions auswählen und „Perform the selected actions on save“ mit „Format source code“ und „organize imports“ auswählen.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Man sollte einfach öfters mal die neuen Features seiner IDE checken; macht das Leben einfacher <span style="font-family: Wingdings;">J</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com1tag:blogger.com,1999:blog-2681743958139599205.post-75159333916497694242010-07-19T18:55:00.000+02:002010-07-19T18:55:27.478+02:00Steb By Tab - Fehler- und Abbruch-Tracking bei formularasierten Webprozessen<div class="WordSection1"><div class="MsoNormal">In der Ausgabe 7-8/2010 des Magazins Website Boosting ist hierzu ein recht interessanter Artikel. In dem Artikel wird gezeigt wie man in JEE Systemen Fehler auf Feldebene und Abbruchfehler (User verlässt die fehlerhafte Seite) in etracker protokollieren kann.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">P.S. Ruhig mal auf den Autor achten ;-)<o:p></o:p></div><div class="MsoNormal"><br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com2tag:blogger.com,1999:blog-2681743958139599205.post-7638500613396846872010-07-02T00:07:00.000+02:002010-07-02T00:07:38.027+02:00POI - SVERWEIS und die Exception Unexpected eval type (org.apache.poi.hssf.record.formula.eval.MissingArgEval)<div class="Section1"><div class="MsoNormal"><br />
</div><div class="MsoNormal">Seit ein paar Tagen gibt es etwas neues von der POI API – Seit 20. Juni 2010 die Version POI 3.7 beta 1.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Die ersten Experimente haben hiermit perfekt funktioniert! <span style="font-family: Wingdings;">J</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Nachdem ich allerdings einen SVERWEIS (englisch : VLOOKUP) verwendet habe und ein abhängiges Feld per POI API neu berechnen lassen habe, ist folgender Fehler aufgetreten:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="color: grey; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;">java.lang.RuntimeException: Unexpected eval type (org.apache.poi.hssf.record.formula.eval.MissingArgEval)<o:p></o:p></span></span></div><div class="MsoNormal"><span style="color: grey; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;"> at org.apache.poi.hssf.record.formula.functions.LookupUtils.resolveRangeLookupArg(LookupUtils.java:422)<o:p></o:p></span></span></div><div class="MsoNormal"><span style="color: grey; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;"> at org.apache.poi.hssf.record.formula.functions.Vlookup.evaluate(Vlookup.java:57)<o:p></o:p></span></span></div><div class="MsoNormal"><span style="color: grey; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;"> at org.apache.poi.hssf.record.formula.functions.Var3or4ArgFunction.evaluate(Var3or4ArgFunction.java:36)<o:p></o:p></span></span></div><div class="MsoNormal"><span style="color: grey; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;"> at org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:132)</span><o:p></o:p></span></div><div class="MsoNormal"><span style="color: grey; font-family: 'Courier New'; font-size: 9pt;"> …<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Der Fehler ist an folgender Stelle aufgetreten:<o:p></o:p></div><div class="MsoNormal" style="text-autospace: none; text-indent: 35.4pt;"><span style="color: black; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;">...<o:p></o:p></span></span></div><div class="MsoNormal" style="text-autospace: none; text-indent: 35.4pt;"><span style="color: black; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;">FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();</span></span><span style="font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;"><o:p></o:p></span></span></div><div class="MsoNormal" style="text-autospace: none; text-indent: 35.4pt;"><span style="color: black; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;">HSSFRow row = sheet.getRow(7);</span></span><span style="font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;"><o:p></o:p></span></span></div><div class="MsoNormal" style="text-autospace: none; text-indent: 35.4pt;"><span style="color: black; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;">HSSFCell cell = row.getCell(1);</span></span><span style="font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;"><o:p></o:p></span></span></div><div class="MsoNormal" style="text-indent: 35.4pt;"><span style="color: black; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;">CellValue cellValue = evaluator.evaluate(cell);<o:p></o:p></span></span></div><div class="MsoNormal" style="text-indent: 35.4pt;"><span style="color: black; font-family: 'Courier New';"><span class="Apple-style-span" style="font-size: x-small;">...</span><o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Die Ursache hierfür ist, dass ich im Excelsheet die Formel mit dem SVERWEIS per Autocomplete erstellt habe. Der letzte Parameter des Befehls SVERWEIS „Bereich_Verweis“ wird dann mit WAHR bzw. FALSCH per Autocomplete gefüllt. Wenn man sich dann die Formel allerdings nochmal genauer anschaut, stellt man fest, dass der letzte Parameter bei WAHR einfach nicht geschrieben wird. Excel arbeitet mit einem Defaultwert.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Die POI API kommt hiermit aber nicht zurecht! Hier muss der Parameter Bereich_Verweis explizit gesetzt werden. Für WAHR muss hier eine 1 gesetzt werden.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Anschließend funktioniert die Berechnung auch wieder einwandfrei <span style="font-family: Wingdings;">J</span><o:p></o:p></div><div class="MsoNormal"><br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com2tag:blogger.com,1999:blog-2681743958139599205.post-41527881833846627382010-06-01T14:06:00.003+02:002010-06-01T14:09:16.655+02:00PL/SQL Developer - Initialization error | Windws 7 - 64bit<div class="Section1"><div class="MsoNormal">Auf meinem neuen Windows 7 – 64bit System habe ich ein tolles Oracle 11g – 64bit installiert – Funzt perfekt!<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Anschließend noch den PL/SQL Developer von allroundautomations installiert und schon gingen die Probleme los…<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>Vorab: das Problem liegt daran, dass der PL/SQL Developer ein 32bit Programm ist und Probleme bei der Verwendung des 64bit Oracle Treibers (Client) hat.<o:p></o:p></b></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Zuerst kam bei der Anmeldung folgender Fehler:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">Initialization error <o:p></o:p></span></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">SQL*Net not properly installed<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">OracleHomeKey:<o:p></o:p></span></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">OracleHomeDir:<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Nach etwas googlen bin ich auf Hinweis gekommen, bei denen man spezielle Registryeinträge ändern muss oder innerhalb vom PL/SQL Developer unter Tools/Preferences direkt Einstellungen vornehmen usw... Hat alles nichts geholfen <span style="font-family: Wingdings;">L</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Auf der Console habe ich dann mal manuell mein ORACLE_HOME Verzeichnis gesetzt. Das Ergebnis war nun folgende Fehlermeldung:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">E:\PLSQL Developer>set ORACLE_HOME=E:\oracle\app\mre\product\11.2.0\dbhome_1<o:p></o:p></span></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">E:\PLSQL Developer>plsqldev.exe<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">Initialization error<o:p></o:p></span></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">Could not load „E:\oracle\app\mre\product\11.2.0\dbhome_1\bin\oci.dll“<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">OracleHomeyKey:<o:p></o:p></span></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">E:\oracle\app\mre\product\11.2.0\dbhome_1<o:p></o:p></span></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">Found: oci.dll<o:p></o:p></span></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">Using: E:\oracle\app\mre\product\11.2.0\dbhome_1\bin\oci.dll<o:p></o:p></span></div><div class="MsoNormal"><span style="font-family: 'Courier New'; font-size: 9pt;">LoadLibrary(E:\oracle\app\mre\product\11.2.0\dbhome_1\bin\oci.dll) returned 0<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Geht also auch nicht <span style="font-family: Wingdings;">L</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Google hat bei eingeschränktere Suche irgendwie nur noch Seiten auf Chinesisch angezeigt (das Übersetzungstool von google funzt hier sehr cool!). Also bin ich so auf einer chinesischen Seite auf die 64bit / 32bit Oracle Client Problematik gestoßen. Anschließend habe ich dann gezeilt auf der Page von allroundautomations nach 64 bit gesucht und habe folgenden Treffer gefunden:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><a href="http://www.allroundautomations.com/threads/ubbthreads.php?ubb=showflat&Number=35365">http://www.allroundautomations.com/threads/ubbthreads.php?ubb=showflat&Number=35365</a><o:p></o:p></div><div class="MsoNormal"><br />
<b>Ein passender Oracle Client muss also her!</b></div><div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Als erstes also einen Windows 32bit Oracle Client herunterladen – Ich habe mich hier für den Instant Client Version 11.2.0.1.0 entschieden.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><a href="http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html">http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html</a><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Diesen kann man einfach entpacken und braucht keine extra Installation.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Anschließend müssen diese Parameter noch im PL/SQL Developer bekannt gemacht werden.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Oracle/Preferences/Oracle/Connection<o:p></o:p></div><div class="MsoNormal"><b>Oracle Home:</b> [leer lassen, dies wird durch das setzen der Environment Variable automatisch gezogen]<o:p></o:p></div><div class="MsoNormal"><b>OCI library:</b> <span style="font-family: 'Courier New'; font-size: 9pt;">E:\instantclient_11_2\oci.dll</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Anschließend den PL/SQL Developer neu starten.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Jetzt kann der PL/SQL Developer wieder sauber seine Dienste mir zur Verfügung stellen <span style="font-family: Wingdings;">J</span><o:p></o:p></div><div class="MsoNormal"><br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com2tag:blogger.com,1999:blog-2681743958139599205.post-13870572144703051962010-05-07T15:33:00.003+02:002010-05-07T15:36:12.329+02:00JSF 2, AJAX und ein confirm Dialog... (Synchrone Verarbeitung)<div class="Section1"><div class="MsoNormal">Folgendes Problem hat sich bei mir mit dem Setup JSF2.0 und jQuery 1.4 ergeben:<o:p></o:p></div><div class="MsoNormal">(das Ganze auf Glassfish v3 (daher auch mojarra als JSF Implementierung)<o:p></o:p></div><div class="MsoNormal"><o:p> </o:p> </div><div class="MsoNormal"><b>Wie erstellt man eine „coole“ Sicherheitsfrage in Verbindung mit einer JSF 2 AJAX Action?<o:p></o:p></b></div><div class="MsoNormal">Genauer: wie kann vor dem Aufruf einer JSF 2 commandButton-AJAX-Action einen jQuery UI Dialog blenden, in dem der Klassiker „Wollen Sie wirklcih“ abgefragt wird? </div><div class="MsoNormal">Auf eine Seite stelle ich eine Tabelle mit ui:repeat dar. Jede Zeile kann dabei editiert werden und auch gelöscht werden. Der Löschvorgang wird durch ein Symbol (‚X‘) am Ende der Zeile dargestellt.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Diese sieht wie folgt aus: </div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;"><td></span><span style="font-family: 'Courier New'; font-size: 10pt;"><br />
<span style="color: teal;"><</span><span style="color: #3f7f7f;">h:commandButton</span> <span style="color: #7f007f;">action</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"#{schlagView.removeWorking(working.tempIdent)}"</span></i> <br />
<span style="color: #7f007f;">image</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"./img/delete-icon.png"</span></i> <br />
<span style="color: #7f007f;">styleClass</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"listRemove"</span></i><span style="color: teal;">></span><br />
<span style="color: teal;"><</span><span style="color: #3f7f7f;">f:ajax</span> <span style="color: #7f007f;">render</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@form"</span></i> <span style="color: #7f007f;">execute</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@form"</span></i> <span style="color: teal;">/></span><span style="color: black;"> </span><br />
<span style="color: teal;"></</span><span style="color: #3f7f7f;">h:commandButton</span><span style="color: teal;">></span><br />
<span style="color: #3f7f7f;"></td><o:p></o:p></span></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Funktioniert als AJAX Event perfekt! <span style="font-family: Wingdings;">J</span> </div><div class="MsoNormal">Um die Usability aber etwas zu steigern, wäre natürlich noch ein Sicherheitshinweis schön.<o:p></o:p></div><div class="MsoNormal">Per JavaScript lässt sich dieser einfach wie folgt ermitteln:<span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px;"> </span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">td</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><br />
<span style="color: teal;"><</span><span style="color: #3f7f7f;">h:commandButton</span> <span style="color: #7f007f;">onclick</span><span style="color: black;">=</span><span style="color: #2a00ff;">"return confirm('Wirklich?')"</span><span style="color: black;"> </span><br />
<span style="color: #7f007f;">action</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"#{schlagView.removeWorking(working.tempIdent)}"</span></i> <br />
<span style="color: teal;"> </span><span style="color: #7f007f;">image</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"./img/delete-icon.png"</span></i> <br />
<span style="color: #7f007f;">styleClass</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"listRemove"</span></i><span style="color: teal;">></span><br />
<span style="color: teal;"><</span><span style="color: #3f7f7f;">f:ajax</span> <span style="color: #7f007f;">render</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@form"</span></i> <span style="color: #7f007f;">execute</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@form"</span></i> <span style="color: teal;">/></span><span style="color: black;"> </span><br />
<span style="color: teal;"></</span><span style="color: #3f7f7f;">h:commandButton</span><span style="color: teal;">></span><br />
<span style="color: teal;"></</span><span style="color: #3f7f7f;">td</span><span style="color: teal;">><o:p></o:p></span></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><o:p></o:p></div><div class="MsoNormal">JSF übersetzt beim Rendern die Seite dann entsprechend, so dass auf dem JavaScript onclick-Event folgendes liegt:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">onclick="jsf.util.chain(this,event,'return confirm(\' Wirklich\' );','mojarra.ab(this,event,\'action\',\'@form\',\'@form\')');return false"<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Hier wird einfach das Event bei ‚NEIN‘ gestoppt und es nichts passiert.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Funktioniert perfekt! <span style="font-family: Wingdings;">J</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Um die Usability aber noch etwas mehr zu steigern, wäre natürlich eine gut aussehende Sicherheitsabfrage toll. Eine Sicherheitsabfrage auf Basis eines jQuery UI Confirm Dialogs beispielsweise… <o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Das Problem hier liegt aber daran, dass in dem jQuery Dialog der Event der Buttons per CallBack Funktion realisiert wird. Dies bedeutet der eigentliche JSF AJAX Aufruf ist dann schon gelaufen. Was man hier benötigt wäre eine synchrone Abarbeitung der Dialog CallBack Funktion zum Aufruf in der JSF commandAction. Mit folgenden Zeilen Code kann man dies bewerkstelligen:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">JSF Code: </div><div class="MsoNormal" style="text-autospace: none;"><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">h:commandButton</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">onclick</span><span style="color: black;">=</span><span style="color: #2a00ff;">"return removeRow(this);"</span><span style="color: black;"> </span><br />
<span style="color: black;"> </span><span style="color: #7f007f;">action</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"#{schlagView.removeWorking(working.tempIdent)}"</span></i> <br />
<span style="color: #7f007f;"> image</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"./img/delete-icon.png"</span></i> <br />
<span style="color: #7f007f;">styleClass</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"listRemove"</span></i><span style="color: teal;">></span><br />
<span style="color: teal;"><</span><span style="color: #3f7f7f;">f:ajax</span> <span style="color: #7f007f;">render</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@form"</span></i> <span style="color: #7f007f;">execute</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@form"</span></i> <span style="color: teal;">/></span><span style="color: black;"> </span><br />
<span style="color: teal;"></</span><span style="color: #3f7f7f;">h:commandButton</span><span style="color: teal;">><o:p></o:p></span></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">JavaScript Code: </div><div class="MsoNormal" style="text-autospace: none;"><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">var</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> confirmOk = </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">false</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><br />
<b><span style="color: #7f0055;">function</span></b><span style="color: black;"> removeRow(elem) {</span><br />
<span style="color: black;"> </span><b><span style="color: #7f0055;">if</span></b><span style="color: black;"> (!confirmOk) {</span><br />
<span style="color: black;"> $(</span><span style="color: #2a00ff;">'#dialog-confirm'</span><span style="color: black;">).dialog({</span><br />
<span style="color: black;"> width:500,</span><br />
<span style="color: black;"> modal: </span><b><span style="color: #7f0055;">true</span></b><span style="color: black;">,</span><br />
<span style="color: black;"> buttons: {</span><br />
<span style="color: black;"> </span><span style="color: #2a00ff;">'Freilich'</span><span style="color: black;">: </span><b><span style="color: #7f0055;">function</span></b><span style="color: black;">() {</span><br />
<span style="color: black;"> confirmOk=</span><b><span style="color: #7f0055;">true</span></b><span style="color: black;">;</span><br />
<span style="color: black;"> $(elem).click();</span><br />
<span style="color: black;"> confirmOk=</span><b><span style="color: #7f0055;">false</span></b><span style="color: black;">;</span><br />
<span style="color: black;"> $(</span><b><span style="color: #7f0055;">this</span></b><span style="color: black;">).dialog(</span><span style="color: #2a00ff;">'close'</span><span style="color: black;">);</span><br />
<span style="color: black;"> },</span><br />
<span style="color: black;"> </span><span style="color: #2a00ff;">'Auf keinen Fall'</span><span style="color: black;">: </span><b><span style="color: #7f0055;">function</span></b><span style="color: black;">() {</span><br />
<span style="color: black;"> $(</span><b><span style="color: #7f0055;">this</span></b><span style="color: black;">).dialog(</span><span style="color: #2a00ff;">'close'</span><span style="color: black;">);</span><br />
<span style="color: black;"> }</span><br />
<span style="color: black;"> }</span><br />
<span style="color: black;"> });</span><br />
<span style="color: black;"> } </span><br />
<span style="color: black;"> </span><b><span style="color: #7f0055;">return</span></b><span style="color: black;"> confirmOk;</span><br />
<span style="color: black;">};</span><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Hierbei wird vor dem JSF AJAX Call die JavaScript Methode <span style="font-family: 'Courier New'; font-size: 10pt;">removeRow</span><span style="font-size: 10pt;"> </span>aufgerufen. Beim ersten Aufruf ist <span style="font-family: 'Courier New'; font-size: 10pt;">confirmOk == false</span><span style="font-size: 10pt;"> </span>und somit wird der jQuery Dialog aufgerufen. Die Methode wird aber direkt weiter abgearbeitet und liefert erstmal <span style="font-family: 'Courier New'; font-size: 10pt;">false</span><span style="font-size: 10pt;"> </span>zurück, was ein weiteres Aufrufen des JSF AJAX Calls verhindert.<o:p></o:p></div><div class="MsoNormal">Wird im jQuery Dialog auf ‚Freilich‘ (OK) geklickt, wird die Variable <span style="font-family: 'Courier New'; font-size: 10pt;">confirmOk</span><span style="font-size: 10pt;"> </span>auf <span style="font-family: 'Courier New'; font-size: 10pt;">true</span><span style="font-size: 10pt;"> </span>gesetzt und das Click-Event des <span style="font-family: 'Courier New'; font-size: 10pt;">commandButton</span><span style="font-size: 10pt;"> </span>erneut getriggert ( <span style="font-family: 'Courier New'; font-size: 10pt;">$(elem).click()</span> ) . Wenn die Methode diesmal durchlaufen wird, liefert sie aber ein <span style="font-family: 'Courier New'; font-size: 10pt;">true</span><span style="font-size: 10pt;"> </span>zurück und der JSF AJAX Call wird ausgeführt.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Funktioniert <span style="font-family: Wingdings;">J</span><o:p></o:p></div><div class="MsoNormal"><br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com2tag:blogger.com,1999:blog-2681743958139599205.post-35280045665441340632010-04-15T14:23:00.000+02:002010-04-15T14:23:37.736+02:00Blogger/ Blogspot Suchergebnisse in google - Anzeige des Titels<div class="Section1"><div class="MsoNormal">Nachdem ich gerade etwas experimentiert habe, wie mein Blog und dessen Einträge bei google gefunden werden, ist mir aufgefallen, dass hier immer mein Blogname „mr678“ bei dem Suchergebnissen angezeigt wird.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Ist in dieser Form nicht gerade schön und für’s SEO auch nicht ideal… (zumindest was ich gerade hierzu recherchiert habe; aktuell bin ich mit der Positionierung meines Blogeintrages aber ziemlich zufrieden ;-) – Dies hat aber natürlich andere Gründe: google blogspot mit google adsense + neu veröffentlicht…)<o:p></o:p></div><div class="MsoNormal"><br />
<div class="mobile-photo"><a href="http://3.bp.blogspot.com/_TYKYk3sWFVc/S8cE-yGypXI/AAAAAAAABWg/gjePq3kGEI4/s1600/Suche_Titel-738975.JPG"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5460338549858674034" src="http://3.bp.blogspot.com/_TYKYk3sWFVc/S8cE-yGypXI/AAAAAAAABWg/gjePq3kGEI4/s320/Suche_Titel-738975.JPG" /></a></div><br />
</div><div class="MsoNormal" style="page-break-after: avoid;"><br />
</div><div class="MsoNormal">Google zeigt hier einfach den HTML Title an. Dieser kann daher einfach nach Belieben angepasst werden. Bei blogspot funktioniert dies wie folgt:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Layout <span style="font-family: Wingdings;">à</span> HTML bearbeiten <o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Jetzt die Zeile<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="apple-style-span"><span style="color: #666666; font-family: 'Courier New'; font-size: 9pt;"><title><data:blog.title/></title><o:p></o:p></span></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">mit folgendem Snippet ersetzen:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="apple-style-span"><span style="color: #666666; font-family: 'Courier New'; font-size: 9pt;"><b:if cond='data:blog.pageType == "item"'></span></span><span style="color: #666666; font-family: 'Courier New'; font-size: 9pt;"><br />
<span class="apple-style-span"> <b><title><data:blog.pageName/> | <data:blog.title/></title></b></span><b><br />
</b><span class="apple-style-span"><b:else/></span><br />
<span class="apple-style-span"> <title><data:blog.pageTitle/></title> <o:p></o:p></span></span></div><div class="MsoNormal"><span class="apple-style-span"><span style="color: #666666; font-family: 'Courier New'; font-size: 9pt;"></b:if></span></span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Nun wird erst der Artikelname des Blogs angezeigt.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Auf folgenden Websites habe ich mir dieses Vorgehen abgeschaut:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoListParagraph" style="mso-list: l0 level1 lfo2; text-indent: -18.0pt;"><span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><a href="http://www.bloggertricks.com/2008/08/how-to-swap-your-blogger-blogspot-blog.html">http://www.bloggertricks.com/2008/08/how-to-swap-your-blogger-blogspot-blog.html</a><o:p></o:p></div><div class="MsoListParagraph" style="mso-list: l0 level1 lfo2; text-indent: -18.0pt;"><span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><a href="http://www.bloggerplugins.org/2007/09/optimise-blog-title-for-search-engine.html">http://www.bloggerplugins.org/2007/09/optimise-blog-title-for-search-engine.html</a><o:p></o:p></div><div class="MsoListParagraph" style="mso-list: l0 level1 lfo2; text-indent: -18.0pt;"><span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><a href="http://www.marketingspiritual.com/2010/google-blogspot-seo/">http://www.marketingspiritual.com/2010/google-blogspot-seo/</a><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-77068240647616442472010-04-15T00:13:00.003+02:002010-04-15T00:14:32.952+02:00JSF2, AJAX & JavaScript Events<div class="Section1"><div class="MsoNormal">Wenn man sich in den „AJAX Lifecycle“ eines JSF2 Calls hängen will, muss hierzu das Attribute <b>onEvent</b> gesetzt werden.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 9pt;"><h:commandButton</span><span style="font-family: 'Courier New'; font-size: 9pt;"> <span style="color: #7f007f;">styleClass</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"button large"</span></i> <span style="color: #7f007f;">action</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"#{schlagView.addWorking}"</span></i> <span style="color: #7f007f;">value</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"${msg.buttonAddWorkStep}"</span></i><span style="color: teal;">></span><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none; text-indent: 35.4pt;"><span style="color: teal; font-family: 'Courier New'; font-size: 9pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 9pt;">f:ajax</span><span style="font-family: 'Courier New'; font-size: 9pt;"> <span style="color: #7f007f;">render</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@form"</span></i> <span style="color: #7f007f;">execute</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@form"</span></i> <span style="color: #7f007f;">onevent</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"newRowEvent"</span></i><span style="color: teal;">/></span><o:p></o:p></span></div><div class="MsoNormal"><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 9pt;"></h:commandButton><o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Die JSF2 Spec (Javadoc) schreibt hierzu folgendes.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">„The name of the JavaScript function that will handle UI events.“<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Alles klar: In dem oben aufgeführten Beispiel wird dann die JavaScript Funktion <span style="font-family: 'Courier New'; font-size: 10pt;">newRowEvent</span><span style="font-size: 10pt;"> </span>aufgerufen.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Bei mir sieht die JS Funktion folgendermaßen aus:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 9pt;">function</span></b><span style="color: black; font-family: 'Courier New'; font-size: 9pt;"> newRowEvent(data) {</span><span style="font-family: 'Courier New'; font-size: 9pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 9pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 9pt;">if</span></b><span style="color: black; font-family: 'Courier New'; font-size: 9pt;"> (data.status != </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 9pt;">'success'</span><span style="color: black; font-family: 'Courier New'; font-size: 9pt;">) </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 9pt;">return</span></b><span style="color: black; font-family: 'Courier New'; font-size: 9pt;">;</span><span style="font-family: 'Courier New'; font-size: 9pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 9pt;"> </span><span style="font-family: 'Courier New'; font-size: 9pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 9pt;"> </span><span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 9pt;">//new line<o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 9pt;"> //...</span><span style="font-family: 'Courier New'; font-size: 9pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 9pt;">}</span><span style="font-family: 'Courier New'; font-size: 9pt;"><o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Die Methode wird insgesamt 3x aufgerufen – für jeden Ajax-Call-Zustand einmal.<o:p></o:p></div><div class="MsoNormal">Interessant ist hierbei der Parameter <b><span style="font-family: 'Courier New'; font-size: 10pt;">data</span></b>. Das Property <b><span style="font-family: 'Courier New'; font-size: 10pt;">status</span></b><span style="font-size: 10pt;"> </span>von <b><span style="font-family: 'Courier New'; font-size: 10pt;">data</span></b><span style="font-size: 10pt;"> </span>gibt Aufschluss über den aktuellen Zustand des Ajax Calls:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoListParagraph" style="margin-left: 71.4pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><span style="font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><b><span style="font-family: 'Courier New'; font-size: 10pt;">begin<o:p></o:p></span></b></div><div class="MsoListParagraph" style="margin-left: 71.4pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><span style="font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><b><span style="font-family: 'Courier New'; font-size: 10pt;">complete<o:p></o:p></span></b></div><div class="MsoListParagraph" style="margin-left: 71.4pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"><span style="font-family: Symbol; font-size: 10pt;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><b><span style="font-family: 'Courier New'; font-size: 10pt;">sucess<o:p></o:p></span></b></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Weitere Property Werte von data sind beispielsweise <span style="font-family: 'Courier New'; font-size: 10pt;">responseCode</span>, <span style="font-family: 'Courier New'; font-size: 10pt;">responseText</span>, <span style="font-family: 'Courier New'; font-size: 10pt;">responseXML</span><span style="font-size: 10pt;"> </span>oder <span style="font-family: 'Courier New'; font-size: 10pt;">source</span>. Die möglichen Properties variieren in Abhängigkeit des Statuswertes.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">--<o:p></o:p></div><div class="MsoNormal">Das beschriebene Verhalten spiegelt tritt bei mir exakt so auf beim Einsatz von Mojarra als JSF Implementierung in der out-of-the-box Variante bei Glassfish v3<o:p></o:p></div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0tag:blogger.com,1999:blog-2681743958139599205.post-76239876475809324172010-03-16T14:30:00.001+01:002010-03-16T16:59:31.848+01:00JBoss WebService Anbindung - DNS kann nicht aufgelöst werden, IP wird benötigt<div class="Section1"><div class="MsoNormal">[Alle hier beschriebenen Merkmale gelten für JBoss 4.2.3GA]<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Wenn innerhalb von JBoss verschieden Session Beans als WebService veröffentlicht werden, wird hier per default einfach das entsprechende WSDL erzeugt.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Anbei ein Beispiel für eine entspreche SLSB:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@WebService</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@SOAPBinding</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">(parameterStyle = </span><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">SOAPBinding</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">.ParameterStyle.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">WRAPPED</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">interface</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ExampleService {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@WebMethod</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">Public </span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">String getData();<o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">}</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@Stateless</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@WebContext</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">(contextRoot = </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"/ExampleWS"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@WebService</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@Remote</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">(ExampleService.</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">class</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@Local</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">(ExampleService.</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">class</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">class</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ExampleServiceBean </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">implements</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ExampleService {<o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none; text-indent: 35.4pt;"><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@Override</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String getData() {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">return</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"ExampleData"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> }<o:p></o:p></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">}</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Dies WSDL kann dann unter foglender Adresse eingesehen werden:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"> <a href="http://localhost:8080/ExampleWS/ExampleServiceBean?wsdl">http://localhost:8080/ExampleWS/ExampleServiceBean?wsdl</a><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Im unteren Abschnitt der WSDL ist dann folgender Abschnitt:<o:p></o:p></div><div class="MsoNormal">…<o:p></o:p></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"><service name='ExampleServiceBeanService'> <o:p></o:p></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> <port binding='tns:ExampleServiceBeanBinding' name='ExampleServiceBeanPort'> <o:p></o:p></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> <soap:address location='http://<b>pluto</b>:8080/ExampleWS/ExampleServiceBean'/> <o:p></o:p></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </port> <o:p></o:p></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"></service><o:p></o:p></span></div><div class="MsoNormal">…<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">pluto</span></b> ist mein lokaler Rechnername. Und genau das ist das Problem. Innerhalb des WSDL Files wird der DNS Name des Server herangezogen.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Wenn man nun außerhalb des eigenes Netzes per WebService auf den Rechner zugreifen will, kann „pluto“ natürlich nicht aufgelöst werden. Dies kommt beispielsweise vor, wenn ein Webserver in der DMZ steht und auf einen AppServer, der innerhalb des Firmennetzes steht, per Webservice zugreifen möchte. In der Firewall wurde hierfür extra 1 Port geöffnet, das WSDL File kann noch angezeigt werden, der Service ist dann aber nicht aufrufbar <span style="font-family: Wingdings;">L</span><o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Ein Zugriff auf den JBoss Server ist nur per IP Adresse möglich!<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Abhilfe schafft hierzu folgender Parameter beim Start des Servers:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-indent: 35.4pt;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">-Djboss.bind.address=192.168.15.11<o:p></o:p></span></div><div class="MsoNormal" style="text-indent: 35.4pt;"><br />
</div><div class="MsoNormal">Die 192.168.15.11 ist in diesem Beispiel natürlich meine lokale IP Adresse.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Das WSDL wird anschließend entsprechend angepasst und die soap:address location verwendet dann nicht mehr den Rechnernamen sondern den Wert für jboss.bind.address.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Der Parameter hat direkt Einfluss auf folgendes Konfigurationsfile:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"><JBOSS_HOME>\server\default\deploy\jbossws.sar\jbossws.beans\META-INF\jboss-beans.xml<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Folgender Abschnitt ist hier relevant:<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"><!-- An abstraction of server configuration aspects. --></span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">bean</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"WSServerConfig"</span></i> <span style="color: #7f007f;">class</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"org.jboss.wsf.stack.jbws.NativeServerConfig"</span></i><span style="color: teal;">></span><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">property</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"mbeanServer"</span></i><span style="color: teal;">><</span><span style="color: #3f7f7f;">inject</span> <span style="color: #7f007f;">bean</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"WSMBeanServerLocator"</span></i> <span style="color: #7f007f;">property</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"mbeanServer"</span></i><span style="color: teal;">/></</span><span style="color: #3f7f7f;">property</span><span style="color: teal;">></span><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"><!--</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> The WSDL, that is a required deployment artifact for an <u>endpoint</u>, has a <u><soap:address></u></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> element which points to the location of the <u>endpoint</u>. JBoss supports rewriting of that SOAP address.</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> If the content of <u><soap:address></u> is a valid URL, JBossWS will not rewrite it unless 'modifySOAPAddress' is true.</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> If the content of <u><soap:address></u> is not a valid URL, JBossWS will rewrite it using the attribute values given below.</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> If 'webServiceHost' is not set, JBossWS uses requesters protocol host when rewriting the <u><soap:address></u>.</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> --></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">property</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"webServiceHost"</span></i><span style="color: teal;">></span><span style="color: black;">${jboss.bind.address}</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">property</span><span style="color: teal;">></span><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">property</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"modifySOAPAddress"</span></i><span style="color: teal;">></span><span style="color: black;">true</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">property</span><span style="color: teal;">></span><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"><!-- </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> Set these properties to explicitly define the ports that will be used for rewriting the SOAP address.</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> Otherwise the ports will be identified by querying the list of installed connectors. </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> If multiple connectors are found the port of the first connector is used.</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> <property name="webServiceSecurePort">8443</property></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> <property name="webServicePort">8080</property></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal" style="text-autospace: none;"><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"> --></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div><div class="MsoNormal"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">bean</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><o:p></o:p></div><div class="MsoNormal"><br />
Alternativ zu dem Parameter jboss.bind.address kann auch beim Start der Parameter <b>-b</b> eingesetzt werden.<br />
<br />
<br />
</div></div>Matthias Reininghttp://www.blogger.com/profile/01265203048010941977noreply@blogger.com0