JAX-WS mélyvíz. Viczián István JUM XII november 18.



Hasonló dokumentumok
Java Business Integration szolgáltatásalapú architektúra JavaEE környezetben. Simon Géza Zsemlye Tamás

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Webszolgáltatások kommunikációs overhead-jének becslése

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

JAVA webes alkalmazások

Osztott alkalmazások fejlesztési technológiái Áttekintés

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Web-szolgáltatások: SOAP, WSDL

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Webszolgáltatások (WS)

OKTATÁSI CSOMAG (SOA)

WebStore. JAX-WS SOAP WebServices, Stateful Session Bean. Óbudai Egyetem, Java Enterprise Edition Műszaki Informatika szak Labor 9

Junior Java Képzés. Tematika

Viczián István IP Systems JUM XIX szeptember 18.

Javadoc. Dokumentációs megjegyzés (2) Dokumentációs megjegyzés (1) Dokumentációs megjegyzés felépítése

Debreceni Egyetem Informatikai Kar. Szolgáltatás-orientált programozás az Oracle-ben

A TANTÁRGY ADATLAPJA

JNDI - alapok. Java Naming and Directory Interface

Komponens alapú fejlesztés

SZAKKÉPZÉSI KERETTANTERV a(z) MOBILALKALMAZÁS FEJLESZTŐ SZAKKÉPESÍTÉS-RÁÉPÜLÉSHEZ

Using the CW-Net in a user defined IP network

(SOA) WSDL

Segédanyag: Java alkalmazások gyakorlat

Web-fejlesztés NGM_IN002_1

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

XML dokumentumok feldolgozása. DOM, SAX, StAX

Web Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform

A Java EE 5 plattform

SOAP komponensek Delphiben

Komponens alapú programozás Bevezetés

Web-szolgáltatás szabványok

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

(Web)Szolgáltatások (WS, WS-*)

Informatikai Navigátor Érdekes Java Programozói könyvtárak

Osztott rendszerek, Java EE. Általános bevezető

Segédanyag: Java alkalmazások gyakorlat

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Google Web Toolkit. Elek Márton. Drótposta kft.

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Szolgáltatás technológiák (WS, WS-*) Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Kommunikáció. 3. előadás

Élő webes alkalmazások rendszerfelügyelete cím- és tartalomteszteléssel

A TANTÁRGY ADATLAPJA

Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

Hello Java Enterprise Edition

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Reaktív programozás szerver oldalon

1 Újszülöttek kórházi jelentése, orvosi rendszerek oltási jelentése és

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Biztonság java web alkalmazásokban

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Széchenyi István Egyetem

Adatbányászati algoritmusok integrációja szolgáltatásorientált architektúrában

ROS Remote Operations Service

Webszolgáltatás alapokon BPEL

Hello Java Enterprise Edition

Website review acci.hu

API tervezése mobil környezetbe. gyakorlat

Bánsághi Anna

Tartalom. Objektumorientált fejlesztés HTTP GET HTTP. HTTP REST REST kritikák JAX-RS WCF és REST Elosztott technológiák

XML adatkezelés. 5. témakör. Nincs explicit névtér kijelölve. <?xml version="1.0"?> <xs:schema xmlns:xs="

OEP Betegéletút lekérdezés háziorvosok és vénytörténet lekérdezés patikák számára. API dokumentáció. verzió: 2.01

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás

ELTE SAP Excellence Center Oktatóanyag 1

Web-fejlesztés NGM_IN002_1

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Osztott rendszerek (Distributed

Utolsó módosítás:

S04-2 Elosztott alkalmazások készítése

ios alkalmazásfejlesztés Koltai Róbert

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Nagyvállalati SOA infrastruktúra (ESB, szolgáltatástárak)

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

3. SZÁMÚ MELLÉKLET. Elektronikus számla - XML definíciók. a) Számla. 1. ábra Számla

QBE Édes Otthon lakásbiztosítás tarifáló webservice. Fejlesztői dokumentáció 1.0.2

Metamodellezés. Simon Balázs BME IIT, 2011.

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Web-fejlesztés NGM_IN002_1

Web-fejlesztés NGM_IN002_1

Webszolgáltatás alapokon BPEL

12.óra jquery Framework #1. Gyimesi Ákos

3. SZÁMÚ MELLÉKLET. Elektronikus számla - XML definíciók. a) Számla. 1. ábra Számla

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

Java I. A Java programozási nyelv

KOGGM614 JÁRMŰIPARI KUTATÁS ÉS FEJLESZTÉS FOLYAMATA

A házifeladatban alkalmazandó XML struktúra

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Modbus kommunikáció légkondícionálókhoz

A szoftver és hardverfüggetlen adatbázis

4. rész: Java Enterprise Edition bevezetı. Bakay Árpád dr. NETvisor kft (30)

Folyamat alapú integráció alapjai

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Webes alapozás. url, http, szerver oldal

Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Átírás:

JAX-WS mélyvíz Viczián István http://jtechlog.blogspot.com JUM XII. 2009. november 18.

Web szolgáltatások Web szolgáltatás W3C definíció: hálózaton keresztüli gép-gép együttműködést támogató szoftverrendszer Általában: HTTP(S)/SOAP SOAP WSDL UDDI SOA 2

SOAP Stílus RPC-stílus Document stílus Kódolás Literal-kódolás SOAP-kódolás = encoded Leggyakrabban használt Document/literal 3

WS-* WS-I WS-I Basic Profile WS-I Attachments Profile WS-I Simple SOAP Binding Profile WS-* WS-Security WS-Reliability WS-Transaction 4

Implementációs megközelítések Bottom up: kód alapján Top down: WSDL alapján Meet in the middle 5

Java API-k JAXP (1.0 JSR 5, 1.1 és 1.2 JSR 63, 1.3 és 1.4 JSR 206) DOM SAX StAX Validation XSLT (XPath) JAXB (JSR 222) SAAJ JAX-RPC 1.1 (JSR 101) JAX-WS 2.0 (JSR 224) 6

Implementációk GlassFish > JAXP Reference Implementation JDK 5 JAXP 1.3 JDK 6 JAXP 1.4.0 (StAX) (Apache Xerces) GlassFish > Metro > JAXB Reference Implementation GlassFish > Metro > SAAJ Standard Implementation GlassFish > Metro > JAX-WS Reference Implementation 7

Verziók jdk1.6.0_17 schemagen.exe version JAXB 2.1.10 in JDK 6 wsimport version JAX-WS RI 2.1.6 in JDK 6 JDK váltásnál verzió váltás Pl. előző verzió elnyelte a kivételt JDK-ban lévő nem ette meg az ANY-t 8

JAXB működése Binding <-> mapping Fejlesztés egyszerűsítése Annotációk Default binding Inline annotations External binding customization file Ant 9

JAXB 10

JAXB binding process 11

JAX-WS JAX-RPC 1.1 továbbfejlesztése RPC stílus és üzenet alapú Fejlesztés egyszerűsítése Annotációk SEI Kliens oldalon: proxy Handler Ant 12

SOAPUi SOA teszt eszköz Ingyenes és kereskedelmi verzió Web szolgáltatások felderítése, hívása, szimulálás és mock Funkcionális és terheléses tesztelés IDE-plugins SOAPUi nightly build jó support 13

JAXB - Körkörös referencia "A cycle is detected in the object graph. This will cause infinitely deep XML @Transient afterunmarshal metódus CycleRecoverable interfész 14

JAXB - Ős és leszármazott Leszármazott: @XmlRootElement Hivatkozó attribútum: @XmlElementRef 15

JAXB - ANY Marshall/unmarshall File, InputStream, URL, Source, Node, XMLStreamReader, XMLEventReader any-ben másik névtér, setprefix <xs:complextype name= AnyType"> <xs:sequence> <xs:any minoccurs="0" maxoccurs="unbounded" namespace="##any" processcontents="skip" /> </xs:sequence> </xs:complextype> 16

JAXB - Type és JAXBElement<T> JAXB 2.0 JDK 5 generikusok megjelenésével XJC @XmlRootElement, ha a típus nem használható más néven JAXBElement<T>, ha használható Megoldás Simple-minded binding mode: <xjc:simple /> Példányosítás: new JAXBElement( new QName("uri","local"), MessageType.class, messagetype ) 17

JAX-WS - BARE/Wrapper Return type: List Error starting wsgen: verbose= true fork= true java.util.list is an interface, and JAXB can't handle interfaces. Amennyiben egy metódusnak több paramétere van, az is hiba. Exception in thread "main" com.sun.xml.ws.model.runtimemodelerexception: runtime modeler error: SEI [osztály neve] has method [metódus neve] annotated as BARE but it has more than one parameter bound to body. This is invalid. Please annotate the method with annotation: @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.WRAPPE D) 18

JAX-WS - JAXB binding nélkül implements Provider<T> SOAPMessage javax.xml.transform.source invoke(t) Payload mode 19

JAX-WS - Attachment kezelés SwA MTOM SOAP Message Transmission Optimization Mechanism XOP XML-binary Optimized Packaging Multipart <-> BASE64 (33% méret növekedés) xop:include hivatkozás Kötelező az attachment, nem lehet opcionális: 0 hosszú bájttömb 20

Tippek JAXBContext cache Inout paraméter: Holder<T> Aszinkron hívás Integrációs réteg com.sun.xml.ws.developer.schemavalidation Cserélhető encoding: JSON Cserélhető transport, binding: In-VM, JMS, SMTP StAX a hatékonységért 21

Problémák Hiba: név ugyanaz, mint a porttype name attribútuma java.dev.net rendelkezésre állás (catalog) Nem szimmetrikus explicit WSDL generálás Nem adható meg kötelező paraméter SEI-ben nem lehet konstans - no support wsdllocation does not resolve if it is a relative URI TODO: jaxwsri\src\com\sun\xml\ws\api\message\message.ja va 22

Eszköz problémák NetBeans minőség, ad-hoc, nem megtervezett képernyők Pl. validate: NetBeans validate: <mime:multipartrelated> "ERROR: At least one <soap:body> element is required per input/ouput message in a soap operation." 23

Spring integráció GlassFish > Metro > JAX-WS commons > Spring support NetBeans generálás Több metadata paraméter megadás 24

Naplózás Handler Logical handler Protocol handler: SOAPHandler NetBeans deadlock: Handler, Tomcat, Log4J Thread.sleep(100); DOM JAX-WS RI com.sun.xml.ws.api.handler.messagehandler Eltérő működés message.readenvelopeassource(); - nem ad vissza semmit message.readpayloadassource(); - jót ad vissza Eltérő működés XMLOutputFactory com.sun.xml.ws.api.streaming.xmlstreamwriterfactory Aszinkron 25

Alternatíva RMI Apache Axis Apache CXF REST (JSR 311) 26

Forrás http://www.w3.org http://ws-i.org http://jcp.org https://jaxp.dev.java.net/ https://jaxb.dev.java.net/ https://saaj.dev.java.net/ https://jax-ws.dev.java.net/ Mark D. Hansen SOA Using Java Web Services The Java EE 5 Tutorial 27