JAX-WS 4.0.0: A Guide to Download, Install, and Use
If you are looking for a way to create and consume SOAP web services in Java, you might have heard of JAX-WS, the Java API for XML Web Services. In this article, we will give you an overview of what JAX-WS is, why you should use the latest version 4.0.0, and how to download, install, and use it.
What is JAX-WS?
JAX-WS is a standardized API for creating and consuming SOAP (Simple Object Access Protocol) web services in Java. SOAP is an XML-based protocol for exchanging structured data over a network, using various transport protocols such as HTTP and SMTP.
jaxws-rt 4.0.0 download
JAX-WS is part of the Jakarta EE platform, formerly known as Java EE or Java Platform, Enterprise Edition. It provides a framework that simplifies the development of web services and clients, by hiding the low-level details of SOAP messages and XML processing.
JAX-WS Features
Some of the main features of JAX-WS are:
jaxws-rt 4.0.0 maven dependency
jaxws-rt 4.0.0 jar file download
jaxws-rt 4.0.0 web services framework
jaxws-rt 4.0.0 java ee 9
jaxws-rt 4.0.0 github pages
jaxws-rt 4.0.0 metro project
jaxws-rt 4.0.0 release notes
jaxws-rt 4.0.0 source code
jaxws-rt 4.0.0 documentation
jaxws-rt 4.0.0 javadoc
jaxws-rt 4.0.0 license
jaxws-rt 4.0.0 api reference
jaxws-rt 4.0.0 examples
jaxws-rt 4.0.0 tutorial
jaxws-rt 4.0.0 installation guide
jaxws-rt 4.0.0 user guide
jaxws-rt 4.0.0 developer guide
jaxws-rt 4.0.0 tools and infrastructure
jaxws-rt 4.0.0 client and server
jaxws-rt 4.0.0 annotations and xml
jaxws-rt 4.0.0 soap and rest
jaxws-rt 4.0.0 wsdl and schema
jaxws-rt 4.0.0 security and reliability
jaxws-rt 4.0.0 performance and scalability
jaxws-rt 4.0.0 compatibility and interoperability
It supports both top-down (contract-first) and bottom-up (contract-last) approaches for developing web services.
It uses annotations to define web service endpoints and clients, reducing the need for writing XML configuration files.
It supports various web service standards, such as WS-Addressing, WS-Policy, WS-Security, MTOM, and more.
It provides tools for generating WSDL (Web Services Description Language) documents, Java classes, and stubs from each other.
It integrates with JAXB (Java Architecture for XML Binding), the standard API for mapping Java objects to XML and vice versa.
It allows the use of custom data bindings, handlers, providers, dispatchers, and other extensions.
JAX-WS Versions
The first version of JAX-WS was released in 2005 as part of Java SE 6. Since then, several versions have been released, each adding new features and improvements.
The latest version of JAX-WS is 4.0.0, which was released in June 2021 as part of Jakarta EE 9.1.
Why JAX-WS 4.0.0?
If you are wondering why you should use JAX-WS 4.0.0 instead of previous versions, here are some reasons:
JAX-WS 4.0.0 Features
JAX-WS 4.0.0 introduces some new features that make it more compatible with Jakarta EE 9.1 and more convenient to use:
It supports Jakarta XML Web Services 3.1 specification, which defines the API for creating and consuming SOAP web services in Jakarta EE.
It uses Jakarta namespace instead of javax namespace for all the classes and packages, following the namespace change from Java EE to Jakarta EE.
It supports Jakarta RESTful Web Services 3.1 specification, which defines the API for creating and consuming RESTful web services in Jakarta EE.
It supports Jakarta SOAP with Attachments 2.1 specification, which defines the API for handling SOAP messages with attachments in Jakarta EE.
It supports Jakarta Web Services Metadata 3.1 specification, which defines the annotations for web service endpoints and clients in Jakarta EE.
It supports Jakarta XML Binding 3.1 specification, which defines the API for mapping Java objects to XML and vice versa in Jakarta EE.
It supports Jakarta Enterprise Web Services 2.1 specification, which defines the requirements for web services in Jakarta EE.
JAX-WS 4.0.0 Comparison with Previous Versions
JAX-WS 4.0.0 is mostly backward compatible with previous versions, except for some breaking changes that are necessary for the namespace change from Java EE to Jakarta EE.
Some of the main differences between JAX-WS 4.0.0 and previous versions are:
The package names have changed from javax.xml.ws to jakarta.xml.ws, and from javax.jws to jakarta.jws.
The Maven coordinates have changed from com.sun.xml.ws:jaxws-rt to org.glassfish.metro:jaxws-rt.
The WSDL documents generated by JAX-WS 4.0.0 use the jakarta namespace instead of the javax namespace for the schema elements.
The JAX-WS tools have changed their names from wsgen, wsimport, schemagen, and xjc to jaxws-wsgen, jaxws-wsimport, jaxws-schemagen, and jaxws-xjc.
JAX-WS 4.0.0 Benefits and Drawbacks
JAX-WS 4.0.0 has some benefits and drawbacks that you should consider before using it:
The benefits of JAX-WS 4.0.0 are:
It is up to date with the latest specifications and standards for web services in Jakarta EE.
It is compatible with other Jakarta EE components and technologies, such as CDI, EJB, JPA, and more.
It is supported by various application servers and frameworks, such as GlassFish, Payara, WildFly, Spring Boot, and more.
It is easy to use and provides a high-level abstraction for web service development and consumption.
The drawbacks of JAX-WS 4.0.0 are:
It requires some changes in the code and configuration files if you migrate from previous versions of JAX-WS.
It may not be compatible with some legacy web services or clients that use the old javax namespace or older versions of SOAP or WSDL.
It may not support some advanced features or customizations that are available in other web service frameworks or libraries.
JAX-WS 4.0.0 Alternatives
JAX-WS 4.0.0 is not the only option for creating and consuming SOAP web services in Java. There are other frameworks and libraries that offer similar or different features and capabilities.
Some of the popular alternatives to JAX-WS 4.0.0 are:
Apache CXF: An open source framework that supports both SOAP and RESTful web services, as well as various web service standards and protocols. It also provides integration with Spring, Hibernate, JAX-RS, and more.
Apache Axis2: An open source framework that supports both SOAP and RESTful web services, as well as various web service standards and protocols. It also provides tools for generating and deploying web services and clients.
Spring Web Services: A module of the Spring framework that supports contract-first development of SOAP web services, using XML schemas and WSDL documents. It also provides integration with Spring Boot, Spring Security, Spring Data, and more.
JAX-RPC: A deprecated API for creating and consuming SOAP web services in Java, which was replaced by JAX-WS. It is still supported by some application servers and frameworks, but it is not recommended for new development.
How to Download JAX-WS 4.0.0?
If you want to use JAX-WS 4.0.0 in your project, you need to download the JAX-WS runtime library, which contains the classes and resources required for creating and consuming SOAP web services with JAX-WS.
There are two ways to download JAX-WS 4.0.0:
Downloading from Maven Repository
If you are using Maven as your build tool, you can add the following dependency to your pom.xml file:
<dependency> <groupId>org.glassfish.metro</groupId> <artifactId>jaxws-rt</artifactId> <version>4.0.0</version> </dependency>
This will automatically download the JAX-WS runtime library from the Maven central repository and add it to your project classpath.
Downloading from GitHub
If you are not using Maven, you can download the JAX-WS runtime library from the GitHub repository of the project:
Go to
Download the jaxws-rt-4.0.0.jar file from the Assets section.
Add the jar file to your project classpath.
How to Install JAX-WS 4.0.0?
After downloading the JAX-WS runtime library, you need to install it on your system, so that you can use it in your development and deployment environments.
The installation process may vary depending on your operating system and application server, but here are some general steps that you can follow:
Installing on Windows
To install JAX-WS 4.0.0 on Windows, you can do the following:
Create a folder named jaxws-4.0.0 in your preferred location, such as C:\Program Files.
Copy the jaxws-rt-4.0.0.jar file to the jaxws-4.0.0 folder.
Add the jaxws-4.0.0 folder to your system PATH environment variable, so that you can access the JAX-WS tools from any command prompt.
Add the jaxws-rt-4.0.0.jar file to your application server classpath, so that you can deploy and run web services and clients with JAX-WS.
Installing on Linux
To install JAX-WS 4.0.0 on Linux, you can do the following:
Create a folder named jaxws-4.0.0 in your preferred location, such as /opt.
Copy the jaxws-rt-4.0.0.jar file to the jaxws-4.0.0 folder.
Add the jaxws-4.0.0 folder to your system PATH environment variable, so that you can access the JAX-WS tools from any terminal.
Add the jaxws-rt-4.0.0.jar file to your application server classpath, so that you can deploy and run web services and clients with JAX-WS.
Installing on Mac OS
To install JAX-WS 4.0.0 on Mac OS, you can do the following:
Create a folder named jaxws-4.0.0 in your preferred location, such as /Applications.
Copy the jaxws-rt-4.0.0.jar file to the jaxws-4.0.0 folder.
Add the jaxws-4.0.0 folder to your system PATH environment variable, so that you can access the JAX-WS tools from any terminal.
Add the jaxws-rt-4.0.0.jar file to your application server classpath, so that you can deploy and run web services and clients with JAX-WS.
How to Use JAX-WS 4.0.0?
Once you have installed JAX-WS 4.0.0 on your system, you can start using it to create and consume SOAP web services in Java.
There are three main steps to use JAX-WS 4.0.0:
Creating a SOAP web service with JAX-WS 4.0.0
Consuming a SOAP web service with JAX-WS 4.0.0
Using JAX-WS tools with JAX-WS 4.0.0
Creating a SOAP Web Service with JAX-WS 4.0.0
To create a SOAP web service with JAX-WS 4.0.0, you need to do the following:
Create a Java class that implements the business logic of your web service.
Annotate the class with @jakarta.jws.WebService to indicate that it is a web service endpoint.
Annotate the methods that you want to expose as web service operations with @jakarta.jws.WebMethod.
Optionally, you can customize the web service name, namespace, port name, and other properties using the annotation attributes.
Compile the class and generate the WSDL document using the jaxws-wsgen tool.
Deploy the class and the WSDL document to your application server.
For example, here is a simple web service class that calculates the sum of two numbers:
@jakarta.jws.WebService(name = "CalculatorService", targetNamespace = " public class Calculator @jakarta.jws.WebMethod(operationName = "add") public int add(int a, int b) return a + b;
Consuming a SOAP Web Service with JAX-WS 4.0.0
To consume a SOAP web service with JAX-WS 4.0.0, you need to do the following:
Obtain the WSDL document of the web service that you want to consume.
Generate the Java classes and stubs from the WSDL document using the jaxws-wsimport tool.
Create a Java class that acts as a web service client.
Annotate the class with @jakarta.xml.ws.WebServiceClient to indicate that it is a web service client.
Annotate a field or a method with @jakarta.xml.ws.WebServiceRef to inject a reference to the web service.
Use the injected reference to invoke the web service operations.
Compile and run the client class.
For example, here is a simple web service client that consumes the Calculator web service:
@jakarta.xml.ws.WebServiceClient(name = "CalculatorClient") public class CalculatorClient @jakarta.xml.ws.WebServiceRef(wsdlLocation = " private CalculatorService calculatorService; public int add(int a, int b) Calculator calculator = calculatorService.getCalculatorPort(); return calculator.add(a, b); public static void main(String[] args) CalculatorClient client = new CalculatorClient(); System.out.println("The sum of 2 and 3 is " + client.add(2, 3)); Using JAX-WS Tools with JAX-WS 4.0.0
JAX-WS 4.0.0 provides a set of tools that can help you with the development and testing of web services and clients. These tools are:
jaxws-wsgen: A tool that generates WSDL documents from annotated web service classes.
jaxws-wsimport: A tool that generates Java classes and stubs from WSDL documents.
jaxws-schemagen: A tool that generates XML schemas from annotated Java classes.
jaxws-xjc: A tool that generates Java classes from XML schemas.
jaxws-wsmonitor: A tool that monitors and displays the SOAP messages exchanged between web services and clients.
To use these tools, you need to invoke them from the command line, passing the appropriate options and arguments. For example, to generate a WSDL document from a web service class, you can use the following command:
jaxws-wsgen -cp . -d output -wsdl Calculator
This command will generate a WSDL document named CalculatorService.wsdl in the output folder, using the Calculator class in the current classpath.
You can find more information about these tools and their options in the .
Conclusion
In this article, we have learned what JAX-WS is, why you should use the latest version 4.0.0, and how to download, install, and use it. We have also seen some examples of creating and consuming SOAP web services with JAX-WS 4.0.0, and using JAX-WS tools to assist us.
JAX-WS 4.0.0 is a powerful and easy-to-use API for developing and deploying SOAP web services in Java. It is compatible with Jakarta EE 9.1 and supports various web service standards and protocols. It also provides a high-level abstraction that hides the low-level details of SOAP messages and XML processing.
If you are looking for a way to create and consume SOAP web services in Java, you should definitely give JAX-WS 4.0.0 a try.
FAQs
Here are some frequently asked questions about JAX-WS 4.0.0:
What is the difference between JAX-WS and JAX-RS?
JAX-WS and JAX-RS are both APIs for creating and consuming web services in Java, but they use different protocols and formats. JAX-WS is for SOAP web services, which use XML as the data format and SOAP as the message protocol. JAX-RS is for RESTful web services, which use various data formats such as JSON, XML, or plain text, and HTTP as the message protocol.
How can I migrate from JAX-WS 2.x or 3.x to JAX-WS 4.0.0?
To migrate from JAX-WS 2.x or 3.x to JAX-WS 4.0.0, you need to make some changes in your code and configuration files, such as:
Replace the javax.xml.ws and javax.jws packages with jakarta.xml.ws and jakarta.jws packages.
Replace the com.sun.xml.ws:jaxws-rt dependency with org.glassfish.metro:jaxws-rt dependency.
Regenerate the WSDL documents, Java classes, and stubs using the jaxws-wsgen and jaxws-wsimport tools.
Update your application server classpath to include the jaxws-rt-4.0.0.jar file.
How can I test my web services and clients with JAX-WS 4.0.0?
To test your web services and clients with JAX-WS 4.0.0, you can use various tools and frameworks, such as:
The jaxws-wsmonitor tool, which allows you to monitor and display the SOAP messages exchanged between web services and clients.
The SoapUI tool, which allows you to create and execute functional, load, security, and compliance tests for SOAP web services.
The Postman tool, which allows you to send requests and receive responses from SOAP web services.
The JUnit framework, which allows you to write and run unit tests for your web service classes and methods.
How can I secure my web services and clients with JAX-WS 4.0.0?
To secure your web services and clients with JAX-WS 4.0.0, you can use various mechanisms and standards, such as:
The HTTPS protocol, which encrypts the communication between web services and clients using SSL/TLS certificates.
The WS-Security standard, which provides message-level security for SOAP web services, such as encryption, digital signatures, authentication, and authorization.
The WS-Policy standard, which defines policies for web service security, quality of service, and other aspects.
The WS-Trust standard, which defines a framework for issuing, renewing, and validating security tokens for web service access.
The WS-Federation standard, which defines a mechanism for federated identity management for web service access.
44f88ac181
Comments