Sample projects using JAX-WS technologies.
Almost all sample projects can be run as standalone projects using gradle run
and are ready to use with JDK 11 or higher.
This is also the recommended way.
Furthermore, the build files use the Gradle Cargo plugin for auto-deployment to Glassfish 4.
For the available Gradle tasks see the documentation.
Please see the cargo documentation for the default configuration of the used application server.
The plugin will download and install the server automatically for each project. The admin interface can be found at http://admin:adminadmin@localhost:4848
.
However, the plugin currently works reliably only with JDK 8.
When Gradle is installed on your system all tasks can be run directly from the sub-project's root folder, e.g. gradle war
. Otherwise you can use the Gradle wrapper from the root and use an absolute path like gradlew java-first:minimal:war
.
Use gradlew eclipse
to generate Eclipse project files for all of the modules.
This also works for IntelliJ IDEA with gradlew idea
.
- Java-first Web Services
- Deployment Styles
- WSDL-first Web Services & Client Generation
- Data Type Mapping
- Method Overloading
- Exceptions
- WSDL Styles
Simple bottom-up JAX-WS example. The Web service returns German chancellors that reigned in a given period of time.
Minimal example for exposing a Web service with JAX-WS annotations.
The project can be run as a standalone service via gradlew java-first:minimal:run
.
The Web service should be available at http://localhost:8080/minimal/HistoryService
.
In this example more annotations are used to override default conventions of JAX-WS, e.g. the naming of parameters or return types.
The project can be run as a standalone service via gradlew java-first:custom:run
.
The Web service should be available at http://localhost:8080/custom/HistoryService
.
Demonstrates several JAX-WS deployments as a standalone application, on JSR 109-compatible application servers (e.g. Glassfish) and Tomcat.
The standalone project uses javax.xml.ws.Endpoint
to run a server instance. It is the simplest way to expose an experimental JAX-WS Web service.
Run the project via gradlew deployment-styles:standalone:run
.
The Web service should be available at http://localhost:8080/standalone/GreetingsService
.
Notice: The plugin used in this example only runs reliably with JDK 8. With a newer JDK, there might be problems.
To deploy the sample to Glassfish run gradle cargoRunLocal
.
The Web service should be available at http://localhost:8080/jsr109/GreetingsService
.
As an alternative, you can setup a local Glassfish sever manually, and deploy the war
-file there.
Tomcat needs additional deployment descriptors and the JAX-WS implementation in order to run JAX-WS Web services.
Build with gradle war
and manually deploy to a Tomcat instance.
Demonstrates the usage of the wsimport tool to generate Web Services interfaces and clients using a top-down approach. First run the java-first:custom project in order to be able to access the service with the wsimport client. Use gradle run
to run the web services test client.
Demonstrates the creation of a Web service client without additional code generation.
See this blog for an explanation.
Demonstrates type mappings from Java to WSDL/XSD and vice versa.
The project can be run as a standalone service via gradlew type-mapping:java2wsdl:run
.
The mapped WSDL should be available at http://localhost:8080/wsdl2java/Wsdl2JavaService?wsdl
.
The Java artifacts can be generated via gradle wsimport
.
Demonstrates the mapping of overloaded Java methods via custom mappings.
The project can be run as a standalone service via gradlew method-overloading:run
.
The Web service should be available at http://localhost:8080/method-overloading/VolumeService
.
Demonstrates the mapping of standard Java exceptions and soap-style exceptions with JAX-WS. Each Exception type has a corresponding client project to demonstrate the WSDL mapping to Java stubs.
Demonstrates the problem of mapping a standard-like Java Exception to SOAP faults.
If the Exception does not follow this style, JAX-WS will generate a wrapper class and the Exception will be put in the FaultBean class.
The project can be run as a standalone service via gradlew exceptions:java-exception:run
.
The Web service should be available at http://localhost:8080/java-exception/FaultService
.
The Java artifacts can be generated via gradle wsimport
.
Demonstrates a custom Java Exception implementation that maps the SOAP fault structure.
The project can be run as a standalone service via gradlew exceptions:custom-fault:run
.
The Web service should be available at http://localhost:8080/custom-fault/FaultService
.
The Java artifacts can be generated via gradle wsimport
.
Uses the SOAPFaultException
implementation. More information about SOAP faults can be found here.
Demonstrates the several WSDL styles rpc-encoded, rpc-literal, document-literal and document-literal wrapped. See this blog for a detailed explanation.
The Web service should be available at http://localhost:8080/document-literal/GreetingsService
.
The Web service should be available at http://localhost:8080/document-literal-wrapped/GreetingsService
.
No longer supported by JAX-WS 2.
The Web service should be available at http://localhost:8080/rpc-literal/GreetingsService
.