/** * On Server-side, HandlerChains cannot be changed after it is deployed. * During assembling the Pipelines, we can decide if we really need a * SOAPHandlerPipe and LogicalHandlerPipe for a particular Endpoint. */ public Tube createServer(ServerTubeAssemblerContext context) { Tube head = context.getTerminalTube(); head = context.createValidationTube(head); head = context.createHandlerTube(head); head = context.createMonitoringTube(head); head = context.createServerMUTube(head); head = context.createWsaTube(head); if (dump) { // for debugging inject a dump pipe. this is left in the production code, // as it would be very handy for a trouble-shooting at the production site. head = context.createDumpTube("server", System.out, head); } head = context.createSecurityTube(head); return head; }
/** * Gets the {@link Codec} that is set by {@link #setCodec} or the default codec * based on the binding. The codec is a full codec that is responsible for * encoding/decoding entire protocol message(for e.g: it is responsible to * encode/decode entire MIME messages in SOAP binding) * * @return codec to be used for web service requests * @see {@link com.sun.xml.ws.api.pipe.Codecs} */ public @NotNull Codec getCodec() { return wrappedContext.getCodec(); }
/** * * The created pipeline is used to serve this {@link com.sun.xml.ws.api.server.WSEndpoint}. * Specifically, its {@link com.sun.xml.ws.api.WSBinding} should be of interest to many * {@link com.sun.xml.ws.api.pipe.Pipe}s. * @return Always non-null. */ public @NotNull WSEndpoint getEndpoint() { return wrappedContext.getEndpoint(); }
/** * Do MU Header Processing on incoming message (request) * @return * if all the headers in the packet are understood, returns action such that * next pipe will be inovked. * if all the headers in the packet are not understood, returns action such that * SOAPFault Message is sent to previous pipes. */ @Override public NextAction processRequest(Packet request) { Set<QName> misUnderstoodHeaders=null; lock.lock(); try{ misUnderstoodHeaders = getMisUnderstoodHeaders(request.getMessage().getHeaders(),roles, handlerKnownHeaders); } finally { lock.unlock(); } if((misUnderstoodHeaders == null) || misUnderstoodHeaders.isEmpty()) { return doInvoke(super.next, request); } return doReturnWith(request.createServerResponse(createMUSOAPFaultMessage(misUnderstoodHeaders), tubeContext.getWsdlModel(), tubeContext.getSEIModel(), tubeContext.getEndpoint().getBinding())); }
@Override public Tube createTube(ServerTubelineAssemblyContext context) throws WebServiceException { return context.getWrappedContext().createValidationTube(context.getTubelineHead()); } }
public Tube createTube(ServerTubelineAssemblyContext context) throws WebServiceException { return context.getWrappedContext().createHandlerTube(context.getTubelineHead()); } }
public Tube createTube(ServerTubelineAssemblyContext context) throws WebServiceException { return context.getWrappedContext().createServerMUTube(context.getTubelineHead()); } }
public Tube createTube(ServerTubelineAssemblyContext context) throws WebServiceException { return context.getWrappedContext().createMonitoringTube(context.getTubelineHead()); } }
/** * Creates WS-Addressing pipe */ public Pipe createWsaPipe(Pipe next) { return PipeAdapter.adapt(super.createWsaTube(PipeAdapter.adapt(next))); } }
/** * The created pipeline will use seiModel to get java concepts for the endpoint * * @return Null if the service doesn't have SEI model e.g. Provider endpoints, * and otherwise non-null. */ public @Nullable SEIModel getSEIModel() { return wrappedContext.getSEIModel(); }
/** * creates a {@link Pipe} that dumps messages that pass through. */ public Pipe createDumpPipe(String name, PrintStream out, Pipe next) { return PipeAdapter.adapt(super.createDumpTube(name, out, PipeAdapter.adapt(next))); }
/** * Creates a {@link Pipe} that adds container specific security */ public @NotNull Pipe createSecurityPipe(@NotNull Pipe next) { return PipeAdapter.adapt(super.createSecurityTube(PipeAdapter.adapt(next))); }
/** * Do MU Header Processing on incoming message (request) * @return * if all the headers in the packet are understood, returns action such that * next pipe will be inovked. * if all the headers in the packet are not understood, returns action such that * SOAPFault Message is sent to previous pipes. */ @Override public NextAction processRequest(Packet request) { Set<QName> misUnderstoodHeaders=null; lock.lock(); try{ misUnderstoodHeaders = getMisUnderstoodHeaders(request.getMessage().getHeaders(),roles, handlerKnownHeaders); } finally { lock.unlock(); } if((misUnderstoodHeaders == null) || misUnderstoodHeaders.isEmpty()) { return doInvoke(super.next, request); } return doReturnWith(request.createServerResponse(createMUSOAPFaultMessage(misUnderstoodHeaders), tubeContext.getWsdlModel(), tubeContext.getSEIModel(), tubeContext.getEndpoint().getBinding())); }
@Override public Tube createTube(ServerTubelineAssemblyContext context) throws WebServiceException { return context.getWrappedContext().createValidationTube(context.getTubelineHead()); } }
public Tube createTube(ServerTubelineAssemblyContext context) throws WebServiceException { return context.getWrappedContext().createHandlerTube(context.getTubelineHead()); } }
public Tube createTube(ServerTubelineAssemblyContext context) throws WebServiceException { return context.getWrappedContext().createServerMUTube(context.getTubelineHead()); } }
public Tube createTube(ServerTubelineAssemblyContext context) throws WebServiceException { return context.getWrappedContext().createMonitoringTube(context.getTubelineHead()); } }
/** * Creates WS-Addressing pipe */ public Pipe createWsaPipe(Pipe next) { return PipeAdapter.adapt(super.createWsaTube(PipeAdapter.adapt(next))); } }
/** * The created pipeline will use seiModel to get java concepts for the endpoint * * @return Null if the service doesn't have SEI model e.g. Provider endpoints, * and otherwise non-null. */ public @Nullable SEIModel getSEIModel() { return wrappedContext.getSEIModel(); }
/** * creates a {@link Pipe} that dumps messages that pass through. */ public Pipe createDumpPipe(String name, PrintStream out, Pipe next) { return PipeAdapter.adapt(super.createDumpTube(name, out, PipeAdapter.adapt(next))); }