JAX-WS application packaging
We can package a JAX-WS application as a web service. A JAX-WS web service is contained within a WAR file or a WAR module within an EAR file.
A JAX-WS enabled WAR file contains:
- A WEB-INF/web.xml file. For example...
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" xmlns=http://java.sun.com/xml/ns/j2ee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> </web-app>
Annotated classes that implement the web services contained in the application module
[Optional] WSDL documents that describe the web services contained in the application module
The web.xml might contain servlet or servlet-mapping elements. When customizations to web.xml are not needed, the WAS runtime defines them dynamically as the module is loaded.
Annotated classes must contain, at a minimum, a web service implementation class that includes the @WebService annotation. The definition and specification of the web services-related annotations are provided by the JAX-WS and JSR-181 specifications. The web service implementation classes can exist within the WEB-INF/classes or directory within a JAR file contained in the WEB-INF/lib directory of the WAR file.
We can optionally include WSDL documents in the JAX-WS application packaging. If the WSDL document for a particular web service is omitted, then the WAS runtime constructs the WSDL definition dynamically from the annotations contained in the web service implementation classes.
Starting with WAS v7.0 and later, Java EE 5 application modules (web application modules version 2.5 or above, or EJB modules version 3.0 or above) are scanned for annotations to identify JAX-WS services and clients. However, pre-Java EE 5 application modules (web application modules version 2.4 or before, or EJB modules version 2.1 or before) are not scanned for JAX-WS annotations, by default, for performance considerations. In the Version 6.1 Feature Pack for Web Services, the default behavior is to scan pre-Java EE 5 web application modules to identify JAX-WS services and to scan pre-Java EE 5 web application modules and EJB modules for service clients during application installation. Because the default behavior for WAS v7 and later is to not scan pre-Java EE 5 modules for annotations during application installation or server startup, to preserve backward compatability with the feature pack from previous releases, configure either the UseWSFEP61ScanPolicy property in the META-INF/MANIFEST.MF of a WAR file or EJB module or define the JVM custom property, com.ibm.websphere.webservices.UseWSFEP61ScanPolicy, on servers to request scanning during application installation and server startup. To learn more about annotations scanning, see the JAX-WS annotations information.
(v8552) Avoid trouble: During the web services application deployment, utility jars are not scanned for annotations. If web services are packaged in utility jars, they cannot be detected by the web services engine. In such case, if the Start components as needed option is selected in the configuration settings for the application server, web service component cannot be started after you start the application server because there is no web service detected. To avoid this trouble use custom property...
com.ibm.websphere.webservices.StartWebServicesComponent
IBM recommends packaging the Service Endpoint Interface (SEI) and implementation classes of any third party web services with the application/module. Packaging this way ensures that the SEI and implementation classes are both visible to the application's classloader and prevents the occurrence of an exception like...
EndpointInterfaceDescriptionImpl: cannot find super class that was specified for this class
If the SEI and the implementation classes cannot be packaged with the application/module, we recommend packaging the jar files containing these classes into an isolated shared library and associating this shared library with the application/module.
Related concepts
WSDL Web services
Related tasks
Exposing methods in SEI-based JAX-WS web servicesDevelop JAX-WS web services with annotations Customize URL patterns in web.xml for JAX-WS applications JAX-WS annotations