JAX-RPC Project

Part of Project GlassFish
JAX-WS 2.0

(new to RSS?)
JAX-WS 2.0 RI

Project Description

Welcome to the JAX-RPC Reference Implementation Project. This project is part of Project GlassFish and is in the JWSDP subcommunity at java.net.

This project develops and evolves the code base for the reference implementation of the JAX-RPC specification. The current code base supports JAX-RPC 1.1.

Overview

Introduction

The goal of the JAX-RPC project is to develop and evolve the code base for the Reference Implementation of JAX-RPC, the Java APIs for XML based RPC. The JAX-RPC specification is developed through the Java Community Process following the process described at jcp.org. This process involves an Expert Group with a lead that is responsible for delivering the specifications, reference implementations (RI) and Technology Compatibility kits (TCK). The primary goal of an RI is to support the development of the specification and to validate it. Specific RIs can have additional goals; the JAX-RPC RI is a production-quality implementation that is used directly in a number of products by Sun and other vendors.

The JAX-RPC expert group has wide industry participation with Sun Microsystems as the EG lead. The initial specification (JAX-RPC 1.0) was JSR-101 and was released in June 2002. A maintenance release followed in October 2003 providing better integration with JAXB 1.0 as well as better support for doc/literal.

The next version of the spec was renamed from JAX-RPC 2.0 to JAX-WS 2.0 and is being developed as JSR-224; this release will address a number of additional requirements in the area, and will increase the synergy between the JAXB and JAX-WS specifications. You can access the JAX-WS project page here.

An implementation of the JAX-RPC 1.1 specification is included in the latest Java Web Services Developer Pack release, JWSDP 2.0.

However, with the release of Java Web Services Developer Pack 2.0, you should start planning to move to the new, more modern, and easier-to-implement model of Web services provided in the integrated stack, the combination of JAX-WS 2.0 (which supplants JAX-RPC), JAXB 2.0, and SAAJ 1.3. Even so, JAX-RPC implementations will continue to be available for a suitable length of time to support backward compatibility and orderly transitions from the Web services architecture in previous versions of Java WSDP and Java WSDP 2.0.

If you are new to Web Services, it is strongly recommended that you use JAX-WS 2.0 instead of JAX-RPC. JAX-WS 2.0 comes with many new features not supported by JAX-RPC such as a new Dispatch interface which is much more powerful than the DII approach used by JAX-RPC. A big plus for JAX-WS is that it is included in the Mustang (Java SE 6) version of Java. This means that the size of client applications will be dramatically smaller. JAX-WS 2.0 is also part of the Glassfish project.

Binaries

We provide two types of binary releases: stable builds and weeklies.

Stable Releases are always fully tested but they can be labelled as either final or early access (EA). If the underlying Java API is not final, the release will - must, by JCP rule - be final. A stable EA release may be incomplete and may change substantially before being labelled as final.

Weekly releases are always EA and, although possibly unstable, they contain the latest functionality additions, bug fixes, performance improvements and other improvements.

Releases are available as follows:

Sources

You can access the sources as self-extracting bundles or through CVS.

Sources are available as follows:

Compatibility

Compatibility is a key requirement of the JCP process. The next few paragrahs provide a quick overview of this requirement.

JCP developed technologies require a specification, proof of concept Reference Implementation (RI) and Technology Compatibility Kit (TCK). The specification is delivered with a license that will allow the use of its intellectual property based on compatibility requirements, that include passing the TCK and follow the compatibility rules specified in the relevant TCK user's guide and license. The TCK is a collection of tests designed to verify an implementation's compatibility with the specification; to be compatible all the valid tests must be passed. Some technology requirements may not be tested by the TCK, but still must be implemented; other functionality may be difficult to test in a portable way, but is still required to be implemented.

All configurations of a product must be compatible. For example, you can't have a property that turns off security to run fast, if security is required by the specification. It is understood that not all combinations of options can be tested but implementors of Java technologies (and users creating derivative works from the source distributed here) should make efforts to design their modifications to work in all modes, and reasonable testing efforts should be made to insure that this was done. If in the process of testing, you believe there is an error in the TCK, you may issue a test challenge.

The TCK bundle for JAX-RPC 1.1 can be accessed by accepting the JDL and it is available from a separate jax-rpc-tck project, not under the usual "Version control" link of this project. This TCK can be used in derivative works from this RI code base. The TCK can also be obtained from Sun through a licensee contract that has more flexible terms (e.g. use in implementations unrelated to this project) and that includes support.

Compatibility artifacts are available as follows:

If you have a TCK support contract, please follow the test challenge procedure that was described in your contract. If you do not have a TCK support contract and you acquired access to the TCK through the JDL specifically to work on derivatives of this implementation, you should start by engaging in a conversation with the implementors of the project. Eventually we may ask you to submit a bug using "TCK" as the subcomponent field. As with support for the RI, the Sun engineers in this team will attempt to help developers that use the TCK and we expect most efforts to be directly applicable to either improving the TCK or the code base for this project but in some cases we may need to refer developers to the option of a paid TCK support contract.

Documentation

Documentation includes:

License

A summary of the key artifacts and their licenses is:

Stay tuned for terms for access to sources for commercial uses.

Support and Products

Official support is available through the inclusion of the final builds in the different products, including:

Informal, best-effort, support comes from the different community forums:

Participation

Your participation is fundamental to make this project useful to the Java Community. There are many ways to participate in this project; we encourage you to download and use our implementations. We currenty only accept observer and content developer roles. We expect to broaden up the participation as we bring the JAX-RPC 2.0 sources to this project in the near future.

We very much welcome contributions to the jwsdp-samples project. Since samples are almost always independent of each other, it is pretty easy to become a committer.

Developers are also encouraged to build on the core functionality with new projects in the jwsdp community.

History

Sun will continue to transition more of its development efforts to this site in the future to help create a vibrant development community around the Reference Implementation. Some content, including the tutorial, is still only available from the JWSDP home page at java.sun.com.