uCosminexus Application Server, Web Service Development Guide

[Contents][Glossary][Index][Back][Next]

10.2.1 Operations and support range of the JAX-WS engine

The SOAP Messages exchanged between the Web Service and the Web Service client are marshalled or unmarshalled using the JAX-WS engine operations.

This subsection describes the JAX-WS engine and support range in the Web Service and Web Service client.

Organization of this subsection
(1) Operations and support range of the JAX-WS engine on the Web Service
(2) Operations and support range of the JAX-WS engine on the Web Service client
(3) Notes for using arrays and java.util.List

(1) Operations and support range of the JAX-WS engine on the Web Service

This point describes operations of the JAX-WS engine on the Web Service and shows the support range of the Web Service client that uses the Web Service.

(a) JAX-WS engine operations on the Web Service

The JAX-WS engine on the Web Service operates with the following procedure:

For discovery and dispatch, see 10.2.2 Discovery and dispatch.

Also, if the JAX-WS engine at the Web Service machine uses the HTTP GET method to request a WSDL that is the Meta data of the Web Service, and the WSDL does not exist in the WAR file, the WSDL will be automatically generated and returned. For issuing the Meta data, see 10.6 Issuing the Meta data.

Note that if the JAX-WS engine on the Web Service is invoked using an HTTP method that is neither POST nor GET, the HTTP status code 405 Method Not Allowed is returned.

(b) Support range of the JAX-WS engine on the Web Service

This section describes the relationship of the JAX-WS engine on the Web Service and the Web Service client.

For a Web Service Implementation Class

The following figure shows the relationship between a JAX-WS engine on the Web Service machine and a Web Service client, in the case of a Web Service Implementation Class:

Figure 10-1 Relationship of the JAX-WS engine on the Web Service and the Web Service client (For a Web Service Implementation Class)

[Figure]

The messages that can be received by the JAX-WS engine on the Web Service and the conditions of the Web Service client at the connection source are as follows:

For a Provider Implementation Class

The following figure shows the relationship between a JAX-WS engine at the Web Service machine and a Web Service client, in the case of a Provider Implementation Class:

Figure 10-2 Relationship between a JAX-WS engine at the Web service machine and the Web Service client (For a Provider Implementation Class)

[Figure]

The following are the messages that the JAX-WS engine can receive at the Web Service machine and the conditions for the Web Service client at the connection source machine:

(2) Operations and support range of the JAX-WS engine on the Web Service client

This point describes the operations of the JAX-WS engine on the Web Service client and shows the support range of the Web Service available from the Web Service client.

(a) JAX-WS engine operations on the Web Service client

The JAX-WS engine on the Web Service client operates with the following procedure:

The Web Service client accesses the JAX-WS engine through the generated class or JAX-WS API; hence, the JAX-WS engine need not be considered.

Also, since the generated class and JAX-WS API are based on the JAX-WS 2.2 specifications, the implementer of the Web Service client need not consider an interface other than the standard specifications. The invocation of the Web Service (sending of the SOAP request message) and the receipt of the SOAP response message and fault message are performed within the support range for the interface in standard specifications.

(b) Support range of JAX-WS engine on the Web Service client

This section describes the relationship of the JAX-WS engine on the Web Service client and the Web Service.

For a stub-based Web Service client

The following figure shows the relationship between a JAX-WS engine at the Web Service client machine and a Web Service, in the case of a stub-based Web Service client:

Figure 10-3 Relationship of the JAX-WS engine on the Web Service client and the Web Service (For a stub-based)

[Figure]

The conditions for the Web Service that can be invoked by the JAX-WS engine on the Web Service client are as follows:

For a dispatch-based Web Service client

The following figure shows the relationship between a JAX-WS engine at the Web Service client machine and a Web Service, for a dispatch-based Web Service client:

Figure 10-4 Relationship between a JAX-WS engine at the Web Service client machine and a Web Service (For a dispatch-based)

[Figure]

The following are the conditions for a Web Service that the JAX-WS engine can invoke at the Web Service client machine:

(3) Notes for using arrays and java.util.List

Note that when sending a SOAP Message, the status in which element count of array and the java.util.List object are 0 indicating the empty status and the null status cannot be differentiated.

The sections 10.2.1(3)(a) Sending SOAP Messages and 10.2.1(3)(b) Receiving SOAP Messages describe the operations of the JAX-WS engine. Also, for the operations when both the Web Service machine and the Web Service client machine use the Cosminexus JAX-WS functionality, see the section 10.2.1(3)(c) When both the Web Service machine and the Web Service client machine use the Cosminexus JAX-WS functionality.

The following methods are used as examples in the description:
@WebMethod
public List<String> test( List<Integer> param )
(a) Sending SOAP Messages

This subsection describes a request message when an implementation class of the Web Service client invokes the methods with the following procedure:

The following is an excerpt of request messages sent by the JAX-WS engine at the Web Service client machine:

<test/>

Even if you invoke the method with any condition, the elements corresponding to the param parameter do not appear in request messages. The same holds true for response messages when the implementation class of the Web Service returns a return value.

(b) Receiving SOAP Messages

When any of the conditions described in the following table is fulfilled, the implementation class of the Web Service client and the Web Service that receives the messages of the section 10.2.1(3)(a) Sending SOAP Messages accept arrays and objects of concrete classes of java.util.List in an empty state without elements:

Table 10-2 Conditions for accepting an empty array or an object of a concrete class of java.util.List

Item no. Condition
1 When operating the java.util.List object with an implementation class of the Web Service client
2 When operating the java.util.List object with an implementation class of the Web Service developed with a WSDL as the starting point
3 When operating an array and java.util.List that appears directly in the arguments of the method corresponding to the WSDL operation (method annotated with the WebMethod annotation), with an implementation class of the Web Service developed with SEI as the starting point

Note that with the Web Service Implementation Class developed with SEI as the starting point, the properties of the arrays and java.util.List, included in the JavaBeans class that appear with the arguments of the method corresponding to the WSDL operation, depend on the implementation of the JavaBeans class. If an element corresponding to a property does not exist in the request message, the JavaBeans class accepts the arrays and objects of concrete classes of java.util.List with the null value.

(c) When both the Web Service machine and the Web Service client machine use the Cosminexus JAX-WS functionality

The operations of the Cosminexus JAX-WS engine are in accordance with the sections 10.2.1(3)(a) Sending SOAP Messages and 10.2.1(3)(b) Receiving SOAP Messages. Particularly when both; a Web Service client and a Web Service exist on the Cosminexus server with the implementation class of the Web Service client and the implementation class of the Web Service satisfying the conditions shown in Table 10-2, if one of the Web Service client or the Web Service sends null as an array and the java.util.List object, the other machine receives the array and the concrete class of java.util.List with zero number of elements.