Seite auswählen

Schlagwort: Java

WebServices mit JBossWS realisieren

Zur Zeit befasse ich mit mit der Realisierung von WebServices mit JBossWS in einem JBoss AS 4.2.3.GA. Hier möchte ich kurz zusammenfassen, was ich beachtet habe und wie ich bei der Service-Implementierung vorgegangen bin. JBoss AS und Java6 Betrieben wird ein JBoss AS 4.2.3.GA (und ein 4.2.2.GA; Java 5 compiled binaries) in einer Java 6 Umgebung. Auf die Gründe, wesghalb kein JBoss AS 5.x eingesetzt wird möchte ich nicht näher eingehen und wir nehmen die Umgebung als gegeben hin. In dieser Umgebung gilt es allerdings folgenden Konfigurationshinweis aus der 4.2.3.GA Distribution zu beachten, die analog für Version 4.2.2.GA gilt: JBossAS 4.2.3.GA can be compiled with both Java5 & Java6. The Java5 compiled binary is our primary/recommended binary distribution. It has undergone rigorous testing and can run under both a Java 5 and a Java 6 runtime. When running under Java 6 you need to manually copy the following libraries from the JBOSS_HOME/client directory to the JBOSS_HOME/lib/endorsed directory, so that the JAX-WS 2.0 apis supported by JBossWS are used: jboss-jaxrpc.jar jboss-jaxws.jar jboss-jaxws-ext.jar jboss-saaj.jar jaxb-api.jar JAX-WS und JAX-RPC “JAX-WS” und “JAX-RPC” laufen einem immer wieder über den Weg, sobald man sich mit WebServices in der Java-Welt beschäftigt. Anfangs stellte sich mir die Frage, was sich hinter diesen Begriffen verbirgt und was dabei der Unterschied ist. Ich fand hierzu einen interessanten Artikel von Vamshi Rapolu in dessen Blog und ich verzichte an dieser Stelle näher auf...

Weiterlesen

JAX2010 – ich komme

Im Mai findet die diesjährige JAX statt und ich habe das Vergnügen einen Workshop-Tag und einen, evtl. sogar zwei Hauptkonferenztage besuchen zu dürfen. Wer die JAX nicht kennt, sei mit folgender Wikipedia-Erläuterung aufgeklärt: Die JAX ist eine Fachkonferenz für Softwareentwicklung und zusammen mit der OOP eine der größten Informationsveranstaltungen der IT-Branche zu diesem Thema in Deutschland. Sie findet aktuell in Mainz statt. Veranstalter der Konferenz ist der Software & Support Verlag. Der Name JAX ist ein Akronym für Java, Apache und XML.  Auf meiner Agenda stehen: Workshop Einführung in das Spring Framework 3.0 Vorträge Softwarearchäologie Developing for the Enterprise with Maven, M2Eclipse, Nexus and Hudson From Art to Engineering – Designing technical architectures for industrialized software development Text to Model to Text Prozesse, Theorien, Mythologien – …oder “Vernunft-driven Design”? 60 Minuten – mit Java EE 6 Ich weiß, das ist für einen Tag Hauptkonferenz ein sehr ambitioniertes Programm, aber solange die Vorträge interessant sind … :) Auf jeden Fall werde ich einen zusammenfassenden Artikel zu meinem JAX2010-Besuch verfassen und vielleicht ist auch der ein oder andere Vortrag einen eigenen Artikel...

Weiterlesen

Konzept zur Programmierung

In den letzten Tagen habe ich mir nach den bisher gewonnenen Erkenntnissen unter anderem ein grobes Konzept überlegt, wie eine Programmierung der Transformationen in Java aussehen könnte, das ich im Folgenden vorstellen möchte. Sehen wir uns zunächst den Inhalt des von mir modellierten Package “views” an: Zu Grunde liegt eine abstrakte Klasse Generation, deren Instanzen das Ergebnis aus von dem SUM ausgehenden Transformationen (-> ViewGenerations) repräsentieren. In den Attribute dieser Klasse werden zum einen die Repräsentation der .uml-Datei (umlFile) und zum anderen die Information, ob diese Datei verändert wurde, gespeichert (isModified). Diese Klasse wird wiederum von einer abstrakten Klasse View erweitert, die die Informationen zu der Darstellung der Daten, die in einer .umldi-Datei gespeichert werden, kapselt (umldiFile). Schließlich wird die eben genannte Klasse nochmals erweitert. Die erweiternden Klassen repräsentieren schließlich die tatsächlichen Sichten (z.B. SpecificationClassServiceView und SpecificationClassTypeView). Die eben vorgestellten Elemente werden in dem zweiten modellierten Package “transformation” verwendet, das etwas komplizierter aufgebaut ist: Ausgangselement dieses Package ist das generische Interface ViewGenerator. In Abhängigkeit des Parameters TGeneration, der die Klasse Generation erweitern muss, wird über die Methode generate() eine View aus dem SUM erzeugt. Als Parameter muss hierbei die Repräsentation der Zieldatei übergeben werden. Das Gegenstück zu dieser Methode, die die Transformation von SUM zu View repräsentiert, ist merge(). Hier wird die als Methodenparameter übergebene View wieder mit dem SUM zusammengeführt. Dieses Interface wird von einer abstrakten Klasse AbstractViewGenerator...

Weiterlesen

org.eclipse.uml2 – Erste Schritte und Erfolge

Mir war einige Zeit unklar, wie ich beginnen soll, auf programmatischem Weg eine .uml-Datei mittels des UML2-Plugins von Eclipse zu erzeugen. Zunächst einmal ein paar Infos zu Eclipse-UML2: UML2 is an EMF-based implementation of the Unified Modeling Language (UMLTM) 2.x OMG metamodel for the Eclipse platform. The objectives of the UML2 component are to provide a useable implementation of the UML metamodel to support the development of modeling tools a common XMI schema to facilitate interchange of semantic models test cases as a means of validating the specification validation rules as a means of defining and enforcing levels of compliance For more details on UML2, see the Wiki. Quelle: http://www.eclipse.org/modeling/mdt/?project=uml2Erste Schritte – aber wie? Ein hilfreicher Artikel war Getting Started with UML2, der auf zwei Wegen erklärt, wie man eine .uml-Datei mit Elementen wie Package, Class, etc. … erstellt; namlich einmal per mitgeliefertem Editor, bei dem die UML-Elemente in einer Baumstruktur angezeigt werden – so wie man das auch aus vielen grafischen Modellierungseditoren kennt – und einmal per Java-Code. “Per Java-Code” war genau das was ich gesucht habe. Nachdem ich mir die Code-Schnipsel und Erklärungen angesehen hatte, stellte sich mir die Frage, wie ich das selbst nachbauen konnte. Ich erstellte in Eclipse also ein neues Java-Projekt und fügte einfach mal einen Code-Schnipsel in die main(String[] args)-Methode ein. Natürlich meckerte Eclipse sofort, da es ja Klassen wie z.B. “Model” nicht...

Weiterlesen

XML-Datei parsen und XPath-Selektion erfolgreich

Wie verwende ich XPath in einem Java-Programm? Diese Frage stellte ich zunächst Tante Gurgel und fand den IBM-Artikel, den ich im vorigen Post bereits erwähnt hatte. Nach der Anleitung des IBM-Artikels habe ich zunächst ein neues Java-Projekt in Eclipse erstellt und im Projekt-Ordner eine Datei books.xml abgelegt, die folgenden Inhalt hat: <?xml version=”1.0″ encoding=”UTF-8″?> <inventory>   <book year=”2000″>     <title>Snow Crash</title>     <author>Neal Stephenson</author>     <publisher>Spectra</publisher>     <isbn>0553380958</isbn>     <price>14.95</price>   </book>     <book year=”2005″>     <title>Burning Tower</title>     <author>Larry Niven</author>     <author>Jerry Pournelle</author>     <publisher>Pocket</publisher>   <isbn>0743416910</isbn>     <price>5.99</price>   </book>     <book year=”1995″>     <title>Zodiac</title>     <author>Neal Stephenson</author>     <publisher>Spectra</publisher>     <isbn>0553573862</isbn>     <price>7.50</price>   </book>     <!– more books… –>   </inventory> Anschließend übernahm ich den Code aus Listing 4 in eine neu erstellte java-Datei (FirstTest.java): package de.budisantoso.da.test;   import java.io.IOException;   import javax.xml.parsers.*; import javax.xml.xpath.*;   import org.w3c.dom.*; import org.xml.sax.SAXException;   /** * @author adi * */ public class FirstTest {     /**   * @param args   * @throws ParserConfigurationException   * @throws IOException   * @throws SAXException   */   public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {     DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();     domFactory.setNamespaceAware(true); // never forget this!     DocumentBuilder builder = domFactory.newDocumentBuilder();     Document doc = builder.parse(“books.xml”);       XPathFactory xpFactory = XPathFactory.newInstance();     XPath xpath = xpFactory.newXPath();       try {       XPathExpression expr = xpath.compile(“//book /title/text()”);       Object result = expr.evaluate(doc, XPathConstants.NODESET);       NodeList nodes = (NodeList) result;       for (int i = 0; i < nodes.getLength(); i++) {         System.out.println(nodes.item(i).getNodeValue());       }     } catch (XPathExpressionException e) {       // TODO Auto-generated catch block       e.printStackTrace();     }   }...

Weiterlesen

Model-Transformation mittels Java und XPath?

Meine Idee für die programmatische Transformation aus dem Single-Underlying-Model (SUM) in eine View (z.B. Structural Specification) ist eine Kombination aus Java und XPath. Für die Rücktransformation habe ich mir bis dato aber noch keine Gedanken gemacht. Unter der Annahme, dass das SUM im XMI-Format gespeichert ist, könnte ich über XPath die Teile des XML-Baums filtern, die ich für die Transformation benötige. Dies kann dann per Java-Code weiterverarbeitet werden und daraus ein neues Model erzeugt werden, das dann wiederum in eine XMI-Datei serialisiert wird. http://www.eclipse.org/modeling/mdt/uml2/docs/articles/Getting_Started_with_UML2/article.html http://www.ibm.com/developerworks/library/x-javaxpathapi.html Ich werde diesen Ansatz testen, indem ich zunächst versuchen werde, aus einer XMI-Datei mit zwei Klassen eine zu selektieren und diese in die neue .uml-Datei zu schreiben. @Dietmar, Benjamin: Was haltet ihr...

Weiterlesen
Wird geladen