Archiv für den Monat: Dezember 2014

Derby startet nicht

Immer mal wieder begegnet mir bei einem Kunden eine etwas ältere Java7-Version, was für die meisten Zwecke auch völlig ausreichend ist.

Das Datenbanksystem Derby (bzw. JavaDB) ist seit JDK 6 mit dabei und ist gerade für Demonstrationen und Tests sehr gut geeignet.

Bei konkret JDK 7u51 gibt es jedoch ein Problem: Derby startet nicht.

Stattdessen wird eine AccessControlException geworfen, und die Fehlermeldung lautet

access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve")

Dieses Verhalten ist seit geraumer Zeit bekannt, an verschiedenen Stellen ausführlich beschrieben, und auch an Lösungsvorschlägen mangelt es nicht. Einige sind korrekt, einige eher Hacks, und einige funktionieren schlichtweg nicht.

Mit 7u51 wurden die Sicherheitsrichtlinien geändert: Vorher durfte jeder Prozeß an jedem Port > 1023 horchen, nun gilt das nur noch für Ports in einem weiter hinten liegenden Bereich (ab irgendwo um 40.000). Derby möchte standardmäßig Port 1527 verwenden, und das geht jetzt nur noch mit entsprechender Erlaubnis.

Um mir die Zeit und den Aufwand zu sparen, jedesmal wieder von vorn alle üblichen Verdächtigen abzuklappern, schreibe ich hier die von mir präferierte Lösung nieder, auf daß ich sie fortan immer parat haben möge.

Die JDK-Sicherheitsrichtlinien werden in der Datei java.policy gespeichert, die in $JAVA_HOME/jre/lib/security liegt.

Dort kann nun am Ende die neue Erlaubnis eingetragen werden:

grant {
    permission java.net.SocketPermission "localhost:1527", "listen";
};

Derby darf horchen, kann starten, alles wieder gut.

Das Ganze gilt nur für 7u51 – ab der nächsten Version (7u55) enthält die Derby-interne server.policy-Datei die entsprechende Erlaubnis bereits, womit die obige Ergänzung nicht mehr notwendig ist.

Ein erster Markdown-Text

Bisher habe ich dieses Blog nicht wirklich als solches genutzt – genaugenommen habe ich es, abgesehen vom ersten Eintrag damals direkt nach dem Anlegen, überhaupt noch nicht genutzt.

Die Gründe dafür waren immer die gleichen: Keine Zeit, muß arbeiten, Familie/Freunde, Kundentelefonate, Müll runterbringen – das Übliche eben.

Nach sorgfältiger Analyse habe ich nun einen weiteren Grund ausmachen können: Den WordPress-Texteditor.

Meinen ersten Eintrag zu erstellen war damals recht umständlich. Bei jedem Hin- und Herschalten zwischen Text- und HTML-Editor sah alles immer wieder anders aus, die Formatierungen änderten sich scheinbar willkürlich, und das Einfügen von Code und Codeblöcken war noch mal eine zusätzliche Herausforderung, von Syntaxhighlighting ganz zu schweigen. Recht frustierend das. Sicherlich gab es dafür irgendwo einen Schalter oder ein Tutorial; fand ich nicht, und hatte auch keine Zeit (keine Lust?), danach zu suchen.

Immer mal wieder las ich etwas über Markdown, und das sah komfortabel einfach aus. Die anderen Hinderungsgründe gab es natürlich weiterhin, aber heute nun ist es soweit: WordPress-Plugin ausgesucht, installiert, Beispielseite gelesen, losgeschrieben.

In diesem Text sind zwar noch nicht wirklich Formatierungen drin, aber bereits jetzt fühlt es sich anders an: Klarer, auf’s Wesentliche reduziert, eben benutzbar. Das Blog ruft geradezu danach, mit weiteren Texten befüllt zu werden.

Jetzt harre ich einfach mal der Dinge, die da kommen mögen, und dann sollte sich ja bald zeigen, ob es wirklich daran gelegen hatte.