Class TransportPipeFactory
- java.lang.Object
-
- com.sun.xml.ws.api.pipe.TransportPipeFactory
-
public abstract class TransportPipeFactory extends Object
Factory for transport pipes that enables transport pluggability.At runtime, on the client side, JAX-WS (more specifically the default
PipelineAssembler
of JAX-WS client runtime) relies on this factory to create a suitable transportPipe
that can handle the givenendpoint address
.JAX-WS extensions that provide additional transport support can extend this class and implement the
doCreate(com.sun.xml.ws.api.pipe.ClientPipeAssemblerContext)
method. They are expected to check the scheme of the endpoint address (and possibly some other settings from bindings), and create their transport pipe implementations accordingly. For example,class MyTransportPipeFactoryImpl { Pipe doCreate(...) { String scheme = address.getURI().getScheme(); if(scheme.equals("foo")) return new MyTransport(...); else return null; } }
TransportPipeFactory
look-up follows the standard service discovery mechanism, so you needMETA-INF/services/com.sun.xml.ws.api.pipe.TransportPipeFactory
.TODO
One of the JAX-WS operation mode is supposedly where it doesn't have no WSDL whatsoever. How do we identify the endpoint in such case?
- Author:
- Kohsuke Kawaguchi
- See Also:
StandalonePipeAssembler
-
-
Constructor Summary
Constructors Constructor Description TransportPipeFactory()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static Pipe
create(ClassLoader classLoader, ClientPipeAssemblerContext context)
abstract Pipe
doCreate(ClientPipeAssemblerContext context)
Creates a transportPipe
for the given port, if this factory can do so, or return null.
-
-
-
Method Detail
-
doCreate
public abstract Pipe doCreate(@NotNull ClientPipeAssemblerContext context)
Creates a transportPipe
for 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 pipeline 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
TransportPipeFactory
s that can. Or non-null. - Throws:
jakarta.xml.ws.WebServiceException
- if this factory is capable of creating a transport pipe but some fatal error prevented it from doing so. This exception will be propagated back to the user application, and no furtherTransportPipeFactory
s are consulted.
-
create
public static Pipe create(@Nullable ClassLoader classLoader, @NotNull ClientPipeAssemblerContext context)
LocatesPipelineAssemblerFactory
s and create a suitablePipelineAssembler
.- Parameters:
classLoader
- used to locateMETA-INF/servces
files.- Returns:
- Always non-null, since we fall back to our default
PipelineAssembler
.
-
-