Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.

Slides:



Advertisements
Similar presentations
1/7 ITApplications XML Module Session 8: Introduction to Programming with XML.
Advertisements

XML: Extensible Markup Language
Web Services (Nuts and Bolts) ITEC 625 Web Development Fall 2006 Reference: Building Web Services with Java (Making sense of XML, SOAP, WSDL, and UDDI),
Web Services with Apache CXF
Multi-Model Digital Video Library Professor: Michael Lyu Member: Jacky Ma Joan Chung Multi-Model Digital Video Library LYU9904 Multi-Model Digital Video.
Web Services with Apache CXF
Open-DIS and XML DIS in Other Formats. Distributed Interactive Simulation DIS is an IEEE standard for simulations, primarily virtual worlds Binary protocol:
JAXB Java Architecture for XML Binding Andy Fanton Khalid AlBayat.
Web Services with Apache CXF
XML Parsing Using Java APIs AIP Independence project Fall 2010.
CS 571. Web services Web service: "a software system designed to support interoperable machine-to-machine interaction over a network“ – W3C In short,
XML Technologies and Applications Rajshekhar Sunderraman Department of Computer Science Georgia State University Atlanta, GA 30302
SaxStore: a n aspect oriented persistence library for Java based on SAX events Riccardo Solmi University of Bologna May 2001.
Fonts and colors Times New Roman “quotes” Trebuchet "quotes" yellow blue pink green violet.
MC365 XML Parsers. Today We Will Cover: An overview of the Java API’s used for XML processing Creating an XML document in Java Parsing an XML document.
29-Jun-15 JAXB Java Architecture for XML Binding.
JAXB Java Architecture for XML Bindings. What is JAXB? JAXB defines the behavior of a standard set of tools and interfaces that automatically generate.
1 WS Technologies II API Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration IMT- Institutions.
XML: Java Dr Andy Evans. Java and XML Couple of things we might want to do: Parse/write data as XML. Load and save objects as XML. We’ll mainly discuss.
Web Service Implementation Maitreya, Kishore, Jeff.
PHP and XML TP2653 Advance Web Programming. PHP and XML PHP5 – XML-based extensions, library and functionalities (current XAMPP PHP version is )
AIXM Viewer Implementation Presentation to AIXM Users’ Conference, Federal Aviation Administration, Washington D.C., Feb 27-March 1, By: Mark Austin,
Networking Nasrullah. Input stream Most clients will use input streams that read data from the file system (FileInputStream), the network (getInputStream()/getInputStream()),
1 Lecture 22 George Koutsogiannakis Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
Object-oriented tools for XML Schema JAXB (Java Architecture for XML Binding) –object connectivity for XML documents HyperJAXB –relational persistence.
JAXB Java API for XML Binding. The Objective JAXB is concerned with the translation process between Java objects and XML documents You have a Java object.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Grid Computing, B. Wilkinson, 20043b.1 Web Services Part II.
Java API for XML Processing (JAXP) توسط : محمّدمهدي حامد استاد راهنما : دكتر مسعود رهگذر.
Sheet 1XML Technology in E-Commerce 2001Lecture 7 XML Technology in E-Commerce Lecture 7 XSL Formatting Objects, Java Data Binding.
What is XML?  XML stands for EXtensible Markup Language  XML is a markup language much like HTML  XML was designed to carry data, not to display data.
Introduction to XML Extensible Markup Language. What is XML XML stands for eXtensible Markup Language. A markup language is used to provide information.
XML Parsers Overview  Types of parsers  Using XML parsers  SAX  DOM  DOM versus SAX  Products  Conclusion.
Electronic Commerce COMP3210 Session 4: Designing, Building and Evaluating e-Commerce Initiatives – Part II Dr. Paul Walcott Department of Computer Science,
Or, Hey can’t we just do it using HTTP for the envelope?
McGraw-Hill/Irwin © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Scripting with the DOM Ellen Pearlman Eileen Mullin Programming the Web.
Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.
© Drexel University Software Engineering Research Group (SERG) 1 An Introduction to Web Services.
XML Grammar and Parser for WSOL Kruti Patel, Vladimir Tosic, Bernard Pagurek Network Management & Artificial Intelligence Lab Department of Systems & Computer.
Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.
XML Study-Session: Part III
CS 157B: Database Management Systems II February 11 Class Meeting Department of Computer Science San Jose State University Spring 2013 Instructor: Ron.
SAX2 and DOM2 Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
COSC617 Project XML Tools Mark Liu Sanjay Srivastava Junping Zhang.
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
1 Introduction JAXP. Objectives  XML Parser  Parsing and Parsers  JAXP interfaces  Workshops 2.
CO1552 – Web Application Development Further JavaScript: Part 1: The Document Object Model Part 2: Functions and Events.
J2EE Chris Hundersmarck Maria Baron Jeff Webb.  Java 2 Platform, Micro Edition (J2ME)  Java 2 Platform, Standard Edition (J2SE)  Java 2 Platform, Enterprise.
Web services. DOM parsing and SOAP.. Summary. ● Exercise: SAX-Based checkInvoice(), ● push parsing, ● event-based parsing, ● traversal order is depth-first.
Martin Kruliš by Martin Kruliš (v1.1)1.
XML for Scientific Applications Marlon Pierce ERDC Tutorial August
7-Mar-16 Simple API XML.  SAX and DOM are standards for XML parsers-- program APIs to read and interpret XML files  DOM is a W3C standard  SAX is an.
Design Overview. Generated Packages ► fUML.Library.* - generated ► fUML.Semantics.* - generated ► fUML.Syntax.* - generated ► fUML.Test.* - generated.
XML & JSON. Background XML and JSON are to standard, textual data formats for representing arbitrary data – XML stands for “eXtensible Markup Language”
Java High level programming language ◦ Sun Microsystems ◦ ORACLE acquired Java Development Kit – JDK Java Runtime Environment – JRE Java Virtual Machine.
Lecture Transforming Data: Using Apache Xalan to apply XSLT transformations Marc Dumontier Blueprint Initiative Samuel Lunenfeld Research Institute.
I Copyright © 2004, Oracle. All rights reserved. Introduction.
The Java API for XML Binding. The Need for Data Binding To support unmarshlling to convert XML data into Java objects. To support marshalling to convert.
XML Parsers Overview Types of parsers Using XML parsers SAX DOM
Web Services-JAX-RPC JAX-RPC enables a Web Service endpoint to be developed using either a Java Servlet or Enterprise JavaBeans (EJB) component model.
Server-Side Application and Data Management IT IS 3105 (FALL 2009)
XML in Web Technologies
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
XML Parsers Overview Types of parsers Using XML parsers SAX DOM
More Sample XML By Sadia Anjum.
CS 240 – Advanced Programming Concepts
XML Programming in Java
Enterprise Web Services
XML and Web Services (II/2546)
Presentation transcript:

Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton

Notes This is a training, NOT a presentation Please ask questions This is being recorded Prerequisites – Maven – Spring – Web Application Development – Web Services, Part I: SOAP

Objectives At the end of this presentation, the participant will be able to: Understand the role of JAXB as a web service data binding solution. Model data entities using JAXB annotations. Understand the purpose and usage of the CXF WSDL2Java tool. Be able to use WSDL2Java to generate a client proxy in a stand- alone Java application. Be able to configure Spring to manage a generated WSDL2Java client proxy. Be able to use JAXB as the data binding solution in a Java Stack application.

Java and XML The Marriage of XML and Java: XML is a data markup language. – Used for long or short-term data storage. – Useful for data transfer between vastly different architectures. – Particularly useful for web service architectures. Java is an object-oriented programming language. – Unmarshalls (reads) data from existing XML into Java data objects. – Performs manipulations on Java objects via services. – Marshalls (writes) Java objects into a new XML representation.

Java and XML: Choices, choices…. The marriage of Java and XML has produced many child technogies, strategies, and libraries: DOM SAX JAXP DOM4J JAXB XML Beans JDOM XStream and many more….

Java and XML: Overview Most Java-XML strategies fall into three camps: DOM (Document Object Model) – Used to represent the entire document model in memory as hierarchical nodes in the document tree. XML-to-Object Binding – Used to represent XML types and elements as Java types and objects and vice- versa. SAX (Simple API for XML) – An event-based API for operating on each piece of the XML document individually and in sequence. Most often used to parse DOM trees or construct XML Object bindings. In practice, most solutions use some combination of these.

JAXB: A Data Binding Solution The JAXB API is the standard solution provided by the JDK for Java XML data binding: Java classes are bound to XML types, elements, and attributes through Java annotations. A SAX event-based parser is used to parse XML documents and construct Java objects as well as to write Java objects back to XML. The XJC tool (included in the JDK) can convert an existing XML schema into Java classes or create an XML schema from annotated Java classes.

JAXB and Web Services As a data modeling API, JAXB is particularly useful to web services: XML is the most common form of data transport. Annotated Java classes can be made to represent XML schema types. JAXB APIs can unmarshall XML into Java objects and back again. * Note that the CXF web service framework automatically handles the marshalling and unmarshalling of XML data to and from JAXB annotated Java classes.

JAXB: Marshalling and Unmarshalling Although CXF typically handles the marshalling and unmarshalling for you, it can be helpful to know how to do it “manually”. For example: It allows you to experiment with how JAXB annotations affect the parsing and rendering of XML. It helps you debug issues that arise from data being marshalled or unmarshalled incorrectly.

JAXB: Unmarshalling JAXB makes unmarshalling from XML easy: // Just create a JAXB context for your Java data classes JAXBContext jaxb = JAXBContext.newInstance(myClasses); // Then unmarshall the XML into instances of those classes. MyClass obj = jaxb.createUnmarshaller().unmarshall(xml) The Unmarshaller can accept XML input as a character stream, a file, a DOM node, or a number of other input types.

JAXB: Marshalling Marshalling back into XML from Java object is just as easy: // Create a JAXB context for your Java data classes JAXBContext jaxb = JAXBContext.newInstance(myClasses); // Marshall the Java objects their XML representation. jaxb.createMarshaller().marshall(myObject, output); The Marshaller can serialize the XML to a character stream, a file, a DOM node, or several other output types.

JAXB: The Context Instances of the JAXBContext class effectively represent an “in-memory” schema of your data: It’s a registry of all the classes that can be bound to XML types. It’s a factory for Marshaller and Unmarshaller instances. It can be supplied listeners and a Schema object for additional or custom validation.

JAXB: Annotations Although JAXB can bind almost any data object with little or no annotations, annotations are typically desirable, for example: They can tell JAXB whether to unmarshal a field into an attribute or an element. They can inform JAXB of ID fields, element order, and other schema constraints. They can be used to identify or customize schema types, element names, attribute names, element wrapping, etc.

JAXB: Common Annotations JAXB defines many annotations to customize the Java-XML data binding. Here are just These and more can be found in the following package: javax.xml.bind.annotation

Some general rules about JAXB annotations: JAXB cannot bind Java interfaces to XML types. Your class can reference an interface on a field if you annotate it with that identifies the concrete type. Apply JAXB annotations to either abstract or concrete types. Annotations on Java class properties must be placed on the fields or the setters but not both.

Apache CXF: SOAP: Lab 1 Lab 1: JAXB Data Binding

Consuming 3 rd Party Web Services Third-party SOAP web services are typically consumed in one of the following ways: Using a client JAR that contains the necessary Java classes and service proxies to access the web service. Using a WSDL-to-Java tool to automatically generate a web service proxy from a published WSDL.

WSDL to Java CXF provides the wsdl2java tool to consume third- party SOAP services: wsdl2Java

Apache CXF: SOAP: Lab 2 Lab 2: Using WSDL 2 Java

Apache CXF: SOAP: Lab 3 Lab 3: WSDL 2 Java in the Java Stack

Resources On the web: rest rest In Print: Developing Web Services with Apache CXF and Axis 2, Kent Kai Iok Tong, TipTech Development, ISBN: