Dez 27

Beim JBoss Application Server tritt immer wieder das Problem auf, dass nach mehreren Deployments folgende Exception von der VM geworfen wird:

Array

Verursacht wird dieser Fehler vermutlich durch ein Speicherleck im ClassLoader. In der Produktion stellt dies kein Problem dar, da in einer produktiven Umgebung nicht so oft deployed wird. Für einen Entwickler ist dieses Problem jedoch äußerst lästig. Das Problem kann nicht ohne größeren Eingriff im Sourcecode von JBoss Application Server behoben werden. Man kann das Problem jedoch herauszögern indem man den Speicher entsprechend erhöht:

Dazu muss in der Datei ${JBOSS_HOME }/bin/run.bat zu der der Variable JAVA_OPTS folgende Optionen hinzufügt werden:

Array

So, dass die Zeile

Array

wie folgt aussieht:

Array

Damit wird der PermGenSpace von 64 MB auf 128 MB erhöht. Auf diese Weise kann man sich das lästige Neustarten des Servers nach mehrfachen Deployments sparen.

Sep 14

Jeder der schon einmal eine J2EE Anwendung entwickelt hat, kennt wahrscheinlich wie frustrierend und fehleranfällig es sein kann Mapping Code zwischen Entity Beans und Data Transver Objects zu schreiben. Das Open Source Framewrok “Dozer” kann hier Abhilfe schaffen. Es handelt sich dabei um ein Java Bean zu Java Bean Mapper welcher rekursiv Daten von einem Objekt auf ein anderes kopieren kann. Dozer unterstützt primitive Datentype, komplexe Datentypen, bidirektionale Beziehungen, Collections sowie Rekursion. Dozer ist eine kleine Open Source Perle, die definitiv einen Blick wert ist.» » » » » » » » » »

Sep 08

Wer die richtigen Tastenkominationen kennt, kommt mit Eclipse IDE schneller an Ziel. Jesper Kamstrup Linnet hat eine gute Auflistung von Eclipse Shotcuts als PDF Dokument zusammengestellt und Markus Junginger hat die wichtiges Eclipse Tastenkombinationen in seinem Blog zusammengefasst. Eine Auflistung aller Tastenkombinationen kann man in Eclipse 3.x auch über den Menu “Help –> Key Assist” oder die Tastenkombination Strg+Shift+L anzeigen lassen.» »

Aug 29

Dan Diephouse gibt eine Einführung in Apache CXF:

In this webinar, Dan will give an introductory view of building services with Apache CXF. He’ll look at the technologies CXF offers and how they can be used within the context of a service oriented architecture. First, he’ll walk through building a contract first SOAP web service with JAX-WS. Then, he’ll look at building RESTful XML and JSON web services with CXF. Along the way he’ll discuss topics such as how and when to use the WS-* standards, how to secure web services, and service design.

Die Teilnahme am Seminar ist kostenlos. Registrierung erfolgt hier.» » » » » » » » »

Aug 23

Man ist auf der Suche nach einem Fehler im Programm und versucht dem Problem auf die Spur zu kommen in dem man verschiedene Ausgaben mit System.out.prinln() (oder Logging Framework) auf der Konsole ausgibt. Hat man schließlich den Fehler gefunden, müssen alle überflüssigen Logging-Ausgaben wieder aus dem Quellcode entfernt werden. Kennen Sie das Problem?

Eine alternative Möglichkeit für dieses Vorgehen sind Conditional Breakpoints in der Eclipse IDE. Schreiben Sie Ihre Logging-Ausgaben ins Conditional Breakpoint und geben am Ende “false” als Return-Wert zurück. Dies bewirkt, dass der Debuger an diesem Breakpoint nicht anhält. Die Logging-Statements werden jedoch trotzdem ausgegeben. Hier ein Beispiel:

Condition Breakpoint

Vorteile:

  • Der Quellcode wird nicht unnötig durch Logging-Ausgaben verunreinigt.
  • Dieses Vorgehen funktioniert auch mit Code, denn man nicht verändern kann.

» » » » » »

Aug 17

Bei der Entwicklung von Eclipse Plugins lasse ich die Eclipse Logging Ausgaben immer auf der Eclipse Console ausgeben. Dazu muss man beim Start der Eclipse Anwendung zusätzlich das Argument “-consoleLog” übergeben. Hier ein Beispiel:

Eclipse RCP Conlose Log

Vorteile:

  • Sie müssen nicht mehr in der Log-Datei suchen.
  • Ein Klick auf den Stacktrace öffnet die entsprechende Source Datei.