| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| package javax.xml.rpc; |
| |
| import javax.xml.namespace.QName; |
| import javax.xml.rpc.encoding.TypeMappingRegistry; |
| import javax.xml.rpc.handler.HandlerRegistry; |
| |
| /** |
| * <code>Service</code> class acts as a factory of the following: |
| * <ul> |
| * <li>Dynamic proxy for the target service endpoint. |
| * <li>Instance of the type <code>javax.xml.rpc.Call</code> for |
| * the dynamic invocation of a remote operation on the |
| * target service endpoint. |
| * <li>Instance of a generated stub class |
| * </ul> |
| * |
| * @version $Rev$ $Date$ |
| */ |
| public interface Service { |
| |
| /** |
| * The getPort method returns either an instance of a generated |
| * stub implementation class or a dynamic proxy. A service client |
| * uses this dynamic proxy to invoke operations on the target |
| * service endpoint. The <code>serviceEndpointInterface</code> |
| * specifies the service endpoint interface that is supported by |
| * the created dynamic proxy or stub instance. |
| * |
| * @param portName Qualified name of the service endpoint in |
| * the WSDL service description |
| * @param serviceEndpointInterface Service endpoint interface |
| * supported by the dynamic proxy or stub |
| * instance |
| * @return java.rmi.Remote Stub instance or dynamic proxy that |
| * supports the specified service endpoint |
| * interface |
| * @throws ServiceException This exception is thrown in the |
| * following cases: |
| * <ul> |
| * <li>If there is an error in creation of |
| * the dynamic proxy or stub instance |
| * <li>If there is any missing WSDL metadata |
| * as required by this method |
| * <li>Optionally, if an illegal |
| * <code>serviceEndpointInterface</code> |
| * or <code>portName</code> is specified |
| * </ul> |
| */ |
| public java.rmi |
| .Remote getPort(QName portName, Class serviceEndpointInterface) |
| throws ServiceException; |
| |
| /** |
| * The getPort method returns either an instance of a generated |
| * stub implementation class or a dynamic proxy. The parameter |
| * <code>serviceEndpointInterface</code> specifies the service |
| * endpoint interface that is supported by the returned stub or |
| * proxy. In the implementation of this method, the JAX-RPC |
| * runtime system takes the responsibility of selecting a protocol |
| * binding (and a port) and configuring the stub accordingly. |
| * The returned <code>Stub</code> instance should not be |
| * reconfigured by the client. |
| * |
| * @param serviceEndpointInterface Service endpoint interface |
| * @return Stub instance or dynamic proxy that supports the |
| * specified service endpoint interface |
| * |
| * @throws ServiceException <ul> |
| * <li>If there is an error during creation |
| * of stub instance or dynamic proxy |
| * <li>If there is any missing WSDL metadata |
| * as required by this method |
| * <li>Optionally, if an illegal |
| * <code>serviceEndpointInterface</code> |
| * |
| * is specified |
| * </ul> |
| */ |
| public java.rmi.Remote getPort(Class serviceEndpointInterface) |
| throws ServiceException; |
| |
| /** |
| * Gets an array of preconfigured <code>Call</code> objects for |
| * invoking operations on the specified port. There is one |
| * <code>Call</code> object per operation that can be invoked |
| * on the specified port. Each <code>Call</code> object is |
| * pre-configured and does not need to be configured using |
| * the setter methods on <code>Call</code> interface. |
| * |
| * <p>Each invocation of the <code>getCalls</code> method |
| * returns a new array of preconfigured <code>Call</code> |
| * |
| * objects |
| * |
| * <p>This method requires the <code>Service</code> implementation |
| * class to have access to the WSDL related metadata. |
| * |
| * @param portName Qualified name for the target service endpoint |
| * @return Call[] Array of pre-configured Call objects |
| * @throws ServiceException If this Service class does not |
| * have access to the required WSDL metadata |
| * or if an illegal <code>portName</code> is |
| * specified. |
| */ |
| public Call[] getCalls(QName portName) throws ServiceException; |
| |
| /** |
| * Creates a <code>Call</code> instance. |
| * |
| * @param portName Qualified name for the target service endpoint |
| * @return Call instance |
| * @throws ServiceException If any error in the creation of |
| * the <code>Call</code> object |
| */ |
| public Call createCall(QName portName) throws ServiceException; |
| |
| /** |
| * Creates a <code>Call</code> instance. |
| * |
| * @param portName Qualified name for the target service |
| * endpoint |
| * @param operationName Qualified Name of the operation for |
| * which this <code>Call</code> object is to |
| * be created. |
| * @return Call instance |
| * @throws ServiceException If any error in the creation of |
| * the <code>Call</code> object |
| */ |
| public Call createCall(QName portName, QName operationName) |
| throws ServiceException; |
| |
| /** |
| * Creates a <code>Call</code> instance. |
| * |
| * @param portName Qualified name for the target service |
| * endpoint |
| * @param operationName Name of the operation for which this |
| * <code>Call</code> object is to be |
| * created. |
| * @return Call instance |
| * @throws ServiceException If any error in the creation of |
| * the <code>Call</code> object |
| */ |
| public Call createCall(QName portName, String operationName) |
| throws ServiceException; |
| |
| /** |
| * Creates a <code>Call</code> object not associated with |
| * specific operation or target service endpoint. This |
| * <code>Call</code> object needs to be configured using the |
| * setter methods on the <code>Call</code> interface. |
| * |
| * @return Call object |
| * @throws ServiceException If any error in the creation of |
| * the <code>Call</code> object |
| */ |
| public Call createCall() throws ServiceException; |
| |
| /** |
| * Gets the name of this Service. |
| * |
| * @return Qualified name of this service |
| */ |
| public QName getServiceName(); |
| |
| /** |
| * Returns an <code>Iterator</code> for the list of |
| * <code>QName</code>s of service endpoints grouped by this |
| * service. |
| * |
| * @return Returns <code>java.util.Iterator</code> with elements |
| * of type <code>javax.xml.namespace.QName</code> |
| * @throws ServiceException If this Service class does not |
| * have access to the required WSDL metadata |
| */ |
| public java.util.Iterator getPorts() throws ServiceException; |
| |
| /** |
| * Gets location of the WSDL document for this Service. |
| * |
| * @return URL for the location of the WSDL document for |
| * this service |
| */ |
| public java.net.URL getWSDLDocumentLocation(); |
| |
| /** |
| * Gets the <code>TypeMappingRegistry</code> for this |
| * <code>Service</code> object. The returned |
| * <code>TypeMappingRegistry</code> instance is pre-configured |
| * to support the standard type mapping between XML and Java |
| * types types as required by the JAX-RPC specification. |
| * |
| * @return The TypeMappingRegistry for this Service object. |
| * @throws java.lang.UnsupportedOperationException if the <code>Service</code> class does not support |
| * the configuration of <code>TypeMappingRegistry</code>. |
| */ |
| public TypeMappingRegistry getTypeMappingRegistry(); |
| |
| /** |
| * Returns the configured <code>HandlerRegistry</code> instance |
| * for this <code>Service</code> instance. |
| * |
| * @return HandlerRegistry |
| * @throws java.lang.UnsupportedOperationException - if the <code>Service</code> class does not support |
| * the configuration of a <code>HandlerRegistry</code> |
| */ |
| public HandlerRegistry getHandlerRegistry(); |
| } |
| |