Skip to main content


Jakarta SOAP with Attachments defines an API enabling developers to produce and consume messages conforming to the SOAP 1.1, SOAP 1.2, and SOAP Attachments Feature.

This project is part of Eclipse Metro

Table of Contents

Latest News

May 12, 2023 - Eclipse Implementation of Jakarta SOAP with Attachments 3.0.2 Final Release

The 3.0.2 release is a bugfix release of the Implementation in 3.0.x release stream fixing inconsistent owner element for setIdAttributeNode, unfolding possibly folded header values, prevention of StringIndexOutOfBoundsException and deprecating com.sun.xml.messaging.saaj.util.Base64 in favor of java.util.Base64.

March 30, 2023 - Eclipse Implementation of Jakarta SOAP with Attachments 3.0.1 Final Release

The 3.0.1 release is a bugfix release of the Implementation in 3.0.x release stream fixing the regression in MessageImpl.saveChanges().

September 22, 2022 - Eclipse Implementation of Jakarta SOAP with Attachments 3.0.0 Final Release

Jakarta SOAP with Attachments Specification 3.0 is a major update of the specification containing following changes:

  • addition of SOAPEnvelope.createName(String, String): Name method
  • not allowing null arguments in SOAPFault.createFault(String, String)
  • extension of SOAPConnection to implement java.io.Autocloseable
  • addition of an API allowing setting timeouts for set timeout for SOAPConnection.call
  • drop of all references to JAXM
  • drops of the search through Java SE installation in the implementation lookup
  • removal of deprecated SOAPElementFactory

See the specification for details.

The version 3.0.0 of the Implementation of the specification adopts these changes.

April 10, 2021 - Eclipse Implementation of Jakarta SOAP with Attachments 2.0.1 Final Release

The 2.0.1 release is a bugfix release integrating fixes in Jakarta EE APIs the implementation depends on.

November 4, 2020 - Eclipse Implementation of Jakarta SOAP with Attachments 2.0.0 Final Release

First release of Eclipse Implementation of Jakarta SOAP with Attachments fully moved to and supporting the Jakarta SOAP with Attachments Specification 2.0 with jakarta.xml.soap namespace.

October 26, 2020 - Jakarta SOAP with Attachments Specification 2.0 Final Release

Jakarta SOAP with Attachments Specification 2.0 is an update using jakarta.xml.soap namespace. See the specification.

June 2, 2020 - Eclipse Implementation of Jakarta SOAP with Attachments 2.0.0-M1 Milestone Release

First milestone of Eclipse Implementation of Jakarta SOAP with Attachments to accommodate the move of the Jakarta SOAP with Attachments Specification to jakarta namespace. See release notes.

April 30, 2020 - Eclipse Implementation of Jakarta SOAP with Attachments 1.5.2 Release

Updated Eclipse Implementation of Jakarta SOAP with Attachments to accommodate updated version of the Jakarta SOAP with Attachments Specification. See release notes.

February 28, 2020 - Jakarta SOAP with Attachments Specification 1.4.2 Release

First release of the Jakarta SOAP with Attachments Specification going through the Jakarta EE Specification Process.

July 20, 2019 - Jakarta SOAP with Attachments is the new name for SAAJ

The SAAJ technology contributed to the Eclipse Foundation has been renamed to “Jakarta SOAP with Attachments” to reflect its role in the Jakarta EE platform.

December 28, 2018 - SAAJ RI 1.5.1 Final Release

The 1.5.1 release is the first release of the SAAJ Reference Implementation under Eclipse Foundation.

September 14, 2018 - SAAJ RI project moves to the Eclipse Foundation!

The SAAJ project is now hosted at the Eclipse Foundation as part of the EE4J project.

By contributing to this project, you agree to these additional terms of use, described in CONTRIBUTING.

Download Jakarta SOAP Release

The latest release of Jakarta SOAP with Attachments Specification and API is 3.0.2.

        <dependencies>
            <dependency>
                <groupId>jakarta.xml.soap</groupId>
                <artifactId>jakarta.xml.soap-api</artifactId>
                <version>3.0.2</version>
            </dependency>
        </dependencies>

The latest release of Eclipse Implementation of Jakarta SOAP with Attachments is 3.0.4.

        <dependencies>
            <dependency>
                <groupId>com.sun.xml.messaging.saaj</groupId>
                <artifactId>saaj-impl</artifactId>
                <version>3.0.4</version>
            </dependency>
        </dependencies>

You can find all of the Jakarta SOAP with Attachments releases in Maven Central.

SOAP API Overview

The Jakarta SOAP with Attachments provides the API for creating and sending SOAP messages by means of the jakarta.xml.soap package. It is used for the SOAP messaging that goes on behind the scenes in Jakarta XML-based RPC and Jakarta XML Registries implementations. SOAP Handlers in Jakarta XML Web Services use Jakarta SOAP APIs to access the SOAP Message. Developers can also use it to write SOAP messaging applications directly instead of using Jakarta XML-based RPC/Jakarta XML Web Services.

The Jakarta SOAP API allows a client to send messages directly to the ultimate recipient using a SOAPConnection object, which provides a point-to-point connection to the intended recipient. Response messages are received synchronously using a request-response model. SOAPConnection (and its related classes) is a pure library implementation that lets you send SOAP messages directly to a remote party. A standalone client, that is, one that does not run in a container such as a servlet, must include client-side libraries in its CLASSPATH or MODULEPATH. This model is simple to get started but has limited possibilities for reliability and message delivery guarantees. For instance, the point-to-point message exchange model relies largely on the reliability of the underlying transport for delivering a message.

Please send feedback on this Jakarta SOAP API implementation release to metro-dev@eclipse.org

Release Documentation

The Jakarta SOAP with Attachments 2.0 API is defined through the Jakarta EE Specification Process.

The Jakarta SOAP with Attachments 2.0 specification and API documentation are available here.

The Jakarta SOAP with Attachments 2.0.0 Implementation API documentation is available here.

Samples

Some sample programs showing how to use the Jakarta SOAP with Attachments APIs are available here

simple

This sample application demonstrates how to send a simple SOAPMessage from a sender (servlet) to a receiver (servlet). This shows a simple round-trip message; the receiver responds with a reply. The messages appear in the directory from which you started the Web container.

book

This sample Web application demonstrates how to create and send a SOAPMessage from a sender (servlet) to a receiver (servlet). This sample demonstrates how a DOM document can be used in conjunction with SAAJ. A DOM document is created from information read from an XML file, and the content is added to the body of a message. The messages appear in the directory from which you started the Web container.

uddiping

This sample application is a real-time application that talks to a live UDDI registry. It sends a SOAPMessage query to the registry and prints out the message response using the SAAJ API.
Instructions for running this sample are in a README file in the uddiping directory.

soapprocessor

This sample provides an API that implements a SOAPProcessor object, which implements the processing model described in The SOAP Message Exchange Model. The sample consists of a JAR file, which can be used by other sample applications, and the associated source code.
For more information about this sample, see the README file in the soapprocessor directory.

Related Information


NOTE: The SOAP with Attachments API for Java 1.4 and earlier API is defined 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 specification, a reference implementation (RI) and a test compatibility kit (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 SAAJ RI is a production-quality implementation that is used directly in a number of products by Sun and other vendors. To emphasize the quality of the implementation we call it a Standard Implementation.

The SAAJ expert group has wide industry participation with Sun Microsystems as the EG lead. The initial API was part of JAXM 1.0 in JSR-67 and was released in December 2001; the specification was later separated from JAXM in a maintenance release in June 2002.


Back to the top