218
Developing Client Applications to Use a Web Service
Table 5.1
Client Communication Modes (
continued
)
Client
Considerations
Stub
Dynamic Proxy
DII
Supports one way
No
No
Yes
communication mode
Supports the ability
No. Developer must
No. Developer
Yes. However, returns
to dynamically spec
program against a
must program
Java objects which the
ify JAX RPC value
service endpoint
against a service
developer needs to cast
types at runtime
interface.
endpoint interface.
to application specific
objects as necessary.
Supported in J2ME
Yes
No
No
platform
Supported in J2SE
Yes
Yes
Yes
and J2EE platforms
Requires WSDL
No. A service end
No. A partial
No. Calls may be used
point interface may
WSDL (one with
when partial WSDL or
generate a stub class
the service port ele
no WSDL is specified.
along with informa
ment undefined)
Use of methods other
tion concerning the
may be used.
than the
createCall
protocol binding.
method on the
Call
interface may result in
unexpected behavior in
such cases.
Choose the communication mode for your client application after considering the
following:
E
J2EE clients should use stubs. Stubs are easiest for developers to use. Keep in
mind, however, that with stubs you might lose some portability across JAX
RPC implementations.
E
J2EE components acting as clients should use dynamic proxies when portabil
ity is a requirement. Since dynamic proxies do not require a JAX RPC map
ping file, some ambiguity may occur, and this may result in unexpected
behavior when calling a service.
E
DII is the most difficult to use of the three approaches. Only consider using DII
if you need the runtime ability to look up operations.
E
All J2SE and J2ME clients should use stubs if at all possible.
New Page 1