Class TransportTubeFactory
- Direct Known Subclasses:
TCPTransportPipeFactory
At runtime, on the client side, JAX-WS (more specifically the default TubelineAssembler
of JAX-WS client runtime) relies on this factory to create a suitable transport Tube
that can handle the given endpoint address.
JAX-WS extensions that provide additional transport support can
extend this class and implement the doCreate(com.sun.xml.ws.api.pipe.ClientTubeAssemblerContext) method.
They are expected to check the scheme of the endpoint address
(and possibly some other settings from bindings), and create
their transport tube implementations accordingly.
For example,
class MyTransportTubeFactoryImpl {
Tube doCreate(...) {
String scheme = address.getURI().getScheme();
if(scheme.equals("foo"))
return new MyTransport(...);
else
return null;
}
}
TransportTubeFactory look-up follows the standard service
discovery mechanism, so you need
META-INF/services/com.sun.xml.ws.api.pipe.BasicTransportTubeFactory.
- Author:
- Jitendra Kotamraju
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Tubecreate(ClassLoader classLoader, ClientTubeAssemblerContext context) LocatesTransportTubeFactorys and create a suitable transportTube.protected TubecreateDefault(ClientTubeAssemblerContext context) protected Tubeabstract TubedoCreate(ClientTubeAssemblerContext context) Creates a transportTubefor the given port, if this factory can do so, or return null.
-
Constructor Details
-
TransportTubeFactory
protected TransportTubeFactory()Default constructor.
-
-
Method Details
-
doCreate
Creates a transportTubefor the given port, if this factory can do so, or return null.- Parameters:
context- Object that captures various contextual information that can be used to determine the tubeline to be assembled.- Returns:
- null to indicate that this factory isn't capable of creating a transport
for this port (which causes the caller to search for other
TransportTubeFactorys that can. Or non-null. - Throws:
WebServiceException- if this factory is capable of creating a transport tube but some fatal error prevented it from doing so. This exception will be propagated back to the user application, and no furtherTransportTubeFactorys are consulted.
-
create
public static Tube create(@Nullable ClassLoader classLoader, @NotNull ClientTubeAssemblerContext context) LocatesTransportTubeFactorys and create a suitable transportTube.- Parameters:
classLoader- used to locateMETA-INF/servcesfiles.- Returns:
- Always non-null, since we fall back to our default
Tube.
-
createDefault
-
createHttpTransport
-