Very Technical Presentation about 1z0-897

Certification Title : Oracle Certified Expert, Java EE 6 Web Services Developer

Exam : Java EE6 Web Services Developer Certified Expert Exam (1z0-897)

Duration: 90 minutes

Number of Questions: 60

Passing Score: 64.00% (but not all 60 questions are taken into account, usually one or two are left out)

Format: multiple choice (it’s specified the number of correct answers, and also it could contain ‘all of the above’ option)

You can take the exam at any Pearson Vue center, you must have a Pearson Vue account in order to take the exam, you will get all the instructions when you register for the exam, one thing to keep in mind is that you will need two ID cards with photo. 

About the exam:

It’s not a very difficult exam, but there’s no such thing as a single book / course dedicated for the exam that will be enough, and you need to gather your own sources. There is some information on coderanch forum and you can also browse in the topics.

You can also find the exam’s objectives on oracle page, but it’s very vague.

I will tell you all the materials that I studied from, but keep in mind that this is more than the exam requires, yet it does help you to understand in depth the topic if you’re interested.

You will need to have/gain some basic knowledge about HTTP, MIME, XML, XSD, Java, EJB, Servlet Container.

Read to understand, practice a lot, do mock tests, look at the API and at the XSDs for all XMLs you’re interested in, search on Google/Wikipedia what it doesn’t make sense.

What does it cover:

XML: well formed, elements, attributes, default attributes

XML namespaces: prefix, default namespace, namespace inheritance from parent element, qualified/unqualified

URI: form scheme://host:port/path?queryString#fragment

http://hello.world.com (URL < URI)

urn://whatever

XSD:

Web Services in general: coarse grained, platform neutral, transport neutral, based on ubiquitous standards: XML, XSD, better than the other alternatives (although not faster, it is the de facto integration model between no matter how different applications)

SOAP: Envelope, Header, Body, Attachments. SOAP 1.1 / 1.2

WSDL: know every tag and purpose of every part, RPC/Document <part type/element, WSDL 1.1 (/ 2.0 it’s not on the exam but if you’re curious).

WSI-BP 1.1: what’s its purpose, ex: requires XSD schema (WSDL suggests using XSD), only UTF-8/UTF-16, prohibits SOAP Encoding (XSD schema renders it obsolete), conformance claim

JAX-WS:generated proxy & dynamic dispatch, IN-OUT parameters, wrapped request/response, restrictions on classes

– Annotations JAX-WS: you should have an idea about all of them and their attributes, and you should know the main ones: @WebService, @WebMethod, @WebParam, @WebFault, @OneWay, @WebServiceClient, also you sould know the defaults in absence of some annotation.

webservices.xml: you should be able to configure / override / suplement the annotations with XML, just common sense not knowing it by heart.

SOAP Web service java clients: java.net.URLConnection, generated proxies, dynamic dispatch

EJB, Servlet, POJO: publish as WS, and particular information about each type, which EJBs can be published as WS, what you get from an EJB WS. Some configuration ejb-jar.xml / web.xml, especially for security: method security / url-pattern security

Attachments/MTOM: how a HTTP Request for a SOAP Message with attachments looks like, configure MTOM in multiple ways on Server/Client, MIME types and mapping to Java types, base64 encoding default, XML Infoset (addresses XML performance)

– Asynchronous: general Asynch WS, and Asynch processing in java of Synchronous WS with java.util.concurrent.Future / AsyncHandler. How to enable Asynch.

Addressing: how to enable it and few details about it

SAAJ: SOAPMessage, SOAPEnvelope, SOAPHeader, SOAPBody, AttachmentPart. API for manipulating SOAP Message similar to DOM, but targeted for SOAP Messages, as opposed to arbitrary XMLs in the case of DOM, SAAJ classes extend DOM classes.

SOAP Faults, Exceptions: SOAPFaultException / SAAJ SOAPFault class, checked exceptions, SOAP Fault elements: faultcode, faultstring, faultactor, detail.

Handlers: Logical/SOAP, order for incoming / outcoming messages

wsimport: WSDL-to-Java, JAX-WS customizations

JAXB: customization files, internal structure, Java-to-XML, XML-to-Java

JAXP: SAX, DOM, StAX, XSLT

Packaging: .war, .jar, WEB-INF(META-INF)/wsdl/bla.wsdl, WEB-INF(META-INF)/webservices.xml

Security: JavaEE: a lot about servlet, also about EJB and JavaSE, how is HTTPS established, Transport security vs WS-Security: encrypt whole message or just some parts, security remains even after arriving in the target system. Authentication: credentials, Integrity: Digital Signatures, Confidentiality: Encryption. Symmetric vs Asymmetric encryption, public key, private key, trusted authority

WS-Security: very high level, XACML, XKMS, SAML, XML Encryption, XML Digital Signatures, Canonicalization

WSIT: WS-*, very high level, how to specify WS-* in WSDL, how it is carried in the SOAP Header (ex: WS-ReliableMessaging : enables systems to recover when messages in a given sequence are lost in transit or delivered out of order)

JAX-RS:

    – REST philosophy: addressable resources by URI, a uniform, constrained interface, representation-oriented: different format as the requested by the client, communicate statelessly, HATEOAS: navigation links in the response

   – EJB, POJO, Servlet, JAX-WS to publish REST (@WebServiceProvider)

   – @Path

   – resource method/sub-resource locator

   – @Produces

   – @Consumes

   – @PathParam/MatrixParam/QueryParam/FormParam/HeaderParam/CookieParam (@DefaultValue)

   – @GET/POST(nonideimpotent)/PUT/DELETE (CRUD)

   – JAX-RS Annotations

   – configure servlet to enable JAX-RS, Application class, deployment

   – Exceptions, ExceptionMapper, HTTP Codes

   – Providers: MessageBodyWriter/MessageBodyReader

   – HTTP Content Negotiation (MIME Types, most specific wins)

   – HTTP Response Codes, HTTP Headers

   – Cache, Conditional GET

   – Security: WebContainer & EJB methods if EJB

   – Clients: Servlet, JAX-WS (with XML binding, instead of SOAP), JavaSE, Jersey

   – JAX-RS mapping between Mime Type to Java class

   – @Context: inject different stuff

   – UriBuilder: API for safely building URIs

   – Response.ResponseBuilder: API for safely building HTTP Responses with headers and http codes

   – JAXB, JSON

What it doesn’t cover:

– UDDI

– JAXR

– JAX-RPC

– WSDL 2.0

Suggested materials:

– Java Web Services Up and Running, Martin Kalin

– Richard Monson Haefel J2EE Web Services

– Restful Java With JAX-RS

– SCDJWS 5 Study Notes, Ivan A Krizsan

– JavaEE 6 Tutorial (Web Services part)

JAXB Tutorial

JAXP Tutorial: SAX, StAX, DOM, XSLT

– Wikipedia & Google when I didn’t understood something (especially on WS-*)

JavaEE6 API (relevant WS stuff)

JavaSE6 API (relevant WS stuff)

– XSD Schemas for : xsd, wsdl, soap, soap-envelope, web.xml, ejb-jar.xml, webservices.xml

Mock tests:

– ezpractice labs

– ucertify

– ? Mikalai Zaikin’s OCE WSD 6 Quiz

Advertisements

One Response to “Very Technical Presentation about 1z0-897”

  1. Manish Says:

    Wow, great info. I have finished the Up and Running – Kalin. Could you please refer me to the relevant chapters/topics in RMH and Restful Java with JAX-RS. I am planning to take this exam soon. thanks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: