uCosminexus Application Server

Web Service Development Guide

3020-3-Y23-10(E)


Contents

Notices
Summary of amendments
Preface

Part 1: Overview

1. Overview of Developing and Executing Web services
1.1 JAX-WS/JAX-RS specifications compliant version, prefix and name space URI
1.2 Overview of developing Web services
1.2.1 Overview of developing SOAP Web services
1.2.2 Overview of developing RESTful Web services
1.3 Functionality used for developing and executing the Web services
1.3.1 Functionality of SOAP Web services
1.3.2 Functionality of RESTful Web services
1.4 Prerequisites for developing and executing Web services
1.4.1 Prerequisite component software
1.4.2 Prerequisites related to functionality and specifications
1.5 Format of Web services and Clients
1.5.1 Format of Web services
1.5.2 Format of clients
1.6 Setting up JAX-WS and JAX-RS engine

2. Procedures for Development
2.1 Development flow of SOAP Web Services
2.1.1 Development starting from WSDL
2.1.2 Development starting from SEI
2.1.3 Development starting from SEI (When using the cjwsgen command)
2.1.4 Development starting from a provider
2.2 Procedure of developing Web Service clients
2.2.1 Developing stub-based Web Service clients
2.2.2 Developing dispatch-based Web Service clients
2.3 Development flow of RESTful Web Services

Part 2: Development and Execution

3. Points on developing SOAP Web Services
3.1 Creating WSDL
3.2 Mapping between WSDL and Java sources
3.2.1 Examples of mapping WSDL to Java sources
3.2.2 Examples of mapping Java sources to WSDL
3.3 Creating Web Service Implementation Classes and Provider Implementation Classes
3.4 Creating web.xml
3.5 Creating an archive
3.5.1 Configuring WAR files
3.5.2 Configuring EJB JAR files
3.5.3 Creating EAR files
3.5.4 Creating WAR file for the settings of EJB Web Service
3.6 Implementing Web Service clients
3.6.1 Example of stub-based implementation
3.6.2 Example of dispatch-based implementation
3.6.3 Examples of implementation using JAX-WS API
3.6.4 Notes
3.6.5 Notes on accessing the Web Services that use the addressing functionality

4. Examples of the Development Starting from WSDL
4.1 Configuration examples of development (Starting from WSDL)
4.2 Examples for the procedure of development (Starting from WSDL)
4.3 Examples for the development of Web Services (Starting from WSDL)
4.3.1 Creating a WSDL file
4.3.2 Generating SEI
4.3.3 Creating a Web Service Implementation Class
4.3.4 Compiling the Web Service Implementation Class
4.3.5 Creating web.xml
4.3.6 Creating application.xml
4.3.7 Creating EAR files
4.4 Examples of deployment and startup (Starting from WSDL)
4.4.1 Deploying EAR files
4.4.2 Starting Web Services
4.5 Examples for deploying Web Service clients (Starting from WSDL)
4.5.1 Generating a service class
4.5.2 Creating an implementation class for the Web Service client
4.5.3 Compiling the implementation class for the Web Service client
4.6 Examples for executing Web Services (Starting from WSDL)
4.6.1 Creating an option definition file for Java applications
4.6.2 Creating a user property file for Java applications
4.6.3 Executing Web Service clients

5. Examples for the Development Starting from SEI
5.1 Configuration of development examples (Starting from SEI)
5.2 Example of development flow (Starting from SEI)
5.3 Examples of Web Service development (starting from SEI)
5.3.1 Creating Web Services Implementation Class
5.3.2 Compiling Web Services Implementation Class
5.3.3 Creating web.xml
5.3.4 Creating application.xml
5.3.5 Creating a WSDL file (Optional)
5.3.6 Creating EAR files
5.4 Examples of deployment and startup (Starting from SEI)
5.4.1 Deploying EAR files
5.4.2 Starting Web Services
5.5 Examples of developing Web Service clients (Starting from SEI)
5.5.1 Generating a service class
5.5.2 Creating an implementation class for the Web Service client
5.5.3 Compiling the implementation class for the Web Service client
5.6 Examples for executing Web Services (Starting from SEI)
5.6.1 Creating an option definition file for Java applications
5.6.2 Creating a user property file for Java applications
5.6.3 Executing Web Service clients

6. Examples of Development Starting from SEI (Using the cjwsgen Command)
6.1 Configuration of development examples (starting from SEI and the cjwsgen command)
6.2 Flow of development examples (starting from SEI and the cjwsgen command)
6.3 Development example of Web Services (Starting from SEI and the cjwsgen command)
6.3.1 Saving the already compiled class files (starting from SEI and the cjwsgen command)
6.3.2 Generating Java sources (starting from SEI and the cjwsgen command)
6.3.3 Creating web.xml (starting from SEI and the cjwsgen command)
6.3.4 Creating application.xml
6.3.5 Creating EAR files
6.4 Examples of deployment and startup (Starting from SEI and the cjwsgen command)
6.4.1 Deploying EAR files
6.4.2 Starting Web Services
6.5 Development examples of Web Services clients (Starting from SEI and the cjwsgen command)
6.5.1 Creating service classes
6.5.2 Creating Implementation Classes for Web Services clients
6.5.3 Compiling Implementation Classes for Web Services clients
6.6 Examples of executing Web Services (starting from SEI and the cjwsgen command)
6.6.1 Creating option definition files for Java applications
6.6.2 Creating user property files for Java applications
6.6.3 Executing Web Services clients

7. Examples of Development Starting from SEI (For Customization)
7.1 Configuration examples for development (Starting from SEI and customization)
7.2 Flow of development examples (Starting from SEI and customization)
7.3 Examples of developing Web Services (Starting from SEI or customization)
7.3.1 Creating Web Services Implementation Class
7.3.2 Compiling Web Services Implementation Class
7.3.3 Creating web.xml
7.3.4 Creating application.xml
7.3.5 Creating an EAR file
7.4 Examples of deployment and startup (Starting from SEI or customization)
7.4.1 Deploying EAR files
7.4.2 Starting Web Services
7.5 Examples of developing Web Service clients (Starting from SEI or customization)
7.5.1 Creating a service class
7.5.2 Creating an implementation class for the Web Service client
7.5.3 Compiling the implementation class for the Web Service client
7.6 Examples for executing Web Services (Starting from SEI or customization)
7.6.1 Creating an option definition file for Java applications
7.6.2 Creating a user property file for Java applications
7.6.3 Executing Web Service clients

8. Examples of the Development Starting from SEI (For EJB Web Services)
8.1 Configuration of the development examples (Starting from SEI and EJB Web Services)
8.2 Procedure for the development examples (Starting from SEI and EJB Web Service)
8.3 Example of Web Service development (Starting from SEI and EJB Web Service)
8.3.1 Creating Web Services Implementation Class(starting from SEI and EJB Web Service)
8.3.2 Compiling Web Services Implementation Class
8.3.3 Creating application.xml
8.3.4 Creating a WSDL file (optional)
8.3.5 Creating EAR files
8.4 Examples of deployment and startup (Starting from SEI and EJB Web Service)
8.4.1 Deploying EAR files
8.4.2 Starting Web Services
8.5 Examples of Web Service client development (Starting from SEI and EJB Web Service)
8.5.1 Generating a service class
8.5.2 Creating an Implementation Class for the Web Services client
8.5.3 Compiling the Implementation Class for the Web Services client
8.6 Examples of executing Web Services (Starting from SEI and EJB Web Service)
8.6.1 Creating an option definition file for Java applications
8.6.2 Creating a user property file for Java applications
8.6.3 Executing the Web Services clients

9. Examples of Development Starting from a Provider (using SAAJ)
9.1 Configuration examples for development (Starting from a provider and SAAJ)
9.2 Procedure for the development examples (Starting from a provider and SAAJ)
9.3 Examples of developing Web Services (Starting from a provider and SAAJ)
9.3.1 Creating Provider Implementation Classes
9.3.2 Generating Java sources
9.3.3 Creating web.xml
9.3.4 Creating application.xml
9.3.5 Creating EAR files
9.4 Examples of deployment and startup (Starting from a provider and SAAJ)
9.4.1 Deploying EAR files
9.4.2 Starting Web Services
9.5 Examples of Web Services client development (Starting from a provider and SAAJ)
9.5.1 Creating Implementation Class for the Web Services client
9.5.2 Compiling Implementation Class for the Web Services client
9.6 Examples for executing Web Services (Starting from a provider and SAAJ)
9.6.1 Creating option definition files for Java applications
9.6.2 Creating user property files for Java applications
9.6.3 Executing Web Services clients

10. Settings and Operations of the JAX-WS Functionality
10.1 Action definition file
10.1.1 Coding rules for the action definition file
10.1.2 Settings for the common definition file
10.1.3 Settings for the process-wise definition file
10.2 Operations of the JAX-WS engine
10.2.1 Operations and support range of the JAX-WS engine
10.2.2 Discovery and dispatch
10.3 Customization using cosminexus-jaxws.xml
10.3.1 File name and storage destination of cosminexus-jaxws.xml
10.3.2 Format of cosminexus-jaxws.xml
10.4 Fault and exception processing
10.4.1 Fault and exception processing on the Web Service
10.4.2 Fault processing on the Web Service client
10.4.3 Propagation of the Java exception
10.4.4 HTTP status code when binding an exception to a fault
10.4.5 Notes on customizing an error page
10.5 Interface transparency
10.6 Issuing the Meta data
10.7 Displaying Web Service information
10.8 HTTP methods that can be used
10.9 Initializing and destroying the Web Service
10.10 Connecting through a proxy server
10.11 Connection by SSL protocol
10.12 Connection by basic authentication
10.13 Selecting the SOAP version
10.13.1 Selecting the SOAP version (when developing Web Services)
10.13.2 Selecting the SOAP version (when developing a Web Service client)
10.13.3 Selecting the SOAP version (during the execution)
10.14 Executing a client application using the command line
10.14.1 Settings for command line usage
10.14.2 Executing a command line
10.14.3 Precautions on using the command line
10.15 HTTP status codes
10.16 HTTP header
10.17 gzip compression of the HTTP request body
10.18 Linking with the HTTP response compression functionality
10.19 Invoking an EJB Web Service
10.20 Preventing the resending of a request by sun.net.www.http.HttpClient
10.21 Injection
10.21.1 Injecting service classes and ports
10.21.2 Injecting a Web Services context
10.22 One-way operations
10.22.1 Notes on one-way operations
10.23 A functionality to dynamically generate wrapper bean

11. Points on developing RESTful Web Services
11.1 Creating a root resource class
11.2 Creating web.xml
11.3 Creating an archive
11.3.1 Configuring a WAR file
11.3.2 Creating an EAR file
11.4 Implementing a client by using a client API for RESTful Web Services
11.4.1 Use case of a Web resource client
11.4.2 Mechanism of a client API for RESTful Web Services
11.4.3 Setting properties and features
11.4.4 Setting an HTTP header
11.4.5 Notes

12. Examples of Developing RESTful Web Services
12.1 Configuration of development examples
12.2 Procedures in the development example
12.3 Example of developing Web resources
12.3.1 Creating root resource classes
12.3.2 Compiling Java sources
12.3.3 Creating web.xml
12.3.4 Creating application.xml
12.3.5 Creating an EAR file
12.4 Examples of deploying and starting
12.4.1 Deploying EAR files
12.4.2 Starting Web Services
12.5 Examples of developing a Web resource client
12.5.1 Creating Implementation Class of a Web resource client (by using the client APIs)
12.5.2 Creating Implementation Class of a Web resource client (by using java.net.HttpURLConnection)
12.5.3 Compiling Implementation Classes of a Web resource client
12.6 Examples of invoking Web resources
12.6.1 Creating an option definition file for Java applications
12.6.2 Creating a user property file for Java applications
12.6.3 Starting a Web resource client

13. Settings and Operations of the JAX-RS Functionality
13.1 Action definition file
13.1.1 Coding rules for the action definition file
13.1.2 Settings of a common definition file
13.1.3 Setting up a process-wise definition file (JAX-RS)
13.2 Operations of the JAX-RS engine
13.2.1 Discovery and dispatch
13.3 Publishing the meta data
13.4 Connecting through a proxy server
13.5 Connecting with an SSL protocol
13.6 Connecting by basic authentication
13.7 Troubleshooting
13.7.1 Checking the syntax when initializing a Web resource (KDJJ20003-W and KDJJ10006-E)
13.7.2 Errors detected in the received HTTP request processing
13.7.3 Exceptions that can be handled with an exception mapping provider
13.7.4 Throwing exceptions to the J2EE server
13.7.5 Exception (KDJJ18888) that occurs when using client APIs

Part 3: References

14. Commands
14.1 cjwsimport command
14.2 apt command
14.3 cjwsgen command
14.4 Notes on using a command line interface in Windows with enabled UAC
14.4.1 When the administrator uses a command line interface
14.4.2 When a user other than the administrator uses a command line interface

15. Mapping from WSDL to Java
15.1 Default mapping from WSDL to Java
15.1.1 Mapping a namespace to a package name
15.1.2 Mapping a port type to a SEI name
15.1.3 Mapping from an operation to a method name
15.1.4 Mapping a message part to a parameter and return value (For wrapper style)
15.1.5 Mapping the message part to the parameter and return value (For non-wrapper style)
15.1.6 Mapping the schema type to the Java type
15.1.7 Mapping the fault to the exception class
15.1.8 Mapping the binding extension element to the parameter
15.1.9 Mapping the service and port to the service class
15.1.10 Mapping to the skeleton class
15.1.11 Precautions on mapping from WSDL to Java
15.2 Customized mapping of WSDL to Java
15.2.1 Customizations in the embedded binding declaration
15.2.2 Customizations with the external binding file
15.2.3 Concurrent specification of the embedded binding declaration and external binding file
15.2.4 Value that can be specified in the jaxws:bindings element
15.2.5 Values of the elements to be customized
15.2.6 Dealing with the name conflict
15.2.7 Operations when the jaxws:provider element is coded
15.2.8 Notes on customizing the SEI name
15.2.9 Notes on customizing inout parameter name in the jaxws: parameter element
15.2.10 Skeleton class name when the SEI name is customized with the jaxws:class element

16. Mapping from Java to WSDL
16.1 Default mapping of Java to WSDL
16.1.1 Mapping the package name to the name space
16.1.2 Mapping the Web Service Implementation Class to SEI
16.1.3 Mapping the SEI name to the port type
16.1.4 Mapping the name of method of SEI to an operation
16.1.5 Mapping the parameter and return value to the message part (For wrapper style)
16.1.6 Mapping the parameter and return value to the message part (For non-wrapper style)
16.1.7 Mapping the Java wrapper exception class to the fault
16.1.8 Mapping SEI to binding
16.1.9 Mapping the Web Service implementation class to the service and port
16.1.10 Precautions for mapping from Java to WSDL
16.2 Customized mapping from Java to WSDL
16.2.1 List of annotations
16.2.2 com.sun.xml.ws.developer.StreamingAttachment annotation
16.2.3 javax.jws.HandlerChain annotation
16.2.4 javax.jws.Oneway annotation
16.2.5 javax.jws.soap.SOAPBinding annotation
16.2.6 javax.jws.WebMethod annotation
16.2.7 javax.jws.WebParam annotation
16.2.8 javax.jws.WebResult annotation
16.2.9 javax.jws.WebService annotation
16.2.10 javax.xml.bind.annotation.XmlElement annotation
16.2.11 javax.xml.bind.annotation.XmlMimeType annotation
16.2.12 javax.xml.bind.annotation.XmlType annotation
16.2.13 javax.xml.ws.Action annotation
16.2.14 javax.xml.ws.BindingType annotation
16.2.15 javax.xml.ws.FaultAction annotation
16.2.16 javax.xml.ws.RequestWrapper annotation
16.2.17 javax.xml.ws.ResponseWrapper annotation
16.2.18 javax.xml.ws.ServiceMode annotation
16.2.19 javax.xml.ws.soap.Addressing annotation
16.2.20 javax.xml.ws.soap.MTOM annotation
16.2.21 javax.xml.ws.WebFault annotation
16.2.22 javax.xml.ws.WebServiceProvider annotation

17. Web Resources and Providers
17.1 Resource classes
17.1.1 Root resource classes
17.1.2 Entity parameters
17.1.3 Return values
17.1.4 Parameter types
17.1.5 Exception mapping
17.1.6 URI template
17.1.7 Sub-resource class
17.1.8 Exception handling
17.1.9 Media type declaration
17.1.10 Disabling URL decoding
17.1.11 Inheriting annotations
17.2 Provider
17.2.1 Entity provider
17.2.2 Exception mapping provider

18. Mapping JSON and POJO
18.1 Settings for mapping JSON and POJO
18.1.1 Mapping on a server
18.1.2 Mapping on a client
18.2 POJO to JSON mapping
18.2.1 Requirements for mapping
18.2.2 Available data types
18.2.3 Exception handling
18.3 JSON to POJO mapping
18.3.1 Requirements for mapping
18.3.2 Available data types
18.3.3 Exception handling
18.4 Exceptions that occur during mapping

19. Support Range of the JAX-WS Specifications
19.1 Support range of the JAX-WS 2.2 specifications
19.1.1 Support range of the functionality in the JAX-WS 2.2 specifications
19.1.2 Supporting Conformance
19.2 Support range of APIs
19.2.1 List of interfaces and classes (JAX-WS)
19.2.2 Client API
19.2.3 Service API
19.2.4 Core API
19.2.5 Using a message context
19.3 Support range of annotations
19.3.1 javax.xml.ws.WebServiceRef annotation
19.4 Support range of the handler chain configuration file
19.4.1 javaee:handler-chains element
19.4.2 javaee:handler-chain element
19.4.3 javaee:handler element
19.4.4 javaee:handler-name element
19.4.5 javaee:handler-class element
19.4.6 javaee:soap-header element
19.4.7 javaee:soap-role element

20. Support Range of WSDL Specification
20.1 Support range of the WSDL 1.1 specifications
20.1.1 wsdl:definitions element
20.1.2 wsdl:import element
20.1.3 wsdl:types element
20.1.4 wsdl:message element
20.1.5 wsdl:part element
20.1.6 wsdl:portType element
20.1.7 wsdl:operation element (For the child element of the wsdl:portType element)
20.1.8 wsdl:input element (For the grandchild element of the wsdl:portType element)
20.1.9 wsdl:output element (For the grandchild element of the wsdl:portType element)
20.1.10 wsdl:fault element (For the grandchild element of the wsdl:portType element)
20.1.11 wsdl:binding element
20.1.12 wsdl:operation element (For the child element of the wsdl:binding element)
20.1.13 wsdl:input element (For the grandchild element of the wsdl:binding element)
20.1.14 wsdl:output element (For the grandchild element of the wsdl:binding element)
20.1.15 wsdl:fault element (For the grandchild element of the wsdl:binding element)
20.1.16 wsdl:service element
20.1.17 wsdl:port element
20.1.18 wsdl:documentation element
20.1.19 soap:binding element
20.1.20 soap:operation element
20.1.21 soap:body element
20.1.22 soap:header element
20.1.23 soap:fault element
20.1.24 soap:address element
20.1.25 soap12:operation element
20.1.26 soap12:binding element
20.1.27 soap12:body element
20.1.28 soap12:header element
20.1.29 soap12:fault element
20.1.30 soap12:address element
20.1.31 xsd:schema element
20.2 Notes on creating WSDL

21. Support Range of XML Catalogs 1.1
21.1 Support range list of the XML Catalogs 1.1 specifications
21.2 Details of the Support Range of the XML Catalogs 1.1 Specifications
21.2.1 er:catalog element
21.2.2 er:public element
21.2.3 er:system element

22. Support Range of the SAAJ Specifications
22.1 Support range of the SAAJ 1.3 specifications
22.1.1 Detail interface
22.1.2 Node interface
22.1.3 SOAPBody interface
22.1.4 SOAPElement interface
22.1.5 SOAPEnvelope interface
22.1.6 SOAPFault interface
22.1.7 SOAPHeader interface
22.1.8 SOAPHeaderElement interface
22.1.9 AttachmentPart class
22.1.10 MessageFactory class
22.1.11 MimeHeader class
22.1.12 MimeHeaders class
22.1.13 SAAJResult class
22.1.14 SOAPFactory class
22.1.15 SOAPMessage class
22.1.16 SOAPPart class
22.1.17 Support range for using attachments

23. Support Range of the WS-RM Specifications
23.1 Support range of the WS-RM 1.2 specifications
23.2 Support range of the WS-RM Policy 1.2 specifications
23.3 com.sun.xml.ws.Closeable class
23.4 Settings using WS-Policy

24. Support Range of JAX-RS Specifications
24.1 Support range of JAX-RS 1.1 specifications
24.2 Support range of API
24.2.1 HttpHeaders interface
24.2.2 PathSegment interface
24.2.3 Request interface
24.2.4 SecurityContext interface
24.2.5 UriInfo interface
24.2.6 Cookie class
24.2.7 EntityTag class
24.2.8 MediaType class
24.2.9 NewCookie class
24.2.10 Response class
24.2.11 Response.ResponsBuilder class
24.2.12 The UriBuilder class
24.2.13 Provider annotation
24.3 Annotations
24.3.1 Injectable annotation
24.3.2 Built-in request method identifier
24.3.3 Path specifying an annotation
24.3.4 Annotation for declaring the media type
24.4 Context
24.4.1 javax.ws.rs.core.UriInfo
24.4.2 javax.ws.rs.core.HttpHeaders
24.4.3 javax.ws.rs.core.Request
24.4.4 javax.ws.rs.core.SecurityContext
24.4.5 javax.ws.rs.core.ext.Providers
24.4.6 javax.servlet.ServletConfig
24.4.7 javax.servlet.ServletContext
24.4.8 javax.servlet.http.HttpServletRequest
24.4.9 javax.servlet.http.HttpServletResponse

25. Support Range of the Client APIs for RESTful Web Services
25.1 Support range of the client API interfaces and classes
25.1.1 Supported properties and features
25.1.2 Information included in the ClientRequest class and the Web resource class
25.2 Method specifications and notes for the Client class
create() method
create(ClientConfig cc) method
destroy() method
getProperties() method
handle(ClientRequest request) method
resource(String u) method
resource(URI u) method
setChunkedEncodingSize(Integer chunkSize) method
setConnectTimeout(Integer interval) method
setFollowRedirects(Boolean redirect) method
setReadTimeout(Integer interval) method
25.3 Method specifications and notes for the ClientHandlerException class
25.4 Method specifications and notes for the ClientRequest class
clone() method
create() method
getEntity() method
getHeaders() method
getHeaderValue(Object headerValue) method
getMethod() method
getProperties() method
getPropertyAsFeature(String name) method
getPropertyAsFeature(String name, boolean defaultValue) method
getURI() method
setEntity(Object entity) method
setMethod(String method) method
setURI(java.net.URI uri) method
25.5 Method specifications and notes for the ClientRequest.Builder class
accept(MediaType... types) method
accept(String... types) method
acceptLanguage(Locale... locales) method
acceptLanguage(String... locales) method
build(URI uri, String method) method
cookie(Cookie cookie) method
entity(Object entity) method
entity(Object entity, MediaType type) method
entity(Object entity, String type) method
header(String name, Object value) method
type(MediaType type) method
type(String type) method
25.6 Method specifications and notes for the ClientResponse class
bufferEntity() method
close() method
getAllow() method
getClient() method
getClientResponseStatus() method
getCookies() method
getEntity(Class<T> c) method
getEntity(GenericType<T> gt) method
getEntityInputStream() method
getEntityTag() method
getHeaders() method
getLanguage() method
getLastModified() method
getLength() method
getLocation() method
getResponseDate() method
getStatus() method
getType() method
hasEntity() method
25.7 Enumerated constants of the ClientResponse.Status class and specifications for the methods
Enumerated constants of the ClientResponse.Status class
StatusCode(int statusCode) method
getFamily() method
getReasonPhrase() method
getStatusCode() method
toString() method
valueOf(String name) method
values() method
25.8 Constructor and method specifications and notes for the GenericType class
GenericType() constructor
GenericType(Type genericType) constructor
getRawClass() method
getType() method
25.9 Method specifications and notes for the UniformInterfaceException class
getResponse() method
25.10 Method specifications and notes for the WebResource class
accept(MediaType... types) method
accept(String... types) method
acceptLanguage(Locale... locales) method
acceptLanguage(String... locales) method
cookie(Cookie cookie) method
delete() method
delete(Class<T> c) method
delete(Class<T> c, Object requestEntity) method
delete(GenericType<T> gt) method
delete(GenericType<T> gt, Object requestEntity) method
delete(Object requestEntity) method
entity(Object entity) method
entity(Object entity, MediaType type) method
entity(Object entity, String type) method
get(Class<T> c) method
get(GenericType<T> gt) method
getRequestBuilder() method
getURI() method
getUriBuilder() method
head() method
header(String name, Object value) method
method(String method) method
method(String method, Class<T> c) method
method(String method, Class<T> c, Object requestEntity) method
method(String method, GenericType<T> gt) method
method(String method, GenericType<T> gt, Object requestEntity) method
method(String method, Object requestEntity) method
options(Class<T> c) method
options(GenericType<T> gt) method
path(String path) method
post() method
post(Class<T> c) method
post(Class<T> c, Object requestEntity) method
post(GenericType<T> gt) method
post(GenericType<T> gt, Object requestEntity) method
post(Object requestEntity) method
put() method
put(Class<T> c) method
put(Class<T> c, Object requestEntity) method
put(GenericType<T> gt) method
put(GenericType<T> gt, Object requestEntity) method
put(Object requestEntity) method
queryParam(String key, String value) method
queryParams(MultivaluedMap<String, String> params) method
type(MediaType type) method
type(String type) method
uri(java.net.URI uri) method
25.11 Method specifications and notes for the WebResource.Builder class
accept(MediaType... types) method
accept(String... types) method
acceptLanguage(Locale... locales) method
acceptLanguage(String... locales) method
cookie(Cookie cookie) method
delete() method
delete(Class<T> c) method
delete(Class<T> c, Object requestEntity) method
delete(GenericType<T> gt) method
delete(GenericType<T> gt, Object requestEntity) method
delete(Object requestEntity) method
entity(Object entity) method
entity(Object entity, MediaType type) method
entity(Object entity, String type) method
get(Class<T> c) method
get(GenericType<T> gt) method
head() method
header(String name, Object value) method
method(String method) method
method(String method, Class<T> c) method
method(String method, Class<T> c, Object requestEntity) method
method(String method, GenericType<T> gt) method
method(String method, GenericType<T> gt, Object requestEntity) method
method(String method, Object requestEntity) method
options(Class<T> c) method
options(GenericType<T> gt) method
post() method
post(Class<T> c) method
post(Class<T> c, Object requestEntity) method
post(GenericType<T> gt) method
post(GenericType<T> gt, Object requestEntity) method
post(Object requestEntity) method
put() method
put(Class<T> c) method
put(Class<T> c, Object requestEntity) method
put(GenericType<T> gt) method
put(GenericType<T> gt, Object requestEntity) method
put(Object requestEntity) method
type(MediaType type) method
type(String type) method
25.12 Constant and method specifications and notes for the DefaultClientConfig class
PROPERTY_BUFFER_RESPONSE_ENTITY_ON_EXCEPTION constant
PROPERTY_CHUNKED_ENCODING_SIZEconstant
PROPERTY_CONNECT_TIMEOUT constant
PROPERTY_FOLLOW_REDIRECTS constant
PROPERTY_READ_TIMEOUT constant
getPropertyAsFeature(String featureName) method
getFeatures() method
getFeature(String featureName) method
getProperties() method
getProperty(String propertyName) method
25.13 Specifications for the constant, constructors, and methods and the notes for the HTTPSProperties class
PROPERTY_HTTPS_PROPERTIES constant
HTTPSProperties() constructor
HTTPSProperties(Hostname Verifier hv) constructor
HTTPSProperties(Hostname Verifier hv, SSLContext c) constructor
getHostnameVerifier() method
getSSLContext() method
25.14 Constructor and method specifications and notes for the MultivaluedMapImpl class
25.15 Combinations of available Java types and MIME media types
25.15.1 Combination of Java types and MIME media types available for an HTTP request entity
25.15.2 Combination of Java types and MIME media types available for an HTTP response entity
25.16 Thread safety of the client APIs for RESTful Web Services

Part 4: Extension Functionality

26. WSDL Import Functionality
26.1 What is the WSDL import functionality
26.2 WSDL definitions that can be imported
26.3 Format of the wsdl:import element

27. Catalog Functionality
27.1 What is the catalog functionality
27.2 Using the catalog functionality (when developing a Web Services client)
27.3 Using the catalog functionality (when starting a Web Services client)
27.4 Performance of the catalog functionality
27.5 Notes when using the catalog functionality
27.6 Catalog file
27.6.1 Syntax of the catalog file
27.6.2 Storing the catalog file
27.6.3 Example of coding the catalog file

28. Attachment Functionality (wsi:swaRef format)
28.1 What is the attachment functionality (wsi:swaRef format)
28.2 Java interface of attachments (wsi:swaRef format)
28.3 WSDL for attachments (wsi:swaRef format)
28.3.1 WSDL coding when attachments are used (wsi:swaRef format)
28.3.2 Mapping of Java type of attachments and WSDL (wsi:swaRef format)
28.3.3 Mapping WSDL to the Java type of attachments (wsi:swaRef format)
28.4 SOAP Messages with attachments (wsi:swaRef format)
28.4.1 Mapping an attachment to a SOAP Message (wsi:swaRef format)
28.4.2 Precautions on mapping from an attachment to a SOAP Message (wsi:swaRef format)
28.4.3 Mapping the SOAP message to the attachment (wsi:swaRef format)
28.5 Generating and obtaining the Java instance of the attachment (wsi:swaRef format)
28.5.1 Method of generating the attachment instance (wsi:swaRef format)
28.5.2 Method of obtaining the attachment data (wsi:swaRef format)

29. Examples of the Development Starting from SEI (When using Attachments of the wsi:swaRef format)
29.1 Configuration examples of development (Starting from SEI and attachments of wsi:swaRef format)
29.2 Example of the development flow (Starting from SEI and attachments of wsi:swaRef)
29.3 Examples of Web Service development (Starting from SEI and attachments of wsi:swaref format)
29.3.1 Creating the Web Service Implementation Class
29.3.2 Compiling Web Services Implementation Class
29.3.3 Creating web.xml
29.3.4 Creating application.xml
29.3.5 Creating EAR files
29.4 Examples of deployment and startup (Starting from SEI and attachments of wsi:swaRef format)
29.4.1 Deploying EAR files
29.4.2 Starting Web Services
29.5 Examples of Web Service client development (Starting from SEI and attachments of wsi:swaRef format)
29.5.1 Generating a service class
29.5.2 Creating the Web Service Implementation Class
29.5.3 Compiling the implementation class for the Web Service client
29.6 Examples of Web Service execution (Starting from SEI and attachments of wsi:swaRef format)
29.6.1 Creating the option definition file for Java applications
29.6.2 Creating the user property file for Java applications
29.6.3 Executing the Web Service client

30. Attachment functionality (MTOM/XOP)
30.1 Description of the attachment functionality (MTOM/XOP)
30.2 Java interface of an attachment (MTOM/XOP)
30.3 Attachment WSDL (MTOM/XOP)
30.3.1 non-wrapper style attachments in MTOM/XOP specification format (MTOM/XOP)
30.4 Behavior of the JAX-WS engine
30.4.1 Behavior of the JAX-WS engine on a Web Service machine
30.4.2 Behavior of the JAX-WS engine on a Web Service client machine
30.5 SOAP messages of the attachments in the MTOM/XOP specification format
30.5.1 Mapping the attachments to the SOAP messages (MTOM/XOP)
30.5.2 Notes on mapping from the attachments to the SOAP messages (MTOM/XOP)
30.5.3 Mapping the SOAP messages to the attachments (MTOM/XOP)
30.6 Precautions
30.7 Data that can be sent and received and the Java types that can be used in the attachment (MTOM/XOP format)
30.7.1 How to create Java objects for data to be sent
30.7.2 How to acquire the received data

31. Example of the development starting from SEI (when using attachments in the MTOM/XOP specification format)
31.1 Configuration of the development example (starting from SEI or the attachments in the MTOM/XOP specification format)
31.2 Flow of the development example (starting from SEI or attachments in MTOM/XOP specification format)
31.3 Example of Web Service development(starting from SEI or attachment in MTOM/XOP specification format)
31.3.1 Creating a Web Service Implementation Class
31.3.2 Compiling Web Services Implementation Classes
31.3.3 Creating a web.xml file
31.3.4 Creating an application.xml file
31.3.5 Creating EAR files
31.4 Examples of deployment and startup (Starting from SEI or attachments in the MTOM/XOP specification format)
31.4.1 Deploying EAR files
31.4.2 Starting Web Service
31.5 Examples of developing the Web Service clients (starting from SEI or attachments in the MTOM/XOP specification format)
31.5.1 Generating a service class
31.5.2 Creating an implementation class for the Web Service client
31.5.3 Compiling an implementation class for the Web Service client
31.6 Examples for executing the Web Services (starting from SEI or attachments in the MTOM/XOP specification format)
31.6.1 Creating an option definition file for Java applications
31.6.2 Creating a user property file for Java applications
31.6.3 Executing Web Service clients

32. Streaming
32.1 What is the Streaming functionality
32.2 How to use Streaming
32.2.1 Web Services machine
32.2.2 Web Service client side
32.2.3 Variations due to parseEagerly
32.2.4 Operating streamed attachments
32.3 Temporary files (Streaming)
32.3.1 Naming convention
32.3.2 Output and Deletion
32.3.3 How to estimate

33. Example of the development starting from SEI (when using streaming)
33.1 Starting from development example (starting from SEI and streaming)
33.2 Flow of development examples (Starting from SEI and streaming)
33.3 Examples of Web Service development (Starting from SEI and streaming)
33.3.1 Creating the Web Service Implementation Class
33.3.2 Compiling Web Services Implementation Class
33.3.3 Creating web.xml
33.3.4 Creating application.xml
33.3.5 Creating EAR files
33.4 Examples of deployment and startup (Starting from SEI and streaming)
33.4.1 Deploying EAR files
33.4.2 Starting Web Services
33.5 Examples of developing the Web Service client (Starting from SEI and streaming)
33.5.1 Generating a service class
33.5.2 Creating an implementation class for the Web Service client
33.5.3 Compiling the implementation class for the Web Service client
33.6 Examples of executing the Web Services (Starting from SEI and streaming)
33.6.1 Creating option definition files for Java applications
33.6.2 Creating user property files for Java applications
33.6.3 Executing the Web Service client

34. WS-RM 1.2 Functionality
34.1 What is the WS-RM 1.2 functionality
34.2 Message flow when the WS-RM 1.2 functionality is used
34.3 Delivery assurance functionality of WS-RM 1.2
34.4 How to add the WS-RM Policy

35. Example of the Development Starting from WSDL (using WS-RM 1.2)
35.1 Configuration of the development example (Starting from WSDL/WS-RM 1.2)
35.2 Flow of the development example (Starting from WSDL/WS-RM 1.2)
35.3 Examples of developing a Web Service (Starting from WSDL/WS-RM 1.2)
35.3.1 Creating a WSDL file
35.3.2 Adding the WS-RM Policy in the WSDL file
35.3.3 Creating SEI
35.3.4 Creating the Web Service Implementation Class
35.3.5 Compiling the Web Service Implementation Class
35.3.6 Creating a web.xml file
35.3.7 Creating an application.xml file
35.3.8 Creating EAR files
35.4 Example of deploying and starting the service (Starting from WSDL/WS-RM 1.2)
35.4.1 Deploying the EAR files
35.4.2 Starting Web Services
35.5 Example of developing a Web Service client (starting from WSDl/WS-RM 1.2)
35.5.1 Generating a service class
35.5.2 Creating an implementation class for the Web Service client
35.5.3 Adding sequence termination processing in the Implementation Class for Web Service client
35.5.4 Compiling the implementation class for the Web Service client
35.6 Example of executing the Web Service (Starting from WSDL/WS-RM 1.2)
35.6.1 Creating an option definition file for Java applications
35.6.2 Creating a user property file for Java applications
35.6.3 Executing the Web Service client

36. Handler Frame Work
36.1 What is the handler framework
36.2 Precautions on using the Web Service security functionality
36.3 Notes on applying to the EJB Web Services
36.4 Types of handlers
36.5 Execution sequence and organization of the handler chain
36.5.1 Processing of the handleMessage method
36.5.2 Processing of the handleFault method
36.5.3 Processing of the close method
36.6 Initializing and destroying the handler
36.7 Operations and settings for the handler when the SOAP Header is included in the SOAP Message
36.7.1 Operations of the handler when the SOAP Header is included in the SOAP Message (in the Web Service)
36.7.2 Operations of the handler when the SOAP Header is included in the SOAP Message (in the Web Service client)
36.7.3 Setting the SOAP Header that can be processed
36.8 Deploying the handlers
36.9 Setting the handler chain
36.9.1 Setting the handler chain in the Web Service
36.9.2 Setting the handler chain in the Web Service client

37. Addressing Functionality
37.1 Addressing functionality
37.1.1 Synchronous communication
37.1.2 Asynchronous communication
37.2 WSDL extension elements and extension attributes
37.2.1 WSDL extension elements
37.2.2 WSDL extension attributes
37.3 Notes for the annotations used with the addressing functionality
37.4 Fault messages
37.4.1 Un-supported sub-sub code
37.4.2 Notes for fault messages
37.5 Operations of the JAX-WS engine on a Web Service machine (When using the addressing functionality)
37.5.1 Operations for receiving request messages
37.5.2 Response messages
37.5.3 Operations when the wsaw:Anonymous element is specified
37.5.4 Operations when an Addressing annotation is specified
37.5.5 Operations when an Action annotation is specified
37.5.6 Operations when the wsa:Action element is specified
37.5.7 Operations when the wsa:MessageID element is not specified
37.6 Operations of the JAX-WS engine on a Web Service client machine (When using the addressing functionality)
37.6.1 Operations for sending and receiving messages
37.6.2 AddressingFeature class and anonymous URI
37.6.3 Notes for the wsaw:Action and wsam:Action attributes
37.6.4 Notes for the wsa:Action element
37.6.5 Notes related to acquiring SEI

38. Examples of development from SEI (when addressing functionality used)
38.1 Configuration examples of development (Starting from SEI and addressing)
38.2 Flow of development examples (Starting from SEI and addressing)
38.3 Examples of Web Service development (Starting from SEI and addressing)
38.3.1 Creating the Web Service Implementation Class
38.3.2 Compiling Web Services Implementation Classes
38.3.3 Creating web.xml
38.3.4 Creating application.xml
38.3.5 Creating EAR files
38.4 Examples of deployment and startup (Starting from SEI and addressing)
38.4.1 Deploying EAR files
38.4.2 Starting Web Services
38.5 Examples of Web Service client development (Starting from SEI and addressing)
38.5.1 Generating a service class
38.5.2 Creating an implementation class for the Web Service client
38.5.3 Compiling the implementation class for the Web Service client
38.6 Examples of Web Service execution (Starting from SEI and addressing)
38.6.1 Creating option definition files for Java applications
38.6.2 Creating user property files for Java applications
38.6.3 Executing the Web Service client

Part 5: Troubleshooting

39. Troubleshooting
39.1 Types of failure and actions
39.1.1 When a running program ends abnormally
39.1.2 When a program does not operate as intended
39.1.3 When the performance is not as expected
39.2 Material to be acquired when a failure occurs
39.3 Log
39.3.1 Types of log
39.3.2 Log file rotation
39.3.3 Log output destination
39.3.4 Importance level and output conditions of logs
39.3.5 Log format
39.3.6 Setting logs
39.3.7 Estimating the log
39.4 Performance analysis trace (PRF)
39.4.1 Collection level of Trace based performance analysis
39.4.2 Trace output information of Trace based performance analysis
39.4.3 Method of performance analysis based on Trace based performance analysis

Appendixes
A. Migrating from an Earlier Version
A.1 Installing an upgraded version
A.2 Compatibility of WSDL created in an earlier version
B. Migrating from the POJO Web Service to the EJB Web Service
C. Calculating the Memory Usage for JAX-WS Engine
C.1 Memory usage when the application starts
C.2 Memory usage per request
C.3 Memory usage per request when attachments are used
C.4 Calculating the memory usage per unit time
D. Glossary

Index