JMCblog

Nothing in particular…

Nach Datenbank-Problemen wieder da

Dienstag
Mrz 27,2007

Wegen Datenbankproblemen war das Blog leider fast 3 Wochen offline. Diese konnten aber nun durch einen Umzug auf einen anderen Server wieder behoben werden :)

Start Slide Show with Cooliris
Sonntag
Feb 11,2007

Möglicherweise steht jemand ebenfalls mal vor dem Problem unter Ubuntu 6.10 aus einer Java-Anwendung heraus drucken zu wollen. Leider ist dies erstmal nicht möglich, das Java-Programm meldet immer eine Exception:

JAVA:
  1. java.awt.print.PrinterException: Printer is not accepting job.

Die Ursache ist allerdings leicht zu beheben:

  1. Im Verzeichnis /etc/cups eine Datei client.conf anlegen. In dieser Datei muss "ServerName localhost" eingetragen werden.
  2. Es wird noch ein SymLink von /usr/lib/libcups.so.2 auf /usr/lib/libcups.so benötigt: sudo ln -s /usr/lib/libcups.so.2 /usr/lib/libcups.so

Anschliessend einmal die Java-Anwendung neu starten und dem drucken sollte nichts mehr im Wege stehen.

Dienstag
Sep 12,2006

Vielleicht ist Euch auch schon mal aufgefallen, dass Google seit einiger Zeit bei einigen Suchergebnissen zusätzlich Informationen und direkte Links zu Unterseiten einblendet.

Google Zusatzinfos
Weiß jemand wie die heißen und (viel wichtiger), was man tun muß damit die eigene Seite auch entsprechend erscheint?

Start Slide Show with Cooliris
Donnerstag
Aug 17,2006

Java Community Process LogoIch habe gerade gesehen, das am 10. August 2006 der Finale Entwuf für die Integration von Skript-Sprachen in die Java EE Platform vorgelegt wurde. Zu finden ist das Ganze auf den Seiten des Java Community Process.

Ziel des JSR ist die Integration von Skript-Sprachen zur Erstellung von Web-Content in die Java EE Plattform. Die Implementation erfolgt am Beispiel von PHP 5. Mitglieder der Expertengruppe sind unter anderem Zend, IBM, Oracle und Sun.

Damit soll es in der Zukunft möglich werden z.B. PHP und Java zu integrieren.

Start Slide Show with Cooliris
Samstag
Jul 29,2006

English language version here

Als ich neulich das erste Mal aus einer Eclipse RCP heraus auf JBoss zugreifen wollte, bekam ich gleich die unschönen Seiten des OSGI-Classloading zu spüren. Meine Suche im Web nach einer Lösung förderte eigentlich nur die Fragen von anderen zu diesem Thema zu Tage. Daher nun hier mein Versuch, ein kleines Howto zu schreiben damit andere schneller zu einem funktionierendem Ergebnis kommen.

Das Ziel

Ziel soll sein, ein Eclipse Rich Client Project (ab jetzt nur noch RCP) zu erstellen, dass aus dem eigentlichen RCP-Plugin und einem Plugin mit den JBoss-Client-Bibliotheken besteht. Die EJB-Klassen werden wir in diesem Fall erstmal direkt in das RCP-Plugin integrieren, in einem späteren Beitrag werden sie dann, zwecks besserer Wartbarkeit, in ein eigenes Plugin ausgelagert. Die Anwendung soll dann ihre Daten als Session- und Entity-Beans vom JBoss beziehen.

Das Problem

Der OSGI-Classloader von Eclipse erzeugt für jedes geladene Plugin einen eigenen Classpath. Die Klassen von anderen Plugins sind dadurch unsichtbar. Dieses Vorgehen ist auch sinnvoll, denn es ermöglicht unter anderem das (de-) aktivieren von Plugins zur Laufzeit der Anwendung. Sofern ein Plugin (nennen wir es A) sich als Abhängig von einem anderen Plugin (B) erklärt (unter Dependencies im Plugin-Editor) werden die Klassen von B für A sichtbar.

In unserem Falle benötigen wir aber eine beidseitige Sichtbarkeit. Unser RCP muss die JBoss-Klassen sehen und JBoss muss die im RCP vorhandenen EJB-Klassen sehen können. Ist dies nicht gegeben hagelt es

javax.naming.CommunicationException [Root exception is java.lang.ClassNotFoundException: bz.jmc.blog.tutorial.rcp_with_jboss.ejb.MyTestStatelessSessionRemote (no security manager: RMI class loader disabled)]

und ähnliche Fehler.

Die Lösung

Da nicht beide Plugins sich gegenseitig unter Dependencies angeben können benötigen wir eine andere Lösung. Die heisst für uns "Buddy Classloading". Hiermit wird es möglich, dass sich ein Plugin schon während der Implementierung für die Klassen von anderen Plugins "öffnet". Andere Plugins können sich so als Buddy registrieren und Ihre Klassen dem anderen Plugin zur Verfügung stellen.

Auf den folgenden Seiten habe ich ein kleines, mit Screenshots versehenes Tutorial zusammengestellt, dass die Lösung anhand eines einfachen Beispiels erläutert.


JMC on flickr

RiesenradDoppelter RolandMaple leaf1914-1918

Letzte Kommentare


Schlagwörter

Apple assignments aufgaben aufgaben assignments b&w black classic d300 day88 dia dockland fehmarn film Flickr Hörertreffen hamburg HappyShooting Holga hund iPhone ipod itunes Kopenhagen live microsoft mittelformat musik Nikon p6000 photo assignment aufgabe Photographie Project365 project365 photofriday raw review schwarz shuffle Strobist VFXY view weiß white wic Wordpress Workshop

VFXY Photos 2008 Photoblog Awards