Jakarta XML Web Services

Last updated
Jakarta XML Web Services
Other namesJava API for XML Web Services, JAX-WS
Original author(s) Sun Microsystems
Developer(s) Eclipse Foundation
Stable release
2.3.3 / February 19, 2020;4 years ago (2020-02-19)
Repository
Written in Java
Operating system Cross-platform
Platform Java
Type Application framework
License EPL 2.0 or GPL v2 w/Classpath exception
Website projects.eclipse.org/projects/ee4j.jaxws OOjs UI icon edit-ltr-progressive.svg

The Jakarta XML Web Services (JAX-WS; formerly Java API for XML Web Services) is a Jakarta EE API for creating web services, particularly SOAP services. JAX-WS is one of the Java XML programming APIs.

Contents

Overview

The JAX-WS 2.2 specification JSR 224 defines a standard Java- to-WSDL mapping which determines how WSDL operations are bound to Java methods when a SOAP message invokes a WSDL operation. This Java-to-WSDL mapping determines which Java method gets invoked and how that SOAP message is mapped to the method’s parameters.

This mapping also determines how the method’s return value gets mapped to the SOAP response.

JAX-WS uses annotations, introduced in Java SE 5, to simplify the development and deployment of web service clients and endpoints. It is part of the Java Web Services Development Pack. JAX-WS can be used in Java SE starting with version 6. [1] As of Java SE 11, JAX-WS was removed. For details, see JEP 320.

JAX-WS 2.0 replaced the JAX-RPC API in Java Platform, Enterprise Edition 5 which leans more towards document style Web Services.

This API provides the core of Eclipse Metro.

JAX-WS also is one of the foundations of WSIT.

Standards Supported

Main JWS Packages

PackageDescription
javax.xml.wsHas the Core JAX-WS APIs
javax.xml.ws.httpHas APIs specific to XML/HTTP Binding
javax.xml.ws.soapHas APIs specific to SOAP/HTTP Binding
javax.xml.ws.handlerHas APIs for message handlers
javax.xml.ws.spidefines SPIs for JAX-WS
javax.xml.ws.spi.httpProvides HTTP SPI that is used for portable deployment of JAX-WS in containers
javax.xml.ws.wsaddressingHas APIs related to WS-Addressing
javax.jwsHas APIs specific to Java to WSDL mapping annotations
javax.jws.soapHas APIs for mapping the Web Service onto the SOAP protocol
Java EE 7
SpecificationVersionStds. BodyJSR/Url
JAX-WS2.3JCP 224
Web Services1.3JCP 109
WS Metadata2.1JCP 181
JAXB 2.2JCP 222
SAAJ1.3JCP 67
SOAP1.2W3C soap
XML1.1W3C xml
WSDL1.1W3C wsdl

Implementations

Related Research Articles

Jakarta Enterprise Beans is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.

<span class="mw-page-title-main">Jakarta EE</span> Set of specifications extending Java SE

Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.

Java XML is a mark up language for marking up the structure of a text document. The Java programming language XML APIs developed by Sun Microsystems consist of the following separate computer-programming APIs:

<span class="mw-page-title-main">Jakarta Servlet</span> Jakarta EE programming language class

A Jakarta Servlet, formerly Java Servlet is a Java software component that extends the capabilities of a server. Although servlets can respond to many types of requests, they most commonly implement web containers for hosting web applications on web servers and thus qualify as a server-side servlet web API. Such web servlets are the Java counterpart to other dynamic web content technologies such as PHP and ASP.NET.

A web service (WS) is either:

Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service-oriented networks. Those resources are represented by objects called MBeans. In the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit.

The WS-I Basic Profile, a specification from the Web Services Interoperability industry consortium (WS-I), provides interoperability guidance for core Web Services specifications such as SOAP, WSDL, and UDDI. The profile uses Web Services Description Language (WSDL) to enable the description of services as sets of endpoints operating on messages.

The Java Web Services Development Pack (JWSDP) is a free software development kit (SDK) for developing Web Services, Web applications and Java applications with the newest technologies for Java.

Jakarta XML Binding is a software framework that allows Java EE developers to map Java classes to XML representations. JAXB provides two main features: the ability to marshal Java objects into XML and the inverse, i.e. to unmarshal XML back into Java objects. In other words, JAXB allows storing and retrieving data in memory in any XML format, without the need to implement a specific set of XML loading and saving routines for the program's class structure. It is similar to xsd.exe and XmlSerializer in the .NET Framework.

The Web Services Invocation Framework (WSIF) supports a simple and flexible Java API for invoking any Web Services Description Language (WSDL)-described service.

Jakarta XML RPC allows a Jakarta EE application to invoke a Java-based web service with a known description while still being consistent with its WSDL description. JAX-RPC is one of the Java XML programming APIs. It can be seen as Java RMIs over web services. JAX-RPC 2.0 was renamed JAX-WS 2.0. JAX-RPC 1 is deprecated with Java EE 6. The JAX-RPC service utilizes W3C standards like WSDL . The core API classes are located in the Java package javax.xml.rpc.

In software engineering, a WAR file is a file used to distribute a collection of JAR-files, JavaServer Pages, Java Servlets, Java classes, XML files, tag libraries, static web pages and other resources that together constitute a web application.

Jakarta SOAP with Attachments, as part of Jakarta XML Web Services (JAX-WS), provides a standard way to send XML documents over the Internet from the Jakarta EE platform.

Jakarta Persistence, also known as JPA is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.

<span class="mw-page-title-main">Apache Axis2</span> Web service engine

Apache Axis2 is a web service engine. It is a redesign and re-write of the widely used Apache Axis SOAP stack. Implementations of Axis2 are available in Java and C.

Apache CXF is an open source software project developing a Web services framework. It originated as the combination of Celtix developed by IONA Technologies and XFire developed by a team hosted at the now defunct host CodeHaus in 2006. These two projects were combined at the Apache Software Foundation. The name "CXF" was derived by combining "Celtix" and "XFire".

Metro is a high-performance, extensible, easy-to-use web service stack. Although historically an open-source part of the GlassFish application server, it can also be used in a stand-alone configuration. Components of Metro include: JAXB RI, JAX-WS RI, SAAJ RI, StAX and WSIT. Originally available under the CDDL and GPLv2 with classpath exception, it is now available under Eclipse Distribution License

Jakarta RESTful Web Services, is a Jakarta EE API specification that provides support in creating web services according to the Representational State Transfer (REST) architectural pattern. JAX-RS uses annotations, introduced in Java SE 5, to simplify the development and deployment of web service clients and endpoints.

<span class="mw-page-title-main">Web Services Description Language</span> XML-based interface description language

The Web Services Description Language is an XML-based interface description language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service, which provides a machine-readable description of how the service can be called, what parameters it expects, and what data structures it returns. Therefore, its purpose is roughly similar to that of a type signature in a programming language.

References

  1. Yang, Young (June 3, 2007). "JAX-WS Web Services Without Java EE Containers".