/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.xml.ws;
import java.util.List;
import java.util.Map;
import javax.xml.ws.spi.Provider;
/**
* A Web service endpoint.
*
* <p>Endpoints are created using the static methods defined in this
* class. An endpoint is always tied to one <code>Binding</code>
* and one implementor, both set at endpoint creation time.
*
* <p>An endpoint is either in a published or an unpublished state.
* The <code>publish</code> methods can be used to start publishing
* an endpoint, at which point it starts accepting incoming requests.
* Conversely, the <code>stop</code> method can be used to stop
* accepting incoming requests and take the endpoint down.
* Once stopped, an endpoint cannot be published again.
*
* <p>An <code>Executor</code> may be set on the endpoint in order
* to gain better control over the threads used to dispatch incoming
* requests. For instance, thread pooling with certain parameters
* can be enabled by creating a <code>ThreadPoolExecutor</code> and
* registering it with the endpoint.
*
* <p>Handler chains can be set using the contained <code>Binding</code>.
*
* <p>An endpoint may have a list of metadata documents, such as WSDL
* and XMLSchema documents, bound to it. At publishing time, the
* JAX-WS implementation will try to reuse as much of that metadata
* as possible instead of generating new one based on the annotations
* present on the implementor.
*
* @since JAX-WS 2.0
*
* @see javax.xml.ws.Binding
* @see javax.xml.ws.BindingType
* @see javax.xml.ws.soap.SOAPBinding
* @see java.util.concurrent.Executor
*
**/
public abstract class Endpoint {
/** Standard property: name of WSDL service.
* <p>Type: javax.xml.namespace.QName
**/
public static final String WSDL_SERVICE = "javax.xml.ws.wsdl.service";
/** Standard property: name of WSDL port.
* <p>Type: javax.xml.namespace.QName
**/
public static final String WSDL_PORT = "javax.xml.ws.wsdl.port";
/**
* Creates an endpoint with the specified implementor object. If there is
* a binding specified via a BindingType annotation then it MUST be used else
* a default of SOAP 1.1 / HTTP binding MUST be used.
* <p>
* The newly created endpoint may be published by calling
* one of the javax.xml.ws.Endpoint#publish(String) and
* javax.xml.ws.Endpoint#publish(Object) methods.
*
*
* @param implementor The endpoint implementor.
*
* @return The newly created endpoint.
*
**/
public static Endpoint create(Object implementor) {
return create(null, implementor);
}
/**
* Creates an endpoint with the specified binding type and
* implementor object.
* <p>
* The newly created endpoint may be published by calling
* one of the javax.xml.ws.Endpoint#publish(String) and
* javax.xml.ws.Endpoint#publish(Object) methods.
*
* @param bindingId A URI specifying the binding to use. If the bindingID is
* <code>null</code> and no binding is specified via a BindingType
* annotation then a default SOAP 1.1 / HTTP binding MUST be used.
*
* @param implementor The endpoint implementor.
*
* @return The newly created endpoint.
*
**/
public static Endpoint create(String bindingId, Object implementor) {
return Provider.provider().createEndpoint(bindingId, implementor);
}
=1= |