04 Dezember 2009

Mit JNDI ein Active Directory anfragen

Die Aufgabe, ein Active Directory aus JAVA anzufragen, ist nicht ganz trivial.

Ein kleines Beispiel ist das verwendete Timestamp-format, das in 100 Nanosekunden Schritten seit dem 01.01.1601 zählt.
Zur Umrechnung in JAVA Date, empfehle ich diesen Foreneintrag bei Sun. (unbedingt bis zum Ende lesen...).

Weitere empfehlenswerte Links:
und noch eine Kleinigkeit über keystores...
und das importieren von SSL Zertifikaten.

Labels: , , , , ,

17 Juni 2009

Definition Smartphone

In der IT Welt sind wir immer mal wieder auf der Suche nach griffigen Definitionen. Ich glaube ich habe gerade eine gefunden:
Smartphone - Ein Mobiltelefon, das aufgrund seiner zahlreichen Funktionen in regelmäßigen Abständen durch den Benutzer neu gestartet werden muss.


Labels: , ,

29 April 2009

Comparing Code Folders, the groovy way

Ich habe mir vor einiger Zeit mal die Zeit genommen, ein wenig mit Groovy rumzuspielen, da ich glaube dass Groovy eine Prima Scriptingergänzung zu JAVA darstellt. Und heute hatte ich mal einen typischen Scripting Task aufm Schreibtisch:

Das Vergleichen zweier Verzeichnisse, in dem einen JAVA Code aus einer älteren Iteration und in dem anderen die neue Version. Mich haben nur die groben Zahlen (LoC, Files) interessiert und so sieht die Groovy-Lösung aus:

// Pattern for Java Files
def p = ~/.*\.java/
// Pathes to the directories containing the code
def newPath ='c:\\code\\20090427'
def oldPath ='c:\\code\\20090213'
// variables for counting
def newFilecount = 0
def oldFilecount = 0
def newLOCcount = 0
def oldLOCcount = 0

 
//define a closure for recursive directory access
// in the new code folder
def directoryClosNew
directoryClosNew = {
    it.eachDir(directoryClosNew);
    it.eachFileMatch(p){
        newFilecount++
        println "New source: $it"
        it.eachLine {
            newLOCcount++
        }
    }
}

//define a closure for recursive directory access
// in the old code folder
def directoryClosOld
directoryClosOld = {
    it.eachDir(directoryClosOld);
    it.eachFileMatch(p){
        oldFilecount++
        println "Old source: $it"
        it.eachLine {
            oldLOCcount++
        }
    }
}

// call closure on directories
directoryClosNew(new File( newPath ))
directoryClosOld(new File( oldPath ))
println " Old number of Java Files $oldFilecount \n New number of Java Files $newFilecount "
println " Old Lines of Code $oldLOCcount \n New Lines of Code $newLOCcount"

Schick, nicht? :-)

Labels: ,

26 März 2009

Nokia E71 mit Exchange Server verbinden

Das alte Lied, ein Nokia mit einem Exchangeserver zuverbinden: Das Nokia akzeptiert das Zertifikat nicht.

Natürlich gibt das Nokia das nicht zu, sondern fragt beim ersten Verbinden nach, ob man das Zertifikat akzeptieren will. Man stimmt den zu, macht 1001 weitere Einstellungen und versucht sich zu verbinden - Ergebnis:  "Verbindungsfehler. Versuchen Sie es später erneut."

Nach längerer Webrecherche habe ich rausgefunden, dass man sich am Besten das Rootzertifikat downloaded und mit hilfe dieses Services für sein Nokia aufbereiten lässt.

Dann nur noch auf die entsprechende URL surfen und alles akzeptieren. *Have Fun*

Labels: ,

17 März 2009

JSF, JPA und Oracle

Ziel: Eine einfache CRUD Anwendung in NetBeans 6.5 generieren.

Kontext: Ein Schema ist in der Oracle DB bereits hinterlegt. Mittels der Generate JSF-CRUD aus DB Funktion in NB soll nun eine kleine JEE Anwendung erzeugt und im Glassfisch V2 deployed werden.

Probleme:
  • Glassfish lässt sich nicht als Resource bei NetBeans einbinden -> gelöst (Bug in NB 6.5 in Kombination mit JDK 1.6 U 12, Lösung Downgrade auf JDK 1.6 U11)
  • Oracle DB Resource lässt sich in NB nicht hinzufügen -> gelöst Oracle Thin JDBC Treiber ojdbc14.jar einbinden
  • Zugriff auf OracleDB mittels TNS Name will nicht funktionieren "Unable to add Connection. Cannot establish connection to jdbc:oracle:thin:... E/A-Exception:Unknown host specified", TNSPING auf den TNS Namen funktioniert jedoch -> Lösung Oracle läuft im Cluster Betrieb, Zugriff nur über TNS auf eine bestimmte DB des Clusters möglich
  • Generierte Anwendung lässt sich nicht deployen "javax.faces.FacesException: Can't parse configuration file: jndi:/server/GUI-war/WEB-INF/faces-config.xml: Error at line 29 column 82: Error at (29, 82: java.lang.ClassNotFoundException: jpa.entities.PmAnsprechpartner
    at com.sun.faces.config.ConfigureListener.parse(ConfigureListener.java:1438)
    ..." Die Klasse ist vorhanden und sollte sich deployen lassen. Es handelt sich dabei um den ersten eintrag in der faces-config.xml-> die übliche Lösung: Projekt einstampfen und neu generieren lassen, dann ging's wieder. (dann darf man nur nicht vergessen, die alte Anwendung aus dem Server zu löschen ;-)
Achja, noch 2 nette Links bezüglich kryptischen Glassfish Stack Traces:

Labels: , , ,

21 Januar 2009

Schnee, Bergluft und gute Laune.

Nach den Anstrengungen der finalen Masterphase, ein wohlverdienter Urlaub:

Blick von Kaprun auf das Kitzsteinhorn (rechts im Bild der "Barbara Hof")

Labels: , ,

14 Januar 2009

Wir sind...

...Weltmeister!

Nunja, zumindestens ich. ;-)

Das aber richtig: Heute Kolloquium (1,0 für die Master Thesis).

*freu*

Labels: ,