Geschrieben von everflux am Juni 20th, 2010
Das Spring Framework (http://www.springsource.org/) ist eines der am weitesten verbreiteten Frameworks im Java Enterprise Umfeld. Selbst mit JavaEE 6 findet in vielen Projekten Spring noch Verwendung. Mit diesem kleinen Beitrag möchte ein paar Tipps zum debuggen einer – in meinen Augen – frustrierenden wie zeitraubenden Situation geben:
org.springframework.transaction.TransactionSystemException: Could not
commit JPA transaction; nested exception is javax.persistence.RollbackException: Error while committing
the transaction at
org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:476) at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit
(AbstractPlatformTransactionManager.java:754) at
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit
(AbstractPlatformTransactionManager.java:723) at
org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning
(TransactionAspectSupport.java:374)
Was ist da los? Ein Fehler bei der Ausfuehrung einer Transaktion! Und woher kommt der? Schaut man in den JpaTransactionManager in die doCommit Methode, so sieht es erst mal so aus, als handele es sich um eine Exception die von “weit weg” kommt. Vielleicht ein Fehler in der Datenbank, dem Treiber oder etwas in der Richtung. Leider fehlt der Exception auch der “cause” – eine geschachtelte Exception, die normalerweise schnellen Aufschluss über die Art des Programmierfehlers gibt. (Gern gesehen: NullpointerException
) Weiterlesen »
Geschrieben von everflux am Juni 16th, 2010
Netbeans ist nun in der Version 6.9 von Oracle freigegeben worden. Die Entwicklungsumgebung für Java, PHP, JavaScript, Groovy, Scala, … wird von Oracle zusammen mit der OpenSource Community entwickelt. Das nun veröffentlichte Netbeans 6.9 enthält viele Neuerungen. Für PHP Entwickler besonders interessant ist die Unterstützung des Zend Framework in der aktuellen Version. Weiterlesen »
Geschrieben von everflux am Juni 14th, 2010
Oracle VirtualBox 3.2.4 ist verfügbar. Dabei handelt es sich um ein sogenanntes Maintenance Relase, es wurden Geschwindikeits- und Qualitätsverbesserungen vorgenommen.
Das offizielle Changelog ist hier verfügbar, der Download von www.virtualbox.org.
VirtualBox eignet sich weiterhin als eine schnelle und kostenfreie Virtualisierungs-Lösung, um Software gefahrlos auszuprobieren, oder andere Betriebssysteme als auf dem Host zu verwenden. So kann man z.B. einen Blick auf OpenSolaris oder Nexenta werfen, und darauf seine Anwendungen testen oder Erfahrung sammeln.
Für OpenSolaris gab es vor ca. einer Woche wieder Aktualisierungen im dev Repository, so dass ich davon ausgehe, dass auch hier Oracle die Weiterentwicklung voran treibt.
Geschrieben von everflux am Juni 3rd, 2010
Die Java Usergroup Muenster hatte Dalibor Topic zu Gast, der ueber OpenJDK und Java 7 referierte. (Ankündigung: http://www.jug-muenster.de/)
Interessant dabei: Seit OpenJDK in Debian und Ubuntu verfügbar ist, wird dies auch genutzt – ohne dabei jedoch zu Lasten der Nutzerzahlen des “Sun Java” zu gehen. Es gibt hier also unterschiedliche Nutzer, und offenbar auch solche, die sich ganz bewusst für OpenJDK entscheiden.
Was bietet OpenJDK? Einen nie dagewesenen Einblick in die Entwicklung der am weitesten verbreiteten Sprache der Welt – Java. Dank OpenJDK kann man sich einen Einblick über Entwicklung, Verwaltung und Buildsystem verschaffen, und auch selber an der aktuellen Entwicklung teilhaben.
Und was kommt mit Java 7? Viele kleine Dinge (Projekt Coin), evtl. auch Closures, der Diamond Operator. Und natuerlich wird auch JavaFX durch Oracle massiv weiterentwickelt. (JavaFX ist eine RIA Platfform, die ueber Scene-Graph und Databinding die Entwicklung reichhaltiger grafischer Anwendungen stark erleichtert.) Webseite zu JDK7: https://jdk7.dev.java.net/
Einen Grossteil der Neuerungen betreffen Pruning (alte APIs sollen entfernt werden), Modularisierung der Laufzeitumgebung (Jigsaw) und das Fork-Join-Framework für verbesserte Concurrency. Da Java 7 durch Oracle gegen Ende des Jahres erwartet wird, ist nun der richtige Moment sich damit zu befassen!
Geschrieben von everflux am Mai 30th, 2010
Seit JPA 2 gibt es endlich die Moeglichkeit verweiste Objekte einer Collection loeschen zu lassen, so dass keine Hibernate spezifischen Annotationen mehr erforderlich sind.
Hier am Beispiel einer unidirektionalen Assoziation mit JPA 2:
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private Set<PhoneNumber> resultSet = new ArrayList<PhoneNumber>();
Seit Hibernate 3.5.0-Final wird dies auch unterstützt. Offenbar gibt es da aber noch (irgendwo) einen kleinen Bug. Auch kleine Bugs kann man sehr lange suchen. Wenn man weiß, dass ein Update auf Hibernate 3.5.2 Abhilfe schafft, kann man sich das Suchen auch sparen.
Man muss es eben nur wissen. Weiterlesen »
Geschrieben von everflux am Mai 22nd, 2010
Ubuntu Lucid beinhaltet eine neuere Version des Apache Modules mod_fcgid als FastCGI Anbindung. Wer nun per FastCGI z.B. PHP laufen hat, und sich ueber defekte Dateiuploads wundert, dem sei dieser kurze Blogartikel ans Herz gelegt! (Wer kein FastCGI bzw. nicht mod_fcgid und Apache unter Lucid verwendet, bzw. kein Problem hat, dass z.B. Bilder nach dem Upload defekt sind, kann den Artikel getrost ignorieren.)
Weiterlesen »
Geschrieben von everflux am Mai 19th, 2010
Am kommenden Mittwoch, dem 26.5., findet ein Vortrag zum Thema OpenJDK / Java 7 in Muenster statt. Der Referent ist Dalibor Topic arbeitet als Java F/OSS Ambassador bei Sun Microsystems in Hamburg mit der OpenJDK Community daran, Java in GNU/Linux-Distributionen fest zu verankern und Portierungen auf neue Platformen in das OpenJDK-Projekt einzubinden. Desweiteren ist er bekannt als Mitbetreiber der kaffe.org-Virtual-Machine sowie des GNU-Classpath-Projekts.
Der Vortrag ist kostenlos für jeden Teilnehmer und wird folgende Themen behandeln:
Wie ist der Zwischenstand bei JDK 7? Welche Features sind drin? Was hat es mit Closures auf sich? Wie weit ist die Modularisierung des JDK fortgeschritten? Was bringt invokedynamic in der Praxis? Wie breit ist die OpenJDK-Community aufgestellt? Diese Session ist ein Report aus dem Maschinenraum von JDK 7 und der OpenJDK-Community.
Weitere Informationen, Anfahrt etc. gibt es auf der Homepage der Java Usergroup Münster: http://www.jug-muenster.de/
Geschrieben von everflux am Mai 18th, 2010
Normalerweise bin ich recht argwöhnisch was Crawler, Bots und derlei Zeugs angeht. So auch, als ich den Rivva Crawler in meinen Logs auftauchen sah:
178.63.0.67 - - [17/May/2010:13:10:46 +0200] "HEAD ... HTTP/1.1" 200 - "-" "Mozilla/5.0 (compatible; Rivva; http://rivva.de)" 0 everflux.de
178.63.0.67 - - [17/May/2010:13:13:19 +0200] "GET .... HTTP/1.1" 200 29570 "-" "Mozilla/5.0 (compatible; Rivva; http://rivva.de)" 0 everflux.de
Vor dem Sperren schaue ich mir in der Regel die betreffende Webseite an – in der Regel ist das dann eine “neue Suchmaschine” die mit SEO Mitteln versucht Adsense und dergleichen unters Volk zu jubeln, jedoch keinen oder geringen Nutzen bringt. Rivva sah dabei nicht schlecht aus, die About Seite klärte auf, – und nach dem Blick auf den Namen des Autors war das grüne Licht dann an.
Noch besser wäre das Gefuehl natuerlich, wenn wirklich nur der Feed – und vielleicht auch das eine oder andere Mal die robots.txt abgerufen wuerde, statt die ganzen Seiten. Vielleicht hab ich das aber auch falsch verstanden.
Ein interessantes Projekt in jedem Fall, ich bin gespannt was daraus wird. Und ich werde in in den nächsten Wochen öfters mal drauf schauen auf den Fluss des Internets: rivva.de
Geschrieben von everflux am Mai 17th, 2010
Gerade zum Bloggen von Webseiten-Screenshots bietet sich diese Firefox Extension an: Screengrab. Bisher hat das auch alles prima geklabbt: Ubuntu, Firefox, WordPress Blog und Ubuntu Server.
Neuerdings gibts da jedoch ein Problemchen: Beim Hochladen der Bilder ins WordPress gibt es nur das “broken Image” Symbol, und auf dem Server wird ganz viel dieser Art geloggt:
gd-png: fatal libpng error: Read Error: truncated data
gd-png error: setjmp returns error condition 2gd-png: fatal libpng error: Read Error: truncated data
gd-png error: setjmp returns error condition 2gd-png: fatal libpng error: Read Error: truncated data
gd-png error: setjmp returns error condition 2
Die defekten Zeilenvorschübe kommen dabei original so aus dem Logfile. Ich habe zwar nach der Fehlermeldung ein wenig gesucht, konnte jedoch lediglich einen Hinweis finden, dass es auf aktuelleren PHP Versionen (z.B. Ubuntu Lucid) evtl. zu Problemen mit der Kompressionsstufe 10 kommen kann. Weiterlesen »
Geschrieben von everflux am Mai 17th, 2010
Google legt neuerdings Wert darauf, dass Webseiten schnell sind. Zumindest hat Google die Ladezeit von Webseiten neuerdings als (einen) Rankingfaktor offiziell bekannt gegeben. In den Google Webmaster Tools ist eine Ladezeit von ca. 2 Sekunden noch im “grünen” Bereich.
Nachdem mir eben aufgefallen ist, dass Firefox Google besonders langsam war, konnte ich mir ein kleines Grinsen nicht verkneifen, als ich dann von Google selbst gesagt bekam, dass nicht mein Browser, sondern wirklich Google langsam war. Und ich meine langsam: Sagenhafte 12 Sekunden fuer eine relativ simple Suchabfrage.
Selbst nachdem ich die selbe Abfrage nochmals verwendete – hier darf man ja aller spätestens einen warmen Cache annehmen – kam das Resultat erst nach 3-4 Sekunden. Wer es nicht glaubt, ich habe echte Screenshots! Weiterlesen »
Neue Kommentare