This java programming site aims to provide book reviews and free ebook on java tutorial, java swing, sun java interface, java struts, java examples, java documentations, java j2ee, java jvm, java util, java j2se, java plugin, java programming, java runtime, java script, java downloads, free java applets, java vm, java certification, java socket, java beans, java source code, java threads, java help, java database, java api, java 1.5, java file, java training, java developments, java tips,java web services, etc

SCDJWS Study Guide

By Mikalai Zaikin
The purpose of this document is to help in preparation for exam CX-310-220 (Sun Certified Developer for Java Web Services). This document should NOT be used as the only study material for SCDJWS (Sun Certified Developer for Java Web Services) Test. It does NOT covers all objective topics. I tried to make this document as much accurate as possible, but if you find any error, please let me know.
Following are the exam objectives covered in this SCDJWS study guide.
  • XML Web Service Standards: Given XML documents, schemas, and fragments determine whether their syntax and form are correct (according to W3C schema) and whether they conform to the WS-I Basic Profile 1.0a. Describe the use of XML Schema in J2EE Web services. Describe the use of namespaces in an XML document.
  • SOAP 1.1 Web Service Standards: List and describe the encoding types used in a SOAP message. Describe how SOAP message header blocks are used and processed. Describe the function of each element contained in a SOAP message, the SOAP binding to HTTP, and how to represent faults that occur when processing a SOAP message. Create a SOAP message that contains an attachment. Describe the restrictions placed on the use of SOAP by the WS-I Basic Profile 1.0a. Describe the function of SOAP in a Web service interaction and the advantages and disadvantages of using SOAP messages.
  • Describing and Publishing (WSDL and UDDI): Explain the use of WSDL in Web services, including a description of WSDL's basic elements, binding mechanisms and the basic WSDL operation types as limited by the WS-I Basic Profile 1.0a. Describe how W3C XML Schema is used as a typing mechanism in WSDL 1.1. Describe the use of UDDI data structures. Consider the requirements imposed on UDDI by the WS-I Basic Profile 1.0a. Describe the basic functions provided by the UDDI Publish and Inquiry APIs to interact with a UDDI business registry.
  • JAX-RPC: Explain the service description model, client connection types, interaction modes, transport mechanisms/protocols, and endpoint types as they relate to JAX-RPC. Given a set of requirements for a Web service, such as transactional needs, and security requirements, design and develop Web service applications that use servlet-based endpoints and EJB based endpoints. Given an set of requirements, design and develop a Web sevice client, such as a J2EE client and a stand-alone Java client, using the appropriate JAX-RPC client connection style. Given a set of requirements, develop and configure a Web service client that accesses a stateful Web service. Explain the advantages and disadvantages of a WSDL to Java vs. a Java to WSDL development approach. Describe the advantages and disadvantages of web service applications that use either synchronous/request response, one-way RPC, or non-blocking RPC invocation modes. Use the JAX-RPC Handler API to create a SOAP message handler, describe the function of a handler chain, and describe the role of SAAJ when creating a message handler.
  • SOAP and XML Processing APIs (JAXP, JAXB, and SAAJ): Describe the functions and capabilities of the APIs included within JAXP. Given a scenario, select the proper mechanism for parsing and processing the information in an XML document. Describe the functions and capabilities of JAXB, including the JAXB process flow, such as XML-to-Java and Java-to-XML, and the binding and validation mechanisms provided by JAXB. Use the SAAJ APIs to create and manipulate a SOAP message.
  • JAXR: Describe the function of JAXR in Web service architectural model, the two basic levels of business registry functionality supported by JAXR, and the function of the basic JAXR business objects and how they map to the UDDI data structures. Use JAXR to connect to a UDDI business registry, execute queries to locate services that meet specific requirements, and publish or update information about a business service.
  • J2EE Web Services: Identify the characteristics of and the services and APIs included in the J2EE platform. Explain the benefits of using the J2EE platform for creating and deploying Web service applications. Describe the functions and capabilities of the JAXP, DOM, SAX, JAXR, JAX-RPC, and SAAJ in the J2EE platform. Describe the role of the WS-I Basic Profile when designing J2EE Web services.
  • Security: Explain basic security mechanisms including: transport level security, such as basic and mutual authentication and SSL, message level security, XML encryption, XML Digital Signature, and federated identity and trust. Identify the purpose and benefits of Web services security oriented initiatives and standards such as Username Token Profile, SAML, XACML, XKMS, WS-Security, and the Liberty Project. Given a scenario, implement J2EE based web service web-tier and/or EJB-tier basic security mechanisms, such as mutual authentication, SSL, and access control. Describe factors that impact the security requirements of a Web service, such as the relationship between the client and service provider, the type of data being exchanged, the message format, and the transport mechanism.
  • Developing Web Services: Describe the steps required to configure, package, and deploy J2EE Web services and service clients, including a description of the packaging formats, such as .ear, .war, .jar, deployment descriptor settings, the associated Web Services description file, RPC mapping files, and service reference elements used for EJB and servlet endpoints. Given a set of requirements, develop code to process XML files using the SAX, DOM, XSLT, and JAXB APIs. Given an XML schema for a document style Web service create a WSDL file that describes the service and generate a service implementation. Given a set of requirements, develop code to create an XML-based, document style, Web service using the JAX-RPC APIs. Implement a SOAP logging mechanism for testing and debugging a Web Service application using J2EE Web Service APIs. Given a set of requirements, develop code to handle system and service exceptions and faults received by a Web services client.
  • General Design and Architecture: Describe the characteristics of a service oriented architecture and how Web Services fits to this model. Given a scenario, design a J2EE service using the Business Delegate, Service Locator, and/or Proxy client-side design patterns and the Adapter, Command, Web Service Broker, and/or Façade server-side patterns. Describe alternatives for dealing with issues that impact the quality of service provided by a Web service and methods to improve the system reliability, maintainability, security, and performance of a service. Describe how to handle the various types of return values, faults, errors, and exceptions that can occur during a Web service interaction. Describe the role that Web services play when integrating data, application functions, or business processes in a J2EE application. Describe how to design a stateless Web service that exposes the functionality of a stateful business process.
  • Endpoint Design and Architecture: Given a scenario, design Web service applications using information models that are either procedure-style or document-style. Describe the function of the service interaction and processing layers in a Web service. Describe the tasks performed by each phase of an XML-based, document oriented, Web service application, including the consumption, business processing, and production phases. Design a Web service for an asynchronous, document-style process and describe how to refactor a Web service from a synchronous to an asynchronous model. Describe how the characteristics, such as resource utilization, conversational capabilities, and operational modes, of the various types of Web service clients impact the design of a Web service or determine the type of client that might interact with a particular service.
Read More/Try It

SCJP Tiger Study Guide

By Mikalai Zaikin

The purpose of this document is to help in preparation for exam CX-310-055 (Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0). This document should not be used as the only study material for SCJP Tiger (Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0) Test. It covers mostly Java 5.0-specific objectives. I tried to make this document as much accurate as possible, but if you find any error, please let me know.

Following are the exam objectives covered in this SCJP study guide

  • Declarations, Initialization and Scoping: Develop code that declares classes (including abstract and all forms of nested classes), interfaces, and enums, and includes the appropriate use of package and import statements (including static imports). Develop code that declares an interface. Develop code that implements or extends one or more interfaces. Develop code that declares an abstract class. Develop code that extends an abstract class. Develop code that declares, initializes, and uses primitives, arrays, enums, and objects as static, instance, and local variables. Also, use legal identifiers for variable names. Develop code that declares both static and non-static methods, and - if appropriate - use method names that adhere to the JavaBeans naming standards. Also develop code that declares and uses a variable-length argument list. Given a code example, determine if a method is correctly overriding or overloading another method, and identify legal return values (including covariant returns), for the method. Given a set of classes and superclasses, develop constructors for one or more of the classes. Given a class declaration, determine if a default constructor will be created, and if so, determine the behavior of that constructor. Given a nested or non-nested class listing, write code to instantiate the class.
  • Flow Control: Develop code that implements an if or switch statement; and identify legal argument types for these statements. Develop code that implements all forms of loops and iterators, including the use of for, the enhanced for loop (for-each), do, while, labels, break, and continue; and explain the values taken by loop counter variables during and after loop execution. Develop code that makes use of assertions, and distinguish appropriate from inappropriate uses of assertions. Develop code that makes use of exceptions and exception handling clauses (try, catch, finally), and declares methods and overriding methods that throw exceptions. Recognize the effect of an exception arising at a specified point in a code fragment. Note that the exception may be a runtime exception, a checked exception, or an error. Recognize situations that will result in any of the following being thrown: ArrayIndexOutOfBoundsException, ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError or NoClassDefFoundError. Understand which of these are thrown by the virtual machine and recognize situations in which others should be thrown programatically.
  • API Contents: Develop code that uses the primitive wrapper classes (such as Boolean, Character, Double, Integer, etc.), and/or autoboxing & unboxing. Discuss the differences between the String, StringBuilder, and StringBuffer classes. Given a scenario involving navigating file systems, reading from files, or writing to files, develop the correct solution using the following classes (sometimes in combination), from java.io: BufferedReader, BufferedWriter, File, FileReader, FileWriter and PrintWriter. Develop code that serializes and/or de-serializes objects using the following APIs from java.io: DataInputStream, DataOutputStream, FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream and Serializable. Use standard J2SE APIs in the java.text package to correctly format or parse dates, numbers, and currency values for a specific locale; and, given a scenario, determine the appropriate methods to use if you want to use the default locale or a specific locale. Describe the purpose and use of the java.util.Locale class. Write code that uses standard J2SE APIs in the java.util and java.util.regex packages to format or parse strings or streams. For strings, write code that uses the Pattern and Matcher classes and the String.split(...) method. Recognize and use regular expression patterns for matching (limited to: . (dot), * (star), + (plus), ?, \d, \s, \w, [], ()). The use of *, +, and ? will be limited to greedy quantifiers, and the parenthesis operator will only be used as a grouping mechanism, not for capturing content during matching. For streams, write code using the Formatter and Scanner classes and the PrintWriter.format/printf methods. Recognize and use formatting parameters (limited to: %b, %c, %d, %f, %s) in format strings.
  • Concurrency: Write code to define, instantiate, and start new threads using both java.lang.Thread and java.lang.Runnable. Recognize the states in which a thread can exist, and identify ways in which a thread can transition from one state to another. Given a scenario, write code that makes appropriate use of object locking to protect static or instance variables from concurrent access problems. Given a scenario, write code that makes appropriate use of wait, notify, or notifyAll.
  • OO Concepts: Develop code that implements tight encapsulation, loose coupling, and high cohesion in classes, and describe the benefits. Given a scenario, develop code that demonstrates the use of polymorphism. Further, determine when casting will be necessary and recognize compiler vs. runtime errors related to object reference casting. Explain the effect of modifiers on inheritance with respect to constructors, instance or static variables, and instance or static methods. Given a scenario, develop code that declares and/or invokes overridden or overloaded methods and code that declares and/or invokes superclass, overridden, or overloaded constructors. Develop code that implements "is-a" and/or "has-a" relationships.
  • Collections / Generics: Given a design scenario, determine which collection classes and/or interfaces should be used to properly implement that design, including the use of the Comparable interface. Distinguish between correct and incorrect overrides of corresponding hashCode and equals methods, and explain the difference between == and the equals method. Write code that uses the generic versions of the Collections API, in particular, the Set, List, Queue and Map interfaces and implementation classes. Recognize the limitations of the non-generic Collections API and how to refactor code to use the generic versions. Develop code that makes proper use of type parameters in class/interface declarations, instance variables, method arguments, and return types; and write generic methods or methods that make use of wildcard types and understand the similarities and differences between these two approaches. Use capabilities in the java.util package to write code to manipulate a list by sorting, performing a binary search, or converting the list to an array. Use capabilities in the java.util package to write code to manipulate an array by sorting, performing a binary search, or converting the array to a list. Use the java.util.Comparator and java.lang.Comparable interfaces to affect the sorting of lists and arrays. Furthermore, recognize the effect of the "natural ordering" of primitive wrapper classes and java.lang.String on sorting.
  • Fundamentals: Given a code example and a scenario, write code that uses the appropriate access modifiers, package declarations, and import statements to interact with (through access or inheritance) the code in the example. Given an example of a class and a command-line, determine the expected runtime behavior. Determine the effect upon object references and primitive values when they are passed into methods that perform assignments or other modifying operations on the parameters. Given a code example, recognize the point at which an object becomes eligible for garbage collection, and determine what is and is not guaranteed by the garbage collection system. Recognize the behaviors of System.gc and finalization. Given the fully-qualified name of a class that is deployed inside and/or outside a JAR file, construct the appropriate directory structure for that class. Given a code example and a classpath, determine whether the classpath will allow the code to compile successfully. Write code that correctly applies the appropriate operators including assignment operators (limited to: =, +=, -=), arithmetic operators (limited to: +, -, *, /, %, ++, --), relational operators (limited to: <, <=, >, >=, ==, !=), the instanceof operator, logical operators (limited to: &, |, ^, !, &&, ||), and the conditional operator ( ? : ), to produce a desired result. Write code that determines the equality of two objects or two primitives.
Read More/Try It

SCBCD 5.0 Study Guide

By Mikalai Zaikin
The purpose of this document is to help in preparation for exam CX-310-091 (Sun Certified Business Component Developer for Java EE 5.0). This document should not be used as the only study material for SCBDC 5.0 test. It covers all objective topics, but it is not enough. I tried to make this document as much accurate as possible, but if you find any error, please let me know.
  • EJB 3.0 Overview: Identify the uses, benefits, and characteristics of Enterprise JavaBeans technology, for version 3.0 of the EJB specification. Identify the APIs that all EJB 3.0 containers must make available to developers. Identify correct and incorrect statements or examples about EJB programming restrictions. Match the seven EJB roles with the corresponding description of the role's responsibilities. Describe the packaging and deployment requirements for enterprise beans. Describe the purposes and uses of annotations and deployment descriptors, including how the two mechanisms interact, how overriding is handled, and how these mechanisms function at the class, method, and field levels.
  • General EJB 3.0 Enterprise Bean Knowledge: Identify correct and incorrect statements or examples about the lifecycle of all 3.0 Enterprise Bean instances, including the use of the @PostConstruct and @PreDestroy callback methods. Identify correct and incorrect statements or examples about interceptors, including implementing an interceptor class, the lifecycle of interceptor instances, @AroundInvoke methods, invocation order, exception handling, lifecycle callback methods, default and method level interceptors, and specifying interceptors in the deployment descriptor. Identify correct and incorrect statements or examples about how enterprise beans declare dependencies on external resources using JNDI or dependency injection, including the general rules for using JNDI, annotations and/or deployment descriptors, EJB references, connection factories, resource environment entries, and persistence context and persistence unit references. Identify correct and incorrect statements or examples about Timer Services, including the bean provider's view and responsibilities, the TimerService, Timer and TimerHandle interfaces, and @Timeout callback methods. Identify correct and incorrect statements or examples about the EJB context objects that the container provides to 3.0 Session beans and 3.0 Message-Driven beans, including the security, transaction, timer, and lookup services the context can provide. Identify correct and incorrect statements or examples about EJB 3.0 / EJB 2.x interoperability, including how to adapt an EJB 3.0 bean for use with clients written to the EJB 2.x API and how to access beans written to the EJB 2.x API from beans written to the EJB 3.0 API.
  • EJB 3.0 Session Bean Component Contract & Lifecycle: Identify correct and incorrect statements or examples that compare the purpose and use of Stateful and Stateless Session Beans. Identify correct and incorrect statements or examples about remote and local business interfaces for Session Beans. Write code for the bean classes of Stateful and Stateless Session Beans. Identify correct and incorrect statements or examples about the lifecycle of a Stateful Session Bean including the PrePassivate and PostActivate lifecycle callback methods and @Remove methods. Given a list of methods of a Stateful or Stateless Session Bean class, define which of the following operations can be performed from each of those methods: SessionContext interface methods, UserTransaction methods, access to the java:comp/env environment naming context, resource manager access, and other enterprise bean access. Identify correct and incorrect statements or examples about implementing a session bean as a web service endpoint, including rules for writing a web service endpoint interface and use of the @WebService and @WebMethod annotations. Identify correct and incorrect statements or examples about the client view of a session bean, including the client view of a session object's life cycle, obtaining and using a session object, and session object identity.
  • EJB 3.0 Message-Driven Bean Component Contract: Develop code that implements a Message-Driven Bean Class. Identify correct and incorrect statements or examples about the interface(s) and methods a JMS Message-Driven bean must implement, and the required metadata. Describe the use and behavior of a JMS message driven bean, including concurrency of message processing, message redelivery, and message acknowledgement. Identify correct and incorrect statements or examples about the client view of a message driven bean.
  • Java Persistence API Entities: Identify correct and incorrect statements or examples about the characteristics of Java Persistence entities. Develop code to create valid entity classes, including the use of fields and properties, admissible types, and embeddable classes. Identify correct and incorrect statements or examples about primary keys and entity identity, including the use of compound primary keys. Implement association relationships using persistence entities, including the following associations: bidirectional for @OneToOne, @ManyToOne, @OneToMany, and @ManyToMany; unidirectional for @OneToOne, @ManyToOne, @OneToMany, and @ManyToMany. Given a set of requirements and entity classes choose and implement an appropriate object-relational mapping for association relationships. Given a set of requirements and entity classes, choose and implement an appropriate inheritance hierarchy strategy and/or an appropriate mapping strategy. Describe the use of annotations and XML mapping files, individually and in combination, for object-relational mapping.
  • Java Persistence Entity Operations: Describe how to manage entities, including using the EntityManager API and the cascade option. Identify correct and incorrect statements or examples about entity instance lifecycle, including the new, managed, detached, and removed states. Identify correct and incorrect statements or examples about EntityManager operations for managing an instance's state, including eager/lazy fetching, handling detached entities, and merging detached entities. Identify correct and incorrect statements or examples about Entity Listeners and Callback Methods, including: @PrePersist, @PostPersist, @PreRemove, @PostRemove, @PreUpdate, @PostUpdate, and @PostLoad, and when they are invoked. Identify correct and incorrect statements about concurrency, including how it is managed through the use of @Version attributes and optimistic locking.
  • Persistence Units and Persistence Contexts: Identify correct and incorrect statements or examples about JTA and resource-local entity managers. Identify correct and incorrect statements or examples about container-managed persistence contexts. Identify correct and incorrect statements or examples about application-managed persistence contexts. Identify correct and incorrect statements or examples about transaction management for persistence contexts, including persistence context propagation, the use of the EntityManager.joinTransaction() method, and the EntityTransaction API. Identify correct and incorrect statements or examples about persistence units, how persistence units are packaged, and the use of the persistence.xml file. Identify correct and incorrect statements or examples about the effect of persistence exceptions on transactions and persistence contexts.
  • Java Persistence Query Language: Develop queries that use the SELECT clause to determine query results, including the use of entity types, use of aggregates, and returning multiple values. Develop queries that use Java Persistence Query Language syntax for defining the domain of a query using JOIN clauses, IN, and prefetching. Use the WHERE clause to restrict query results using conditional expressions, including the use of literals, path expressions, named and positional parameters, logical operators, the following expressions (and their NOT options): BETWEEN, IN, LIKE, NULL, EMPTY, MEMBER [OF], EXISTS, ALL, ANY, SOME, and functional expressions. Develop Java Persistence Query Language statements that update a set of entities using UPDATE/SET and DELETE FROM. Declare and use named queries, dynamic queries, and SQL (native) queries. Obtain javax.persistence.Query objects and use the javax.persistence.Query API.
  • Transactions: Identify correct and incorrect statements or examples about bean-managed transaction demarcation. Identify correct and incorrect statements or examples about container-managed transaction demarcation, and given a list of transaction behaviors, match them with the appropriate transaction attribute. Identify correct and incorrect statements or examples about transaction propagation semantics. Identify correct and incorrect statements or examples about specifying transaction information via annotations and/or deployment descriptors. Identify correct and incorrect statements or examples about the use of the EJB API for transaction management, including getRollbackOnly, setRollbackOnly and the SessionSynchronization interfaces.
  • Exceptions: Identify correct and incorrect statements or examples about exception handling in EJB. Identify correct and incorrect statements or examples about application exceptions and system exceptions in session beans and message-driven beans, and defining a runtime exception as an application exception. Given a list of responsibilities related to exceptions, identify those which are the bean provider's, and those which are the responsibility of the container provider. Be prepared to recognize responsibilities for which neither the bean nor container provider is responsible. Identify correct and incorrect statements or examples about the client's view of exceptions received from an enterprise bean invocation. Given a particular method condition, identify the following: whether an exception will be thrown, the type of exception thrown, the container's action, and the client's view.
  • Security Management: Match security behaviors to declarative security specifications (default behavior, security roles, security role references, and method permissions). From a list of responsibilities, identify which roles are responsible for which aspects of security: application assembler, bean provider, deployer, container provider, system administrator, or server provider. Identify correct and incorrect statements or examples about use of the isCallerInRole and getCallerPrincipal EJB programmatic security APIs. Given a security-related deployment descriptor tag or annotation, identify correct and incorrect statements and/or code related to that tag.
Read More/Download

Popular Posts