eclipse web tools platform project © 2005 ibm corporation developing web services with eclipse –...

31
Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational [email protected] EclipseWorld New York, 2005-08-30

Upload: cayla-dorney

Post on 31-Mar-2015

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation

Developing Web Services with Eclipse –Programming Examples

Arthur RymanIBM [email protected]

EclipseWorldNew York, 2005-08-30

Page 2: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation2 Developing Web Services with Eclipse, EclipseWorld, New York

Development Scenarios

Accessing Web Services

Creating Web Services

– Bottom-Up

– Top-Down

Page 3: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation3 Developing Web Services with Eclipse, EclipseWorld, New York

Accessing Web Services

The preceding demo generated a JSP test client for the Stock Quote service

We’ll now code a JSP client application that accesses it

The Web Service wizard generated JAX-RPC compliant client code and a convenience wrapper

We’ll use this code in our client

Page 4: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation4 Developing Web Services with Eclipse, EclipseWorld, New York

JAX-RPC Client Code

Page 5: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation5 Developing Web Services with Eclipse, EclipseWorld, New York

JAX-RPC Client Code

package NET.webserviceX.www

– targetNamespace="http://www.webserviceX.NET/"

StockQuoteLocator.java – Service locator

StockQuote.java – Service interface

– <wsdl:service name="StockQuote">

StockQuoteSoap.java – Remote interface

– <wsdl:portType name="StockQuoteSoap">

– <wsdl:operation name="GetQuote">

StockQuoteSoapStub.java – Client stub wrapper for Call object

StockQuoteSoapProxy.java – Client proxy convenience wrapper

Page 6: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation6 Developing Web Services with Eclipse, EclipseWorld, New York

Web Client Version 1: getQuote.jsp

1) Create a JSP

1) get a query parameter, “symbol”,

2) create a service proxy, and

3) invoke the “getQuote” operation

2) Select getQuote.jsp and invoke Run As->Run on Server

1) The Web app is added to the server,

2) the server is started, and

3) a Web browser is opened on the appropriate URL for getQuote.jsp

Page 7: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation7 Developing Web Services with Eclipse, EclipseWorld, New York

Page 8: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation8 Developing Web Services with Eclipse, EclipseWorld, New York

Page 9: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation9 Developing Web Services with Eclipse, EclipseWorld, New York

Processing XML

This service has a poorly designed interface

– XML is returned as an escaped string

– No schema for result

The client needs to parse the result to extract the price, etc.

Client application can parse XML using:

– DOM,

– SAX,

– Java data binding code (JAXB, etc), or

– server-side XSLT

For fun, we’ll use browser-side XSLT

Page 10: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation10 Developing Web Services with Eclipse, EclipseWorld, New York

Web Client Version 2: getQuote-xsl.jsp

1) View example of XML response ibm-quote.xml

2) Create XSLT StockQuotes.xsl

1) Generate <form> to get symbol

2) Generate <table> to present stock quote

3) Create JSP getQuote-xsl.jsp

1) Insert <?xml-stylesheet?> processing instruction

2) Return unparsed XML

4) Run on Server to view result

Page 11: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation11 Developing Web Services with Eclipse, EclipseWorld, New York

Page 12: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation12 Developing Web Services with Eclipse, EclipseWorld, New York

Page 13: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation13 Developing Web Services with Eclipse, EclipseWorld, New York

Page 14: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation14 Developing Web Services with Eclipse, EclipseWorld, New York

Page 15: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation15 Developing Web Services with Eclipse, EclipseWorld, New York

Bottom-Up Web Service Creation

Any “reasonable” Java class can be easily deployed as a Web service

This approach is very appealing to Java programmers since it lets them be immediately productive

The WSDL is generated from the Java

The result is acceptable if the methods use “tame” argument types, however object graphs are problematic

Top-Down design is recommended to achieve the cleanest and most interoperable Web service interfaces

Page 16: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation16 Developing Web Services with Eclipse, EclipseWorld, New York

Bottom-Up Service: BUService

1) Create a new Web project: BUService

2) Create a data object to represent the result: BUStock.java

3) Create a business object to take a symbol and return a stock quote for it: BUQuoter.java

4) Use the Web service wizard to deploy it. Use rpc-encoded style for fun so we can see WS-I errors. Generate and monitor a JSP test client.

5) Test the service, view the messages in the monitor, and validate the SOAP messages for WS-I conformance. Note the errors caused by rpc-encoded style.

Page 17: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation17 Developing Web Services with Eclipse, EclipseWorld, New York

Page 18: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation18 Developing Web Services with Eclipse, EclipseWorld, New York

Page 19: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation19 Developing Web Services with Eclipse, EclipseWorld, New York

Page 20: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation20 Developing Web Services with Eclipse, EclipseWorld, New York

Page 21: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation21 Developing Web Services with Eclipse, EclipseWorld, New York

Page 22: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation22 Developing Web Services with Eclipse, EclipseWorld, New York

Page 23: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation23 Developing Web Services with Eclipse, EclipseWorld, New York

Top-Down Web Service Creation

Business is transacted by exchanging documents – purchase orders, receipts, application forms, insurance claims, building permits, etc.

For best interoperability, treat Web services as document interchange, not distributed objects

Model documents using XSD, and operations using WSDL

Generate Java from WSDL

Page 24: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation24 Developing Web Services with Eclipse, EclipseWorld, New York

Top-Down Service: TDService

1) Create a new Web project: TDService

2) Create an XML schema for the Stock quote result: TDStock.xsd

3) Create a WSDL for the quote service with an operation that takes a symbol and returns a quote: TDQuoter.wsdl. Use the WSDL Binding wizard to generate document-literal SOAP binding style this time.

4) Use the Web service wizard to generate the service.

5) Fill in the implementation of the service: TDQuoterSOAPImpl.java

6) Create a new Web project: TDServiceClient

7) Select /wsdl/TDQuoterSOAP.wsdl, create a JSP test client, and monitor the service.

8) Test the service and validate the SOAP messages for WS-I conformance. There should be no errors this time.

Page 25: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation25 Developing Web Services with Eclipse, EclipseWorld, New York

Page 26: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation26 Developing Web Services with Eclipse, EclipseWorld, New York

Page 27: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation27 Developing Web Services with Eclipse, EclipseWorld, New York

Page 28: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation28 Developing Web Services with Eclipse, EclipseWorld, New York

Page 29: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation29 Developing Web Services with Eclipse, EclipseWorld, New York

Page 30: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation30 Developing Web Services with Eclipse, EclipseWorld, New York

Page 31: Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational ryman@ca.ibm.com

Eclipse Web Tools Platform Project

© 2005 IBM Corporation31 Developing Web Services with Eclipse, EclipseWorld, New York