JEE

Java Projekte mit Groovy – Der erste Kontakt…

Wer sich als Java-Entwickler bereits ein wenig mit der Sprache Groovy beschäf­tigt hat, wird wäh­rend der Projektarbeit sicher schon einige Verwendungsmöglichkeiten für Groovy-Sprachkonstrukte gefun­den haben. In den meis­ten Fällen betrifft dies eher rela­tiv tri­viale Funktionen, wie Operationen im Dateisystem oder das Auswerten von Variablen eines Typs. Da aber gerade in der Erstellung von Prototypen die Evaluierung von Kernprozessen im Vordergrund…

PSQLException: ope­ra­tor does not exist

 Nach dem Neuaufsetzen einer bestehen­den Grails-Anwendung, tauchte nach­fol­gen­der Fehler wäh­rend der Ansprache der Datenbank durch die Applikation auf: Caused by: org.postgresql.util.PSQLException: ERROR: ope­ra­tor does not exist: big­int ~~ big­int at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:257) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92) … 2 more Zunächst ver­mu­tete ich ein JDBC Treiber-Problem, jedoch konnte der Fehler nach etwas Recherche und Debugging…

Gründung der Java User Group Saxony

Am 03. April 2008 fand das erste Treffen und damit die Gründungsveranstaltung der Java User Group Saxony in den Räumen der Communardo Software GmbH statt. Diese Gruppe wurde auf Initiative von Torsten Rentsch (Communardo Software GmbH) und Falk Hartmann (ubi­grate) Anfang 2008 ins Leben geru­fen. Ziel ist es den Wissensaustausch im Java Umfeld zu för­dern sowie Kontakte zwi­schen Firmen und…

XMLBeans in Axis2

Da es sich bei Axis2 um eine Neuentwicklung gegen­über der Vorgängerversion han­delt, wurde ein kom­plett ande­res Data Binding Konzept umge­setzt. Zum Einsatz kom­men bestehende Lösungen wie: ADB, (http://ws.apache.org/axis2/1_0/adb/adb-howto.html) XMLBean, (http://xmlbeans.apache.org ) JiBX, (http://jibx.sourceforge.net/ ) JAXB-RI, (https://jaxb.dev.java.net/nonav/2.1.6/docs/vendorCustomizations.html ) oder JaxME, (http://ws.apache.org/jaxme/ ) die in Axis2 inte­griert wer­den. XMLBeans stam­men ursprüng­lich von BEA Systems und wird von Apache wei­ter­ent­wi­ckelt. XMLBeans heben den…

Einstieg in Android

Android ist ein von der Open Handset Alliance, der mehr als 30 Unternehmen ange­hö­ren, ini­zier­tes Betriebssystem für mobile Endgeräte. Das Android SDK, wel­ches von Google ent­wi­ckelt wird, beinhal­tet das Betriebssystem, die Middleware und Beispielanwendungen und steht unter http://code.google.com/android/ zum Download bereit. In der zwei­ten Jahreshälfte 2008 sol­len die ers­ten Endgräte auf den Markt kom­men, die das neue Betriebssystem unter­stüt­zen. Es…

Andromda Sequence per Table

Standardmäßig gene­riert die Hibernate Andromda Cartridge die Mappingdateien so, dass eine Sequenz für alle Tabellen genutzt wird. Eine Umstellung auf eine Sequenz für jede Tabelle ist dabei sehr ein­fach mög­lich. In der andromda.xml muss die Hibernate Cartridge ein­fach wie folgt angepaßt wer­den: <name­space name="hibernate"> <pro­per­ties> … <pro­perty name="defaultHibernateGeneratorClass">sequence</property> <pro­perty name="sequenceIdentifierSuffix">_seq</property> … </properties> </namespace> Der finale Sequzenzname ergibt sich dabei aus…

jCaptcha

Um Webdienste vor Missbrauch durch Webbots zu schutz wer­den CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) ein­ge­setzt. Eine java­ba­sierte Lösung, die ein­fach zu inte­grie­ren und imple­men­tie­ren ist, bie­tet das Framework jCaptcha an (http://jcaptcha.sourceforge.net). Es steht unter LGPL und bie­tet eine Reihe vor­de­fi­nier­ter Captchaimages an. Im fol­gen­den möchte ich bei­spiel­haft erläu­tern, wel­che Schritte nötig sind, um eine Captchalösung mit­hilfe des jCapchta-Frameworks in eine bestehende J2EE Anwendung einzubinden.

Verwendung von Java2 5.0 Klassen mit Java2 1.4 mit Retrotranslator

In einem exis­tie­ren­den Java2 1.4 Projekt sol­len gene­rierte XFire-Clientklassen ver­wen­det wer­den. Der XFire-Codegenerator ver­wen­det JAXB2 und ist damit auf einige Java2 5.0‑Features wie Annotations ange­wie­sen. Der Umstieg auf Java2 5.0 ist in dem Projekt keine Option und des­halb habe ich eine Möglichkeit gebraucht, die gene­rier­ten Klassen mit Java2 1.4 zu ver­wen­den. Nach ein paar Recherchen habe ich mich für die…

Webservice mit Apache Axis2

Das Webservice Framework Axis2 von Apache steht seit 2005 in der Version 2 zur Verfügung und bie­tet einige Vorteile gegen­über der Vorgängerversion. Aus mei­ner Sicht sind es vor allem Performance Steigerung, höhere Flexibilität beim Deployment von Services und eine ver­bes­serte Unterstützung von aktu­el­len Standards, die einen Einsatz von Axis2 sinn­voll macht. Anhand eines Beispieles soll im Folgenden schritt­weise gezeigt wer­den, wie…

Was tun bei OutOfMemory – Teil 1: Grundlagen

OutOfMemory ist eines der am häu­figs­ten auf­tre­ten­den Probleme bei Java-basierten Webapplikationen. Die Ursachen dafür sind genau so viel­schich­tig wie die Möglichkeiten der Analyse. Ziel die­ses Artikels ist es, sowohl die Grundlagen wie auch mög­li­che Lösungswege zu zei­gen. Bevor man jetzt leicht­fer­tig die Software umpro­gram­miert (da man ja genau weiß, wo das Problem liegt), sollte man mit einer aus­führ­li­chen Analyse beginnen.…

Maven 2 Multi-Modules Project Site

Mithilfe des Site-Plugins ist es mög­lich ohne gro­ßen Aufwand eine Projekt Homepage mit allen wich­ti­gen Informationen zu erstel­len. Neben gene­rier­ten Code Audits, Unit-Test Reports oder SourceCode Reviews kön­nen auch eigene Inhalte pro­blem­los mit ein­ge­bun­den wer­den, was die Projektsite zu einer uni­ver­sel­len Informationsplattform für Entwickler macht. Leider gibt es bei Projekten mit meh­re­nen Modulen häu­fig Probleme in der Verlinkung der generierten…

Properties und Spring

Bei der Verwendung von Spring stellt sich im Buildmanagement die Frage wie mit Properties umge­gan­gen wird. So hat jeder Test‑, Live- und Entwicklungsserver seine eigene Datenbank oder andere unter­schied­li­che Einstellungen. Eine oft gewählte Variante ist die Ersetzung der Properties durch den Buildprozess. Dies hat aller­dings den Nachteil, dass für eine Änderung der Properties der Buildprozess neu aus­ge­führt wer­den muss. Mit Spring…

JAXB2-Bindings aus einer DTD mit Typmapping mit Maven2 generieren

Nach dem gest­ri­gen Erfolg folgte heute eine Anforderung, die den Wechsel zu einem ande­ren Maven2-Plugin und einer neuen Mapping-Datei führte. Die neue Anforderung war, dass Attribute aus der DTD auf andere Typen als String gemappt wer­den sol­len. Da DTDs keine Typisierung wie XML-Schema ken­nen, muss dies mit einem Mapping-File gesche­hen. Das Maven2-Plugin aus dem gest­ri­gen Artikel war lei­der mit dem…

Generierung von JAXB2-Bindings aus einer DTD mit Maven2

Heute muss­ten aus einer exis­tie­ren­den DTD ein paar JAXB2-Binding-Klassen gene­riert wer­den. Nach eini­gem pro­bie­ren ist dies mit fol­gen­der pom.xml und einem pas­sen­den Binding-File gelun­gen. Hier die pom.xml: <?xml version="1.0" encoding="UTF‑8"?> <pro­ject xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" > <modelVersion>4.0.0</modelVersion> <groupId>de.mms-dresden</groupId> <artifactId>hsp-search-gen</artifactId> <version>0.0.1‑SNAPSHOT</version> <description>Generierter Code fuer die Suche im Hilfeportal</description> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <exe­cu­ti­ons> <exe­cu­tion> <goals> <goal>xjc</goal> </goals> </execution> </executions> <con­fi­gu­ra­tion>…

Virenüberprüfung beim Upload von Dateien mit ModSecurity und Apache

Um in einer Webanwendung sicher­zu­stel­len, dass die Nutzer kei­nen Viren oder andere Schädlinge durch Uploads ein­schleu­sen, gibt es ver­schie­den Möglichkeiten. Eine Möglichkeit ist es, in der Webanwendung selbst eine Virenüberprüfung anzu­stos­sen. Eine Alternative ist es, die Virenprüfung in einem vor­ge­schal­te­nem Apache vor­zu­neh­men. Diese Funktionalität kann mit dem Modul ModSecurity für den Apache erreicht wer­den. Dieses erkennt bei einem Request des…

XFire Teil2 – Implementierung eines WebServices

Als Ergänzung zu dem Beitrag "XFire-WebService-Client mit Maven2 gene­rie­ren" möchte ich heute noch eine Implementierung für den Service vor­stel­len, damit man das Beispiel aus dem ers­ten Beitrag lokal nach­voll­zie­hen kann. Die Implementierung benutzt den XFireServer, der auf Jetty basiert und damit recht leicht­ge­wich­tig ist. Bei Interesse werde ich in einem wei­te­ren Beitrag noch die Integration mit Tomcat und Spring beschrei­ben. Als…

XFire-WebService-Client mit Maven2 generieren

In einem aktu­el­len Projekt gab es die Erforderniss meh­rere WebServices für ein Portal bereit­zu­stel­len. Da das Spring-Framework und Maven 2 zur Verfügung stan­den und ich mich etwas tie­fer­ge­hend mit den Möglichkeiten des WebService-Frameworks XFire beschäf­ti­gen wollte, habe ich mich für eine Realisierung damit ent­schie­den. Heute stelle ich kurz vor, wie man mit Maven 2 und dem XFire-Plugin aus einer WSDL-Datei…

1 2 3