Mar 03

Gestern hatte ich ein merkwürdiges Phänomen. Ich öffnete ein kleines Projekt in Eclipse und wollte es starten, jedoch erhielt ich eine unschöne Fehlermeldung: Could not find main class. Daraufhin habe ich kurz geprüft ob die Main-Methode tatsächlich richtig von mir angelegt wurde und ja das wurde sie. Es ist wirklich nur eine simple Klasse mit nichts weiter als einer Main Methode. Warum aber findet Eclipse die Methode nicht zum Ausführen?

Einige Anfragen bei Google ließen mich checken ob der Pfad zu Ant HOME richtig gesetzt ist(siehe: http://www.herrodius.com/blog/42). Der Pfad war vollkommen korrekt doch meine Main Methode wurde nach wie vor nicht gefunden. Ein anderes Projekt im gleichen Workspace lief und so fing ich an die Projekte zu vergleichen. Mit fiel auf, dass das funktionsfähige Projekt ohne Maven Dependency Management auskamen. Also deaktivierte ich das Dependency Management und probierte einen Start aus. Die Main Methode wurde nun gefunden. Danach aktivierte ich das Dependency Management wieder und welch Überraschung – das Main Methode wurde auch weiterhin gefunden.

Tagged with:
Jul 19
 

Maven IndexesHier möchte ich euch kurz mein heutiges Problemm schildern. Ich habe Eclipse Helios und über den Eclipse Marketplace Sonatype’s m2eclipse und die dazugehörigen Extras installiert. Ich habe in der Vergangenheit schon gute Erfahrungen mit dem Maven 2 Plugin gemacht. Um ein zusätzliches Repository zu dem Standard Nexus hinzufügen musste man die Maven Indexes View hervorholen. Dort konnte man komfortabel ein weiteres Repository anlegen. Heute habe ich aber nur eine View namens "Maven Repositories" gefunden und keinen Button zum hinzufügen eines weiteren Repositories. Also schaute ich bei Sonatype in die Dokumentation und die zeigte weiterhin den mir bisher bekannten Weg. Wenn die Maven Indexes View also nicht existiert, wie soll ich dann ein neues Repository hinzufügen?

Lösung: Die Maven Repository View zeigt das lokale ein globales und alle von Projekte referenzierten Maven RepositoriesRepositories an. Das heißt wenn man in die POM eines Projektes erstmal ein Repository eingetragen hat, sieht man es nach dem Speichern auch in der neuen View. Ich finde den neuen Weg persönlich weniger intuitiv als die vorherige Lösung. Zudem zeigt die Dokumentation von Sonatype noch den alten Weg.

Beispiel: Für mein jBPM 4.3 Projekt müssen folgende Zeilen in die pom.xml eingefügt werden damit das Repository mit aufgenommen wird.

 

  
     
  	jboss
  	JBoss Repository
  	http://repository.jboss.com/maven2
    
  

Danach kann wieder komfortabel in Maven Manier nach den gewünschten Dependencies gesucht werden. Da ich speziell mit jBPM 4.3 entwickle möchte ich euch die folgende Quelle ans Herz legen, die Dependencies für jBPM 4 auch nett visualisiert: http://community.jboss.org/wiki/jBPM4MavenDependencies.

Tagged with:
Oct 27

_TMT_ScreenshotIn diesem Artikel möchte ich kurz das Ergebnis von einem Projekt des letzten Semesters (Knowledge Networks and Semantic Technologies // SoSe2009 // TU Berlin) vorstellen. In dem Projekt ging es um die Analyse vorhandener E-Mails hinsichtlich der vorkommenden Themen und deren Verbreitung in dem E-Mail Netzwerk. Die Ausgangsdaten waren E-Mails vom Konkurs gegangenen US-Gas-Konzern Enron. Uns lagen knapp 70 000 Mails vor, die das entstandene Topic Map Tool auf interessante Themen untersucht und die Korrelationen von Keywords berechnet. Um wirklich interessante Themen im nicht standardisierten E-Mail Verkehr zu identifizieren, kamen Regular Expressions, Stopword-Listen sowie die Wordnet-Searching-API zum Einsatz. Mit diesen Technologien wurden relevante Keywords aus den E-Mails gesammelt und deren Korrelationen zu anderen relevanten Keywords berechnet. Ein wichtiger Faktor für die Berechnung ist, wie häufig zwei korrelierte Wörter zusammen in einer E-Mail auftauchen. Mit Hilfe von Wordnet konnten semantisch gleiche Wörter zu Clustern zusammengefasst oder gefiltert werden. Ebenso half Wordnet bei einer Filterung nach Wortarten, da vor allem Substantive interessante Schlüsselwörter sind.

Das Ergebnis der Analyse war ein Datenbank Dump, der im Commetrix Schema gespeichert wurde. So konnten die Ergebnisse mit Hilfe von Commetrix visualisiert werden. Die Ergebnisse seht Ihr auf den Screenshots weiter unten.

Exemplarisch starke Korrelationen bestanden zum Beispiel zwischen den Worten Gas und Price sowie zwischen President und Election. Unzählige weiter Beispiele könnte ich an dieser Stelle auflisten. Zusammenfassend hat die Lehrveranstaltung sehr viel Spaß gemacht und mich für das Thema semantische Netze begeistert.

 

Screenshot der Anwendung

 

image

    Screenshots der visualisierten Topic Map

     

    TMT_Screenshot05 TMT_Screenshot03

Tagged with:
Aug 17

imageVor kurzem wurde ich mal wieder gezwungen mit Netbeans zu arbeiten. Und naja was soll ich sagen. Ich habe schon immer eine gewisse Distanz zu der IDE obwohl ich in diesem Semester auch einige Bequemlichkeiten kennengelernt habe. Was mir aber aktuell passiert ist, finde ich so dämlich!!!

In meinem Java Projekt habe ich eine Datenbank Verbindung in der persistence.xml konfiguriert. So bin ich es aus Eclipse gewohnt und es funktioniert alles bestens. Die Anwendung konnte unter Netbeans jedoch keine Verbindung zu meiner Datenbank herstellen. Und nun haltet imageeuch fest: Wenn man die Datenbank in der IDE gesondert einträgt unter dem Tab "Services" ist Netbeans so schlau und erkennt, dass die Verbindung scheinbar doch richtig konfiguriert wurde und stellt die Verbindung zur Datenbank her. Warum reicht es Netbeans denn nicht wenn die Verbindung in der XML eingetragen ist? Wenn jemand von euch Details dazu hat, lasst es mich doch bitte wissen.

Tagged with:
Aug 10

An dieser Stelle möchte ich kurz eine Liste meine Eclipse Plugins präsentieren. Vielleicht ist für euch etwas neues dabei oder ihr habt unter Umständen nette Empfehlungen für mich.

Versionierung

Code Analyse:

  • JDepend: Tool zur Analyse von Architektur und Abhängigkeiten
  • PMD: Code Analyse, sucht nach potentiellen Bugs und Problemen

Codestyle:

  • Checkstyle: Regelsystem zur Einhaltung von Code Konventionen
  • JAutodoc: automatische Generierung von Javadoc Kommentaren

Testing / Code Coverage:

Build

Development

  • JBoss Tools: nützlich für die Entwicklung mit dem JBoss Application Server

 

Seid Ihr mit meiner Plugin Sammlung zufrieden oder gibt es Plugins, die hier unbedingt mit auftauchen sollten? Mir fällt noch eines ein, dass ich schon ewig nicht mehr benutzt habe – der Visual Editor. Da die Entwicklung des Visual Editors nur schleppend voran ging und die Unterstützung in neueren Eclipse Versionen nicht immer gegeben war, habe ich mich regelmäßig mit dem guten Editor von Netbeans beholfen.

Tagged with:
Jun 20

Der folgende Artikel soll helfen einen BPEL Process mit Netbeans zu erstellen und auf den Glassfish Application Server zu deployen. Doch zunächste beschreibe ich kurz das vorhaben. Der BPEL Prozess nutzt insgesamt drei Web Services (YingService, YangService und MatchService). Der YingService benötigt keinen Parameter und liefert den String "Ying" zurück. Der YangService arbeitet analog zum YingService. Diese beiden Service arbeiten parallel! Der MatchService nimmt zwei Parameter vom Typ String entgegen und konkateniert diese beiden Strings und den String "Fit". Danach wird der zusammengesetzte String vom MatchService zurückgeliefert. Die einzelnen Web Services interessieren den Benutzer des BPEL Prozesses nicht, da dieser nach außen wie ein simpler Web Service (z.B. YingService) wirkt.

Nachdem das Ziel beschrieben ist kann die Arbeit beginnen. Ich habe sehr viele Screenshots verwendet um den Weg möglichst anschaulich zu machen.

Insgesamt werden 4 Projekte angelegt. Beginnen möchte ich mit einem Projekt, dass die einzelnen WebServices (YingService, YangService und MatchService) enthält, die dann im BPEL Prozess verwendet werden.

imageDazu legen wir einfach eine neue Web Application an und fügen anschließend die drei WebServices hinzu.

 

 

 

 

 

Continue reading »

Tagged with:
Mar 24

image Mit dem folgenden einfachen Listing kann man Eclipse in einer speziellen Java Version starten. Wenn man wie ich gezwungen wird weiter mit Java 1.5 zu arbeiten aber trotzdem schon 1.6 installiert hat um up to date zu sein, kann man von der IDE bis zum Programm alles mit der alten Version starten. Dazu fügt ihr einfach den  “-vm C:\Programme\Java\jdk1.5.0_16\bin” an eure Verknüpfung an.

Dec 23
Motivation:

Der SOA Zug rollt bzw. ist eigentlich schon lange lange unterwegs und WebServices sind ein Trendthema. Ein Web Service lässt sich mit dem SOAP basierten Ansatz oder mit der REST Idee realisieren. Auf SOAP und Frameworks wie Axis2 werde ich hier nicht eingehen. Nun eine kurze Erklärung zu REST: Der größte Unterschied zu dem SOAP basierten Ansatz ist, dass es die HTTP Methoden wie GET, POST, PUT, DELETE, HEADER benutzt. In dem Glaubenskrieg zwischen den “Seifenliebhabern” und den REST-Anhängern wird das immer als Argument gebracht, dass REST als Web Service viel näher am Internet (HTTP) ist. Denn REST arbeitet wie gesagt mit den HTTP Methoden und die Daten des Service sind per Link erreichbar.

Ich habe mich vor kurzem mit der Materie auseinandergesetzt und versucht eine leichte Erklärung zu finden, die mir zeigt wie ich ein REST Projekt erstelle, es auf dem Tomcat Server zum laufen bringe und anschließend benutze. Weil ich die Ergebnisse bei der Suche nach solchen Tutorials nicht besonders befriedigend fand, dachte ich mir, es wäre an der Zeit so ein einfaches Tutorial zu schreiben.

Continue reading »

Tagged with:
Nov 08

die-neue-programmiersprache-lernenHeute habe ich eine nette Abbildung gefunden, die den natürlichen Verlauf beim Lernen einer neun Programmiersprache widerspiegelt. Leicht lassen sich die Erkenntnisse auf Frameworks einer bereits bekannten Sprache adaptieren. Denn auch in diesem Fall muss man hinter die vermeintlich absurden Gedanken anderer Entwickler steigen und ist glücklich wenn man endlich auf der gleichen geistigen Ebene gelandet ist. In diesem Sinne, geht es jetzt bei mir weiter mit EJB3, JBoss, Seam und jBPM.

 

 

 

 

 

 

Quelle: http://www.peterkroener.de/die-neue-programmiersprache-lernen/

Tagged with:
Aug 22

2007_10_22_eclipse.jpgWer es, so wie ich satt hat auf Eclipse zu warten weil der Rechner mit allen möglichen Anwendungen läuft, kann Eclipse mehr Speicher zuweisen und somit für einen zügigeren Ablauf der IDE sorgen. Die “Out-of-memory”-Exception gehört  von nun an zum alten Eisen ;-)

Gemacht wird es, in dem man der Eclipse JVM-Parameter mitgibt. Man startet die IDE mit den folgenden Parametern:

eclipse.exe -vmargs -Xms256m -Xmx256m

-Xms ist die minimal verwendete JVM-Speichergröße
-Xmx ist die maximal verwendete JVM-Speichergröße
In diesem Beispiel habe ich die Speichergröße auf 256 MB fixiert.

Weitere Informationen findet ihr unter Help/ Help Contents/ Workbench User Guide/ Tasks/ Running Eclipse

So lässt sich zum Beispiel auch die JVM einstellen, mit der Eclipse starten soll.

Tagged with:
preload preload preload