magazin Concurrency JAVA Mag Konzepte für nebenläufi ge Programmierung» 42 Java EE 6 ausgepackt Generational Garbage Collection CD-INHALT

Größe: px
Ab Seite anzeigen:

Download "magazin Concurrency JAVA Mag Konzepte für nebenläufi ge Programmierung» 42 Java EE 6 ausgepackt Generational Garbage Collection CD-INHALT"

Transkript

1 inkl. JAVA Mag CD CD-INHALT Mashups mit Flex: Implementierung eines Editors»54 magazin Java Architekturen SOA Agile JSR 330 Wie weit geht die Standardisierung wirklich?»34 Deutschland 8,50 Österreich 9,80 Schweiz sfr 16, Grails 1.2 Welche Features einen Blick wert sind»14 Alle Infos im Heft From Java to Groovy Video von der W-JAX 2009 in voller Länge HIGHLIGHT Concurrency Konzepte für nebenläufi ge Programmierung» 42 in-step Scrum Edition WEITERE INHALTE GPars Java EE 6 ausgepackt Enterprise JavaBeans 3.1» 85 Jet Profiler BlazeDS Alle CD-Infos ab Seite 3 Amazon Web Services Get into my Cloud»16 Generational Garbage Collection Memory-Management» 26

2 Enterprise Web Services mit Spring WS Zu Ihren Diensten, Monsieur Für den Datenaustausch oder das Anbieten von Diensten zwischen Anwendungen werden oft Web Services verwendet. Um einen Web Service anzubieten oder zu verwenden, gibt es sehr viele Möglichkeiten und Vorgehensweisen. Dieser dreiteilige Artikel stellt Ihnen die Möglichkeiten vor, die Spring WS Ihnen bietet. von Thorsten Kamann Quellcode auf CD as Spring Framework [1] bietet nativ eine Unterstützung für die Verwendung von Web Services. Sie können dabei das zugrunde liegende Framework selbst bestimmen, z. B. Axis [2] oder Apache XCF [3]. Artikelserie Teil 1: Basics zu Spring WS Teil 2: Spring WS und JaxB Teil 3: Spring WS und Spring Security Spring WS [4] ist ein Projekt aus dem SpringSource-Umfeld und hat das Ziel, die Entwicklung von Web Services zu vereinfachen. Dabei werden viele der etablierten JAXP-Frameworks, z. B. DOM, SAX und StAX, aber genauso JDOM, dom4j und XOM unterstützt. Darüber hinaus existiert innerhalb von Spring WS ein Modul, das für das XML-Mapping (O/X Mapper) verantwortlich zeichnet. Dieses Modul unterstützt JAXB 1/2, Castor, XMLBeans, JiBX und XStream. Das OXM-Modul ist inzwischen in das Spring Framework übernommen worden und steht somit auch für andere Anwendungen zur Verfügung. Alle Features des Spring Frameworks können hier ebenfalls genutzt werden. Das betrifft nicht nur die Konfiguration und Dependency Injection, sondern auch Sicherheitsaspekte, wenn Sie Spring Security verwenden wollen oder können. Abgerundet wird die Featureliste mit der Unterstützung für WS-Security, wenn Sie die SOAP-Nachrichten ver- und entschlüsseln oder signieren wollen. Die ganze Featureliste wird von den Entwicklern als Makes the Best 66 javamagazin

3 Web Services mit Spring WS Enterprise Practice an Easy Practice bezeichnet. Die Artikelserie wird zeigen, ob sie Recht behalten. Der erste Teil der Serie enthält die Basics zu Spring WS. Hier werden wir ein kleines Projekt entwickeln, indem Sie einen Web Service implementieren, der die Funktionsweise und Features von Spring WS beleuchtet. Der zweite Teil der Serie knüpft nahtlos an den ersten Teil an und diskutiert die Schwachstellen der Lösung. Danach werden wir gemeinsam eine bessere Lösung entwickeln. Im dritten Teil werden wir den Web Service mit Spring Security etwas sicherer machen, zusätzlich einen Blick auf die Architektur von Spring-WS-Projekten werfen und das Thema Integrationstest betrachten. Abb. 1: Der ProductService Abb. 2: Domänenmodell für den ProductService Doch nun genug geredet,... Contract First vs. Contract Last... beginnen wir mit einem Beispielprojekt. Wir wollen in diesem Projekt einen Web Service entwickeln, wie er in Abbildung 1 dargestellt ist. Der ProductService enthält lediglich eine Web- Service-Methode. Diese findet Produkte anhand der Warengruppe (Category), des Lieferanten (Supplier) und einer frei konfigurierbaren Zeitspanne (Date- Range). Das dazu gehörende Domänenmodell ist in Abbildung 2 zu sehen. Die Warengruppe (Category) und der Lieferant (Supplier) haben lediglich eine ID und name-property. Das gefundene Produkt hält Referenzen auf den Lieferanten und die Warengruppe. Auf diese beiden Referenzen komme ich später noch genauer zu sprechen. Schritt 1: Projekt erstellen Spring WS bietet einen Maven-Archetypen, auf den wir hier aber bewusst verzichten, um die Schritte besser nachvollziehen zu können, die benötigt werden, um ein solches Projekt zu erstellen. Als Erstes brauchen wir ein Eclipse-Projekt. Da dieses später auf einem Tomcat deployt werden soll, bietet sich als Projekttyp ein Dynamisches Webprojekt an. Beenden Sie den Projekt-Wizard nicht mit Finish schon auf der ersten Seite, sondern gehen Sie alle drei Seiten mit Next durch. Auf der zweiten Seite ändern Sie den Pfad zu Es gibt zwei Ansätze, wie Web Services entwickelt werden können. Entweder man beginnt, eine WSDL zu definieren und erzeugt aus dieser den benötigten Java- Quellcode (Contract First), oder man schreibt zuerst den Java-Quellcode und erzeugt daraus eine WSDL (Contract Last). Doch welche Methode ist die bessere? Wie bei Vielem kann man das nicht abschließend beantworten. Doch es gibt einige Argumente für den Contract-First- Ansatz. Definieren Sie zuerst die WSDL, dann haben Sie viel mehr Steuerungsmöglichkeiten, um die WSDL zu optimieren. Oft referenzieren Klassen ja andere Klassen, die nicht in der WSDL definiert werden sollen. Dies kann besser in einer WSDL umgangen werden. Ein anderer Punkt ist die Interoperabilität. Beschränkt man sich bei den Datentypen auf die Typen, die in einem XML Schema definiert werden können, dann wird es in den wenigsten Fällen zu Problemen in den verschiedenen Sprachen kommen, die den Web Service später konsumieren. Es gibt noch einige andere Punkte zu diesem Thema, die die Spring-WS-Entwickler unter [5] zusammengetragen haben. dem Source-Verzeichnis auf src/main/ java und auf der dritten Seite das Verzeichnis für den Web-Content auf src/ main/web. Zusätzlich brauchen Sie ein weiteres Source-Verzeichnis, das weitere Ressourcen aufnehmen kann. Nennen Sie das Verzeichnis src/main/ resources. Schritt 2: Ein XML Schema erstellen XML Schema? Wofür das denn? Spring WS geht streng nach dem Ansatz Contract-First (Kasten: Contract-First vs. Contract-Last ) vor. Deswegen benötigen Sie zuerst einen Vertrag. Dieser Vertrag, der die Schnittstelle des Web Service beschreibt, kann eine WSDL sein oder in diesem Fall ein XML Schema. Der Vorteil eines XML Schemas gegenüber einer WSDL ist, dass man sich bei der Definition des Vertrags auf die eigentliche Schnittstelle konzentrieren kann, ohne von den technischen Details einer WSDL abgelenkt zu werden. In Abbildung 3 sehen Sie eine Darstellung des Schemas. Da wir lediglich eine Web-Service-Methode anbieten wollen, brauchen wir auch nur ein Ele- Abb. 3: Schematische Darstellung des verwendeten XML- Schemas javamagazin

4 Enterprise Web Services mit Spring WS Listing 1 ment. Im Sinne der Namensgebung in WSDLs nennen wir das Element hier ProductRequest. Wie in Abbildung 1 zu sehen ist, benötigt dieser Request drei <?xml version="1.0" encoding="utf-8"?> <schema targetnamespace="http://www.itemis.de/hoa/ spring/ws/product"elementformdefault="qualified" xmlns="http://www.w3.org/2001/xmlschema" xmlns:p="http://www.itemis.de/hoa/spring/ws/product"> <element name="productrequest"> <complextype> <all> <element name="category" type="p:categorytype" /> <element name="supplier" type="p:suppliertype"> </element> <element name="daterange" type="p:daterange"> </element> </all> </complextype> </element> <complextype name="categorytype"> <sequence> <element name="id" type="int"></element> <element name="name" type="string"></element> </sequence> </complextype> <complextype name="suppliertype"> <sequence> <element name="id" type="int"></element> <element name="name" type="string"></element> </sequence> </complextype> <complextype name="daterange"> <sequence> <element name="startdate" type="date"></element> Parameter: Category, Supplier und Date- Range. Diese werden in dem Schema als anonyme komplexe Datentypen angelegt. Diese Typen bekommen noch die <element name="enddate" type="date"></element> </sequence> </complextype> </schema> Listing 2 public class ProductService { public List<Product> findproductsforsupplierandcategory InDateRange( Category category, Supplier supplier, DateRange daterange) { List<Product> products = new ArrayList<Product>(); products.add(new Product(12345, "Product1", category, supplier)); products.add(new Product(12346, "Product2", category, supplier)); return products; Listing 3 <dependencies> <dependency> <groupid>org.springframework.ws</groupid> <artifactid>spring-ws-core</artifactid> <version>1.5.8</version> </dependency> <dependency> <groupid>org.jdom</groupid> <artifactid>jdom</artifactid> <version>1.1</version> </dependency> </dependencies> Abb. 4: Dialog zum Aktivieren des Maven- Dependency- Managements benötigten Attribute (Abb. 2), und fertig ist das Schema (Listing 1). Das Schema speichern Sie am besten unter src/main/resources/meta-inf/ schema/products.xsd. Schritt 3: Domänenmodell und Serviceklasse implementieren Insgesamt müssen Sie dafür fünf Klassen implementieren. Wir verzichten für dieses Beispiel komplett auf Interfaces. Die vier Domänenklassen sind einfache PO- JOs mit Gettern und Settern. Diese finden Sie natürlich schon implementiert in dem mitgelieferten Beispiel. Die Serviceklasse implementiert die eigentliche Businesslogik. In einem realen Projekt würde die Servicemethode über Datenzugriffskomponenten auf eine Datenbank zugreifen und die in Frage kommenden Produkte dort abfragen. Für dieses Beispiel habe ich es uns etwas einfacher gemacht und gebe immer eine Liste mit zwei Produkten zurück (Listing 2). Schritt 4: Maven konfigurieren Bisher haben wir nur die Bordmittel der JVM verwendet. Der nächste Schritt ist allerdings die Implementierung des Endpoints. Der Endpoint ist die Instanz, die die Anfragen von einem Web- Service-Konsumenten beantwortet. In diesem Teil verwenden wir JDOM, um die Anfrage zu analysieren und aus dem SOAP-Body die benötigten Daten zu extrahieren. Außerdem greifen wir zum ersten Mal auf Spring-WS-Funktionen zurück. Um die benötigten Bibliotheken in das Projekt zu integrieren, verwenden wir Maven. Dazu aktivieren wir für unser Projekt das Maven Dependency Management (Rechtsklick auf Projekt Maven Enable Dependency Management). Daraufhin erscheint ein Dialogfenster, wie in Abbildung 4 zu sehen ist. Tragen Sie hier die gewünschten Daten ein und klicken auf Finish. Um den Endpoint zu implementieren, benötigen wir zuerst nur zwei Abhängigkeiten: spring-ws-core jdom Mit Maven ist es sehr einfach, diese Abhängigkeit hinzuzufügen. Sie brauchen 68 javamagazin

5 Anzeige

6 Enterprise Web Services mit Spring WS Listing 4 Abb. 5: Typhierarchie des Interfaces Payload- Endpoint nur die pom.xml und in dem POM-Editor die Quellansicht zu öffnen (der rechte Tab mit der Beschriftung pom.xml). Dort fügen Sie den Inhalt aus Listing 3 ein. Nun haben Sie alles beisammen, um mit der Implementierung des Endpoints zu beginnen. Schritt 5: Implementierung des Endpoints Ein Endpoint wird benötigt, damit die Anfragen beantworten werden können. public class ProductServiceEndpoint extends private XPath categoryexpression; private Namespace namespace; private XPath supplierexpression; private XPath daterangeexpression; AbstractJDomPayloadEndpoint { public ProductServiceEndpoint () throws JDOMException { namespace = Namespace.getNamespace("prod", "http://www.itemis.de/hoa/spring/ws/product"); categoryexpression = XPath.newInstance("//prod:Category"); categoryexpression.addnamespace(namespace); supplierexpression = XPath.newInstance("//prod:Supplier"); supplierexpression.addnamespace(namespace); daterangeexpression = XPath.newInstance ("//prod:daterange"); protected Element invokeinternal(element requestelement){ return null ; Listing 5 Der Endpoint muss den SOAP-Request verarbeiten können und auch wissen, was er mit den Daten anfangen soll. Damit Spring WS eine Klasse als Endpoint erkennt, muss diese das Interface org. springframework.ws.server.endpoint. PayloadEndpoint implementieren. Aber Spring wäre nicht Spring (das gilt auch für Spring WS), wenn es da nicht schon was vorbereitet hätte. Es gibt schon einige abstrakte Implementierungen, die Sie direkt verwenden können und die Ihnen viel Arbeit ersparen. Abbildung 5 zeigt die verfügbaren Implementierungen. Da wir für diesen Artikelteil jdom verwenden wollen, benutzen wir die AbstractJDomPayloadEndpoint-Implementierung. Die einzige Methode, die wir implementieren müssen, ist die protected Element invokeinternal(element requestelement) throws Exception {. Listing 4 zeigt eine erste Implementierung unseres Endpoints. Im Konstruktor des Endpoints definieren wir schon die protected Element invokeinternal(element requestelement) throws Exception { Category category = null; Supplier supplier = null; DateRange daterange = null; Element categoryelement = (Element) categoryexpression.selectsinglenode(requestelement); category = new Category(); category.setid(integer.parseint (categoryelement.getchildtext("id", namespace))); category.setname(categoryelement.getchildtext ("name", namespace)); Element supplierelement = (Element) supplierexpression.selectsinglenode(requestelement); supplier = new Supplier(); supplier.setid(integer.parseint (supplierelement.getchildtext("id", namespace))); supplier.setname(supplierelement.getchildtext("name", namespace)); SimpleDateFormat dateformat = new SimpleDateFormat ("MM-dd-yy"); Element daterangeelement = (Element) daterangeexpression.selectsinglenode(requestelement); daterange = new DateRange(); daterange.setstartdate(dateformat. parse(daterangeelement.getchildtext( "startdate", namespace))); XPath Expressions, mit denen wir später den Body des SOAP-Requests parsen wollen, um an die notwendigen Daten zu kommen. Die Methode invokeinternal bekommt als Parameter den Body des SOAP-Requests. Mit den drei XPath Expressions werden die Elemente für die drei Parameter für die Servicemethode ermittelt. Doch halt! Wie rufen wir diese Servicemethode überhaupt auf? Wir haben noch keine Referenz auf die Serviceklasse. Das erledigen wir schnell, indem wir ein Feld und eine zugehörige Setter-Methode für den ProductService definieren. Nachdem dies erledigt ist, können wir uns der Implementierung der invokeinternal-methode widmen. Der eigentliche Serviceaufruf geschieht mit Java-Mitteln, d. h. aus den Daten des SOAP-Bodys müssen die entsprechenden Objekte erzeugt werden. In Listing 5 finden Sie eine mögliche Lösung dieser Aufgabe. Die Vorgehensweise ist einfach. Erst wird das Element mit der XPath Expression (z. B. Category) ermittelt. Die Properties der zugehörigen Klasse werden dann mit der Funktion get- ChildText ermittelt. Etwas aufwändiger ist die Erzeugung des DateRange-Objekts. Hier müssen wir den Inhalt der Kindelemente in ein Datum wandeln. Dazu können Sie am besten das Simple- DateFormat aus dem java.text Package verwenden. Nun ist es an der Zeit, den Service mit den frisch erstellten Objekten abzufragen: List<Product> products = productservice.findproductsforsupplierandcategoryindaterange (category, supplier, daterange); Jetzt ist das Meiste schon getan. Wir haben eine Liste mit den gefundenen Produkten. Allerdings stellt uns diese Liste vor einige Probleme. Wenn Sie sich das Klassendiagramm aus Abbildung 2 noch einmal ansehen, erkennen Sie, dass die Klasse Product Referenzen auf Category und Supplier hält. Da die Methode invokeinternal ein jdom- Element als Rückgabe liefert, muss der ganze Objektbaum, der an dem Product hängt, in XML bereitgestellt werden. Diesen Vorgang nennt man 70 javamagazin

7 Web Services mit Spring WS Enterprise Marshalling. Spring WS liefert einen leistungsfähigen O/X Mapper. Wie bei Spring üblich, ist dies nur eine Abstraktionsschicht über vorhandene Frameworks: JAXB 1 und 2 Castor XMLBeans JiBX XStream Um nun in unserem Endpoint einen Marshaller zu verwenden, reicht es, ein Feld vom Typ org.springframework. oxm.marshaller (ist ein Interface) und die zugehörige Setter-Methode zu erstellen. Im nächsten Schritt erstellen wir die zugehörige Spring-Konfiguration, die eine konkrete Implementierung in unseren Endpoint injiziert. Das Interface hat nur folgende interessante Methode: Spiel. Einmal die abstrakte Klasse AbstractJDomPayloadEndpoint, mit der wir unseren Endpoint erweitert haben. Das andere Mal als wir den Marshaller des Spring O/X Mappers verwendeten. Doch nun ist es an der Zeit, sämtliche Komponenten miteinander zu verdrahten. Es gibt zwei Klassen, die typische Spring Beans sind: die ProductServiceund die ProductServiceEndpoint-Klasse. Der ProductServiceEndpoint hält eine Referenz auf den ProductService. Somit muss dies ebenfalls in der Spring- Konfiguration abgebildet werden (Listing 7). Diese Spring-Konfiguration können wir als spring-ws-servlet.xml unter ME- TA-INF/spring abspeichern. Im nächsten Schritt wird die web.xml dahingehend konfiguriert, dass diese Datei beim Start der Anwendung herangezogen und der Spring-Kontext aufgebaut wird. Zusätzlich ist bereits der Marshaller injiziert worden. Der CastorMarshaller kommt ohne jegliche weitere Konfiguration aus. Erst wenn das XML-Format, in das der Marshaller die Objekte bereitstellen soll, angepasst werden muss, kann der CastorMarshaller konfigurativ angepasst werden. Neben den beiden Klassen, die jetzt miteinander verdrahtet wurden, müssen noch der Endpoint und die WSDL- Generierung konfiguriert werden. Die Konfiguration des Endpoints ist recht einfach mit einem Mapping zwischen Namespace und der konfigurierten Bean hergestellt. Optional können Sie noch einen Logging Interceptor hinzufügen (Listing 8). In Listing 9 sehen Sie die Konfiguration für die automatische WSDL- Generierung. Über die Properties port- TypeName und locationuri können Sie die generierte WSDL beeinflussen. Im nächsten Schritt sehen Sie noch, wie die void marshal(object graph, javax.xml.transform. Result result) throws XmlMappingException, IOException; Um diese Methode aufzurufen, brauchen wir lediglich das Objekt, das in XML bereitgestellt werden soll und eine Implementierung des Interface javax. xml.transform.result. jdom liefert bereits eine passende Implementierung dieses Interface, sodass wir die Methode nur um einige Zeilen erweitern müssen (Listing 6). Damit der Endpoint nun verwendet werden kann, brauchen wir noch ein paar weitere Bibliotheken. Die wichtigsten davon sind Castor und Jaxen. Castor ist für das Marshalling zuständig und Jaxen wird für die Auswertung der XPath Expressions benötigt. Allerdings ist die pom.xml von Jaxen nicht sonderlich gut gepflegt. Aus diesem Grund müssen einige Abhängigkeiten, die Jaxen definiert, ausgeschlossen werden. Die vollständige pom.xml kann auf der Heft-CD eingesehen werden. Schritt 6: Spring konfigurieren Bisher haben wir von Spring recht wenig gesehen. Die erstellten Klassen waren allesamt POJOs. Lediglich zweimal kamen schon Spring-Artefakte ins Listing 6 protected Element invokeinternal(element requestelement) throws Exception { JDOMResult result = new JDOMResult(); marshaller.marshal(products, result); return (Element) result.getresult().get(0); Listing 7 <beans xmlns="http://www.springframework.org/schema/ beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/ schema/beans beans/spring-beans-2.5.xsd"> <bean id="productservice" class="de.itemis.hoa.spring.ws.service.productservice"/> <bean id="productserviceendpoint" class="de.itemis.hoa.spring.ws.endpoint. ProductServiceEndpoint"> <property name="productservice" ref="productservice"/> <property name="marshaller" ref="castormarshaller"/> </bean> <bean id="castormarshaller" class="org.springframework.oxm.castor.castormarshaller"/> </beans> Listing 8 <bean class="org.springframework...mapping. PayloadRootQNameEndpointMapping"> <property name="mappings"> <props> <prop key="{http://www.itemis.de/hoa/spring/ws/product ProductRequest"> ProductServiceEndpoint</prop> </props> </property> <property name="interceptors"> <bean class="org.springframework...interceptor. PayloadLoggingInterceptor"/> </property> </bean> Listing 9 <bean id="product" class="org.springframework.ws.wsdl.wsdl11. DefaultWsdl11Definition"> <property name="schema" ref="schema" /> <property name="porttypename" value="productresource" /> <property name="locationuri" value="/productservice/" /> <property name="targetnamespace" value="http://www.itemis.de/hoa/spring/ws/product/ definitions" /> </bean> <bean id="schema" class="org.springframework.xml.xsd. SimpleXsdSchema"> <property name="xsd" value="classpath:meta-inf/schema/ Product.xsd" /> </bean> javamagazin

8 Enterprise Web Services mit Spring WS locationuri an die wirkliche Serverumgebung angepasst werden kann. Die Klasse DefaultWsdl11Definition bietet noch einige andere Konfigurationsparameter, die Sie im entsprechenden Javadoc nachlesen können. Schritt 7: Konfiguration des Web Descriptors Anwendung enthält noch keinen Clientcode. Wir können den Web Service nicht ausprobieren. Jetzt kommt SoapUI [6] ins Spiel. SoapUI ist ein Web-Service-Testing-Tool. Damit können SOAP-Requests abgesetzt werden und genau diese Funktion verwenden wir auch, um den Web Service aufzurufen. Im Beispielprojekt finden Sie ein Verzeichnis soapui. Die dort enthaltene XML-Datei ist ein SoapUI-Projekt. Wenn Sie dieses Projekt öffnen, finden Sie links im Navigator einen vorbereiteten Request. Diesen können Sie ausführen und erhalten einen Response mit zwei Products. Mit dem Testing-Tool SoapUI können SOAPRequests abgesetzt werden. Der letzte Schritt ist es, den Web Descriptor (web.xml) zu konfigurieren. Die web.xml befindet sich im Verzeichnis src/main/web/ WEB-INF. In dieser web.xml werden nur das MessageDispatcherServlet aus dem Spring WS Framework und die zugehörigen Mappings konfiguriert (Listing 10). Das MessageDispatcherServlet hat in unserem Beispiel zwei Parameter: contextconfiglocation und tarnsformwsdllocations. Der erste Parameter gibt an, wo die initiale Kontextkonfiguration zu finden ist. In unserem Beispiel ist das die spring-ws-servlet.xml, die wir im vo- Listing 10 <web-app id="webapp_id" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee <display-name>product Catalogue Service</display-name> rangegangenen Schritt erstellt haben. Der zweite Parameter ist fast noch interessanter. Hiermit können Sie angeben, ob die URIs, die in der WSDL enthalten sind, so umgewandelt werden, dass der aktuelle Servername, Port und Anwendungsname enthalten sind. Schritt 8: Starten der Webanwendung und Testen des Web Service mit SoapUI In den letzten 7 Schritten haben wir eine Anwendung erstellt, die einen Web Service zur Verfügung stellt. Der letzte Teil unseres Vorhabens besteht darin, die Anwendung auf einem Tomcat zu deployen. Mit Eclipse geht das sehr einfach mit Run as... Run On Server. Die Server-Runtime haben Sie bereits bei der Erstellung des Projekts festgelegt. Die Anwendung wird automatisch auf dem Server deployt und gestartet. Nach wenigen Sekunden ist das erledigt. Ein Aufruf des URLs articles-spring-ws-dom/productservice/ product.wsdl zeigt die von Spring WS generierte WSDL. Doch was nun? Die Zusammenfassung In diesem ersten Teil der Artikelserie haben wir bereits einen funktionsfähigen Web Service erstellt. Allerdings sind viele Dinge noch nicht optimal. Zum einen haben wir noch keinen richtigen Client. Zum anderen arbeiten wir direkt auf dem SOAP-Body. Das ist bei größeren Requests nicht zielführend. Viel lieber wollen wir direkt mit JavaObjekten arbeiten. Deswegen werden wir im nächsten Teil den Web Service auf JAXB 2 umstellen und einen Client implementieren, sodass wir SoapUI nicht mehr für das Testen der Anwendung brauchen. <servlet> <servlet-name>spring-ws</servlet-name> <servlet-class> org.springframework.ws.transport.http.messagedispatcherservlet </servlet-class> <init-param> <param-name>contextconfiglocation</param-name> <param-value> classpath:meta-inf/spring/spring-ws-servlet.xml </param-value> Thorsten Kamann ist als Softwarearchitekt und als Coach bei itemis tätig. Seine Schwerpunkte sind webbasierte Technologien, MDSD, leichtgewichtige und flexible Architekturen und Open Source. Er ist Project Lead bei der Fornax Platform, einer Plattform für die Entwicklung von MDSD-related Tools und Groovy Commiter. Darüber hinaus schreibt er Bücher, veröffentlicht regelmäßig Artikel in Fachmagazinen und hält Vorträge auf Fachkonferenzen zu obigen Themen. </init-param> <init-param> <param-name>transformwsdllocations</param-name> <param-value>true</param-value> Links & Literatur </init-param> [1] </servlet> [2] <servlet-mapping> <servlet-name>spring-ws</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app> [3] [4] [5] why-contract-first.html [6] [7] 72 javamagazin

Praktikum Spring MVC. 1.2. Spring integrieren In der pom.xml Einträge für Spring hinzufügen.

Praktikum Spring MVC. 1.2. Spring integrieren In der pom.xml Einträge für Spring hinzufügen. Praktikum Spring MVC Aufgabe 1 Im ersten Teil des Praktikums wird eine Test Webapplikation entwickelt, anhand derer einige Konzepte von Spring nachvollzogen werden können. Dabei handelt es sich um Spring

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Auszug aus Axis2 Übungen

Auszug aus Axis2 Übungen Auszug aus Axis2 Schulung -1- Auszug aus Axis2 Übungen Version 1.1 Dieses Dokument ist ein Auszug aus unserem Übungsskript zur Axis2-Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen.

Mehr

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS)

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS) Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Automatisierung, Betrieb, Middleware Einleitung Der Oracle Fusion Middleware Stack beinhaltet eine leistungsstarke

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services:

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services: 0BBA Karlsruhe, Vorlesung Programmieren, Web Services 1BAufgabe 1 Tomcat um das AXIS-Framework erweitern : Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz

Mehr

Java Web Services mit Apache Axis2

Java Web Services mit Apache Axis2 Thilo Frotscher, Marc Teufel, Dapeng Wang Java Web Services mit Apache Axis2 ntwickier Vorwort 13 Wer sollte dieses Buch lesen? 14 Aufbau 14 Wichtiger Hinweis zu den Listings 16 Feedback 16 Danksagung

Mehr

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln version: 0.1 Author: Anja Beuth Table of contents 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Bean-Mapping mit MapStruct

Bean-Mapping mit MapStruct Machst Du noch Reflection oder annotierst Du schon? Bean-Mapping mit MapStruct Thomas Much thomas@muchsoft.com www.muchsoft.com 1 20 Jahre Java, 18 Jahre Beans JavaBeans JAXBEntities 2015 2006 2005 2000

Mehr

WebService in Java SE und EE

WebService in Java SE und EE Schlüsselworte Java, JAX-WS, JAX-RS, JAXB, XML. Einleitung WebService in Java SE und EE Wolfgang Nast MT AG Ratingen Es werden die Mölichkeiten von WebServices in Java SE und EE, mit SOAP und REST gezeigt.

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

Asynchrone Webservices mit Axis 1.x in Java

Asynchrone Webservices mit Axis 1.x in Java Asynchrone Webservices mit Axis 1.x in Java 1. Übersicht Architektur Da Webservices nach relativ kurzen Timeouts Anfragen abgearbeitet haben müsse, sind komplexe Anfragen wie sie in der Bioinformatik üblich

Mehr

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire Integration von Web Services in J EE Anwendungen mit XFire 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire univativ : = Umsetzung durch Studenten und Young Professionals.

Mehr

Java Web Services mit Apache Axis2 Entwickler

Java Web Services mit Apache Axis2 Entwickler Thilo Frotscher, Dapeng Wang, Marc Teufel Java Web Services mit Apache Axis2 Entwickler Vorwort 15 1 Einleitung 25 1.1 Entstehung 26 1.2 Unterstützte Standards 28 1.3 Was beinhaltet Axis2? 29 1.4 Warum

Mehr

FH LU JEE Vorlesung SS 2010. Ralf Gitzel ralf_gitzel@hotmail.de

FH LU JEE Vorlesung SS 2010. Ralf Gitzel ralf_gitzel@hotmail.de FH LU JEE Vorlesung SS 2010 Ralf Gitzel ralf_gitzel@hotmail.de 1 Einführung + Organisatorisches Ralf Gitzel ralf_gitzel@hotmail.de 2 Dozent Dr. Ralf Gitzel Promotion an der Universität Mannheim in Wirtschaftsinformatik

Mehr

Architektur im Kontext der Cloud: Patterns und Best Practices 62. Logging. Auswirkung moderner Architektur auf den Betrieb 32

Architektur im Kontext der Cloud: Patterns und Best Practices 62. Logging. Auswirkung moderner Architektur auf den Betrieb 32 Architektur im Kontext der Cloud: Patterns und Best Practices 62 JAVA Mag Sonderdruck 11.2014 magazin Java Architekturen Web www.javamagazin.de Apache DeltaSpike Portabilität und Community 16 Der Rest

Mehr

Auszug aus JAX-WS Folien

Auszug aus JAX-WS Folien Auszug aus JAXWS Folien Dieses Dokument ist ein Auszug aus unserem Skript zur Java Web Services Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Thomas Bayer Hauptstraße 33 75050 Gemmingen

Mehr

Axis2, CXF und JAX-WS RI im Vergleich

Axis2, CXF und JAX-WS RI im Vergleich Axis2, CXF und JAX-WS RI im Vergleich predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Inhalt Einführung Die Standards: JAXB, JWS, JAX-WS Axis2 CXF JAX-WS RI /

Mehr

Angewandte Softwareentwicklung Serialisierung

Angewandte Softwareentwicklung Serialisierung Angewandte Softwareentwicklung Serialisierung WS 2014/2015 Markus Berg Hochschule Wismar Fakultät für Ingenieurwissenschaften Bereich Elektrotechnik und Informatik markus.berg@hs-wismar.de http://mmberg.net

Mehr

Vertiefte Grundlagen Graphentheorie

Vertiefte Grundlagen Graphentheorie Bauinformatik Vertiefte Grundlagen Graphentheorie 6. Semester 8. Übung Webservices Technische Umsetzung am Beispiel Flächenträgheitsmoment äg e e und Biegemoment e Benutzte Software ECLIPSE: Programmierumgebung

Mehr

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring Dennis Schulte / Tobias Flohre Enterprise Java Batch mit Spring Dennis Schulte Düsseldorf @denschu www.github.com/denschu blog.codecentric.de/author/dsc tel +49 (0) 1515 _ 288 2395 dennis.schulte@codecentric.de

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool JBoss vorbereiten Wir haben ein zip-archiv mit JBoss 4.0.5 in /opt/jboss-4.0.5.zip hinterlegt. Entpacken Sie dieses in ihrem Homeverzeichnis an

Mehr

Operation am offenen Herzen

Operation am offenen Herzen Operation am offenen Herzen Case Study zur erfolgreichen JEE-7 Migration Dirk Ehms, GameDuell GmbH GameDuell Plattform Topologie Classic Platform Social Platform 64x Frontend Server OpenMQ 16x Frontend

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

4 Arbeiten mit einfachen Actions

4 Arbeiten mit einfachen Actions 29 4.1 Das»C«in Model-View-Controller Der Controller ist der Mechanismus, der den Applikationsfluss verwaltet. In Struts wird diese Managementrolle von einem zentralen ActionServlet übernommen. Die Regeln

Mehr

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server Starten und Auswahl des Workspaces Starten Sie Eclipse als die Entwicklungsumgebung. Wählen Sie als Workspace

Mehr

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder Michael Greifeneder OSGi The Next Generation Java Service Platform SOA - The Java Way or My classpath is killing me Bilder von Peter Kriens W-JAX Keynote 2007 und Neil Bartletts Getting Started with OSGi

Mehr

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:

Mehr

PROKOM Web Service Schnittstelle

PROKOM Web Service Schnittstelle PROKOM Web Service Schnittstelle PROKOM WS Seite 1 von 15 Versionsgeschichte Aktuelle Version: 0.1 Datum: 01.03.2011 Versions Versionsdatum Zusammenfassung der Änderungen nummer Änderungen markiert 0.1

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE

DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE DOKUMENTATION MAAS - MONITORING AS A SERVICE DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE Dokumentation MaaS - Monitoring as a Service Inhalt 1. MaaS - Monitoring as Service... 3 1.1 Einleitung...

Mehr

Webtests mit Selenium, Groovy, TestNG und Maven

Webtests mit Selenium, Groovy, TestNG und Maven mit Selenium, Groovy, TestNG und Maven Im ersten Teil dieser Artikelserie [1] wurden Testkonzepte und Selenium [2] näher vorgestellt. Dieser zweite Teil stellt die Integration in ein Projekt vor und rundet

Mehr

E-Business Architekturen

E-Business Architekturen E-Business Architekturen Übung 3b Entwicklung eigener Service-Angebote 01.03.2015 Prof. Dr. Andreas Schmietendorf 1 Ziele der Übung Möglichkeiten zur Serviceimplementierung (ggf. auch Cloud) Umgang mit

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Definition Web Service

Definition Web Service Gliederung Einführung Definition Web Service Drei Schhichtenmodell Architectural Model System Model Web Service Standards SOAP WSDL UDDI Types of Web Services Programmatic Web Services Interactive Web

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Projekt Weblog :: Integration

Projekt Weblog :: Integration Projekt Weblog :: Integration Die Implementation des Formhandling Frameworks wird nun im Projekt Weblog integriert. Dafür stehen 2 Möglichkeiten zur Auswahl. Sie haben Ihre eigene Implementation der Actions,

Mehr

JAXB 2.0. Ein Programmiertutorial für die Java Architecture for XML Binding. von Samuel Michaelis, Wolfgang Schmiesing. 1. Auflage

JAXB 2.0. Ein Programmiertutorial für die Java Architecture for XML Binding. von Samuel Michaelis, Wolfgang Schmiesing. 1. Auflage JAXB 2.0 Ein Programmiertutorial für die Java Architecture for XML Binding von Samuel Michaelis, Wolfgang Schmiesing 1. Auflage JAXB 2.0 Michaelis / Schmiesing schnell und portofrei erhältlich bei beck-shop.de

Mehr

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann Sitzungszustand Gruppierung von Anfragen zu Sitzungen (Sessions) Klasse HttpServletRequest Methode HttpSession getsession (bool create) liefert aktuelle Sitzungsobjekt Zustand lokal zur Anwendung (ServletContext)

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Application Frameworks

Application Frameworks Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung

Mehr

Buildsystem. Maven & Scons. Controls Entwicklungsforum Januar 2012

Buildsystem. Maven & Scons. Controls Entwicklungsforum Januar 2012 Buildsystem Maven & Scons Controls Entwicklungsforum Januar 2012 1 2 a call from the past Binary Repository Speichern von Artefakten (z.b. Shared Library und zugehörige Header) Versionierung von Artefakten

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Inhalt: Konfiguration: web.xml ; server.xml Workflow: Weiterleitung von Requests Lektion II-IV Lektion V-VI

Inhalt: Konfiguration: web.xml ; server.xml Workflow: Weiterleitung von Requests Lektion II-IV Lektion V-VI Servlet II Inhalt: Konfiguration: web.xml ; server.xml Workflow: Weiterleitung von Requests Lektion II-IV Lektion V-VI 3-1 1. Grundlagen 2. Servlets 3. JSP 4 1.1. JAR Files 4 1.2. TCP/IP, Sockels 4 1.3.

Mehr

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Web Services vertraut. Der Web Service

Mehr

.NET-Networking 2 Windows Communication Foundation

.NET-Networking 2 Windows Communication Foundation .NET-Networking 2 Windows Communication Foundation Proseminar Objektorientiertes Programmieren mit.net und C# Fabian Raab Institut für Informatik Software & Systems Engineering Agenda Grundproblem Bestandteile

Mehr

Hivemind Ein leichtgewichteter Container

Hivemind Ein leichtgewichteter Container Hivemind Ein leichtgewichteter Container Manfred Wolff, wolff@manfred-wolff.de, www.manfred-wolff.de Container sind Laufzeitumgebungen für Objekte. Der mächtigste Container im Java-Umfeld der EJB Container

Mehr

Dokumentation zur Verwendung eines SOAP-Webservices in SAP PI

Dokumentation zur Verwendung eines SOAP-Webservices in SAP PI Betriebswirtschaftliche Anwendungen 2: Serviceorientierte Anwendungsintegration Dokumentation zur Verwendung eines SOAP-Webservices in SAP PI Umrechnung von Währungen Steffen Dorn, Sebastian Peilicke,

Mehr

WCF Services in InfoPath 2010 nutzen

WCF Services in InfoPath 2010 nutzen WCF Services in InfoPath 2010 nutzen Abstract Gerade wenn man schreibend von InfoPath aus auf eine SQL-Server Datenbank zugreifen will, kommt man quasi um einen Web Service nicht herum. In diesem Post

Mehr

JSF (JavaServer Faces) Erstellen einer Webseite

JSF (JavaServer Faces) Erstellen einer Webseite Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski JSF (JavaServer Faces) Erstellen einer Webseite Dipl. Inf. Manuel Götz Dipl. Inf.

Mehr

Java Web Services Metadata JSR-181

Java Web Services Metadata JSR-181 Java Web Services Metadata JSR-181 Dieses Dokument ist ein Auszug aus unserem Skript zur Java Web Services Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Thomas Bayer Albertus-Magnus-Str.

Mehr

Architektur des agimatec-validation Frameworks

Architektur des agimatec-validation Frameworks Development : Implementierung Validierungskonzept (Dokumentation) This page last changed on Apr 03, 2008 by roman.stumm. Architektur des agimatec-validation Frameworks Generierung der Metainformationen

Mehr

Java Server Pages 2 und Benutzerdefinierte Tags. Strahil Yordanov

Java Server Pages 2 und Benutzerdefinierte Tags. Strahil Yordanov Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov Überblick Einleitung JSP im Kontext von J2EE JSP2 Benutzerdefinierte Tags Zusammenfassung Einleitung Java Server Pages ist eine Technik

Mehr

ESB. Open Source ESB: Mule Flightreservation. Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus]

ESB. Open Source ESB: Mule Flightreservation. Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus] ESB Open Source ESB: Mule Flightreservation Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus] Inhalt 1. Open Source ESB: Mule... 2 1.1. Überblick... 2 1.1.1. Das Beispiel Zeigt:... 2 1.2. Installationsanleitung...

Mehr

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,

Mehr

XML und SOAP Einführung und Grundlagen

XML und SOAP Einführung und Grundlagen XML und SOAP Einführung und Grundlagen Matthias Böhmer 16.12.2005 Agenda 1. XML 2. SOAP 3. Seife im Buchladen?! E-Commerce :: XML und SOAP Matthias Böhmer 16.12.2005 2 XML :: Einführung (1) extensible

Mehr

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Java Forum Stuttgart 2008

Java Forum Stuttgart 2008 Professionelle Open Source SOA in 45 Minuten! Java Forum Stuttgart 2008 Dr. Halil-Cem Gürsoy, CDI AG Der Referent Insgesamt ca. 10 Jahre Beratung, davor Forschung Senior Consultant - JEE Evangelist Hauptsächlich

Mehr

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes 1 XSS: Cross-Site Scripting 1.) Es gelangen Daten in den Web-Browser, die Steuerungsinformationen

Mehr

Web-Services Implementierung

Web-Services Implementierung Web-Services Implementierung Praktikum Informationsintegration 8.11.2005 Agenda Aktueller Stand / Abgabe Implementierung Wie geht das mit Java und Tomcat? Service Client 2 Abgabe Teil 1 Ein paar Zahlen

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Programmierung von Client/Server- Anwendungen

Programmierung von Client/Server- Anwendungen Programmierung von Client/Server- Anwendungen Komponenten des Web-Containers (Java EE) SoSe2015 Prof. Dr. Andreas Schmietendorf 1 Übersicht zur Vorlesung Entwicklung der Java Enterprise Edition Servlets,

Mehr

JAX-RS 2.0 REST mit Java EE 7

JAX-RS 2.0 REST mit Java EE 7 Enterprise Java, Web Services und XML JAX-RS 2.0 REST mit Java EE 7 Java User Group Darmstadt 13. Juni 2013 http://www.frotscher.com thilo@frotscher.com Vorstellung Freiberuflicher Softwarearchitekt und

Mehr

Application Server und Continuous Integration

Application Server und Continuous Integration Application Server und Continuous Integration Outline 2 Einleitung Application Server Java EE Enterprise Applikationen vs. Web Applikationen Web Application Life Cycle Servlets JavaServer Pages verschiedene

Mehr

25 Import der Beispiele

25 Import der Beispiele 25 Import der Beispiele Versuch es nicht mit Gewalt. Nimm einfach einen größeren Hammer (Murphy s Law) 25.1 Einleitung Alle Beispielprogramme dieses Buchs funktionieren mit jeder Java-konformen Entwicklungsumgebung.

Mehr

PL/SQL Web-Services mit Oracle 11g

PL/SQL Web-Services mit Oracle 11g DOAG 2008 Konferenz 01. - 03.12.2008 Nürnberg Markus Fiegler ORDIX AG, Paderborn mf@ordix.de www.ordix.de Agenda SOA und Web-Services im Überblick Datenbank als Web-Services Provider - Alternative mit

Mehr

Softwareentwicklung mit JAVA EE

Softwareentwicklung mit JAVA EE Softwareentwicklung mit JAVA EE Portlets Was sind Portale? Aufgaben von Portalsystemen Integration unterschiedlicher Anwendung Schwerpunkt liegt auf der Präsentationsebene Ermöglichung personalisierter

Mehr

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de Das Build Tool Ant Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation Bei der Übersetzung und Pflege von Software treten viele, gleich bleibende Arbeitsschritte auf. Übersetzen des Codes

Mehr

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0 Anleitung zur Installation und Verwendung von eclipseuml 2.1.0 In dieser Anleitung wird die Installation und Verwendung von Omodo eclipseuml 2.1.0 beschrieben. eclipseuml ist eine Zusatzsoftware für Eclipse,

Mehr

Apache AXIS Architektur

Apache AXIS Architektur In diesem Kapitel Um was geht s? Axis Architektur Eine Übersicht Subsysteme Message Flow Handlers und Chains (Handler Ketten) Message Contexts Adminstratives Subsystem SOAP Message Modell Subsystem Message

Mehr

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe, 13.12.2013

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe, 13.12.2013 JBoss AS 7 Installation, Konfiguration und Betrieb Alexander Pacnik Karlsruhe, 13.12.2013 Jboss 7 AS... worum es in diesem Vortrag geht. Einführung Installation Konfiguration Management Deployment Betrieb

Mehr

Wiederholung: Beginn

Wiederholung: Beginn B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben

Mehr

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

COPPER Best Practices

COPPER Best Practices COPPER Best Practices Version 1.0.1 Wann sollte man überhaupt COPPER verwenden? Allgemein genau dann, wenn man von der COPPER Notation oder den COPPER-Features profitieren kann. Ein wesentliches Feature

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Rechnernetze Projekt SS 2015

Rechnernetze Projekt SS 2015 30/03/15 Seite 1 Aspektorientierte Programmierung logische Aspekte (Concerns) im Programm separieren Crosscutting Concerns (Ziel: generische Funktionalitäten über mehrere Klassen hinweg zu verwenden -

Mehr

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik Programmieren II Remote-Programmierung KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote-Programmierung Remote Method Invocation

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Christine Hansen, Fabrizio Fresco, Patrick Malcherek

Christine Hansen, Fabrizio Fresco, Patrick Malcherek Betrifft: PL/SQL Web-Services und der JDeveloper Teil 4 Autor: Christine Hansen, Fabrizio Fresco, Patrick Malcherek Art der Info: Technische Background Info (Oktober 2002) Quellen: http://otn.oracle.com

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Installation des GeoShop Redirector für Apache (Stand 14.8.2007) ================================================================

Installation des GeoShop Redirector für Apache (Stand 14.8.2007) ================================================================ Installation des GeoShop Redirector für Apache (Stand 14.8.2007) ================================================================ 0 Überblick ----------- Die Installation des GeoShop Redirector im Apache

Mehr

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany Enterprise JavaBeans Einführung Universität Freiburg, Germany Sommercampus, Freiburg, Germany, 10.-14.10.2005 Inhalt Allgemeines Motivation Rollen Aufbau einer EJB Arten von Beans Enterprise JavaBeans

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

G s e a s m a t m ar a ch c i h tek e tur u I und IoC

G s e a s m a t m ar a ch c i h tek e tur u I und IoC Gesamtarchitektur I und IoC Schichten einer Web-Anwendung Initiiert durch J2EE und Spring: Strukturierte Sicht auf UI und Fachlogik (Domäne) Ergibt 5 Schichten: Man unterscheidet Präsentations- und Domänenmodell!

Mehr

Skalierbare Webanwendungen mit Python und Google App Engine

Skalierbare Webanwendungen mit Python und Google App Engine Skalierbare Webanwendungen mit Python und Google App Engine Oliver Albers 03. Juli 2008 1/32 Einführung Worum geht es? Pro und Contra Technik Genereller Aufbau Anwendungskonfiguration Verarbeitung von

Mehr

Java-basierten Web Service erstellen

Java-basierten Web Service erstellen Java-basierten Web Service erstellen Einleitung Dieses Tutorial zeigt, wie der Web Service AutoKauf erstellt werden kann. Dieser Web Service bildet die Grundlage für alle anderen Tutorials. Deshalb ist

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Kommunikation ist alles

Kommunikation ist alles Kommunikation in verteilten Systemen mit Kommunikation ist alles >> alexander ziegler In einem verteilten System müssen die Anwendungsbestandteile miteinander interagieren nur so funktioniert ein großes

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr