01: /*
02: * (C) Copyright 2000 - 2005 Nabh Information Systems, Inc.
03: *
04: * This program is free software; you can redistribute it and/or
05: * modify it under the terms of the GNU General Public License
06: * as published by the Free Software Foundation; either version 2
07: * of the License, or (at your option) any later version.
08: *
09: * This program is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: * GNU General Public License for more details.
13: *
14: * You should have received a copy of the GNU General Public License
15: * along with this program; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17: *
18: */
19: package com.nabhinc.ws.server;
20:
21: import com.nabhinc.ws.core.WebServiceException;
22:
23: /**
24: * A <code>WebService</code> is a server-side component that lives inside a Web services
25: * container. This component is responsible for executing a Web service operation. In
26: * some cases, an object implementing this interface directly implements service
27: * functionality. In other cases, it may simply be a bridge to a delegate Java, CORBA,
28: * COM object.
29: *
30: * @author Padmanabh Dabke
31: * (c) 2005 Nabh Information Systems, Inc. All Rights Reserved.
32: */
33: public interface WebService extends ServerObject {
34:
35: /**
36: * Invoke method on the Web service as specified by the method name and parameters
37: * specified by supplied <code>RequestInfo</code> object. The "method" attribute
38: * of <code>RequestInfo</code> object will be set in case the service implementation
39: * class is known (i.e., <code>getImplementationClass</code> method returns a non-null
40: * value.
41: * @param reqInfo RequestInfo object providing invocation information.
42: * @return Result of method invocation
43: * @throws WebServiceException Application exception thrown by the service. Implementations
44: * should throw <code>WebServiceSecurityException</code> if the error corresponds to a
45: * security violation. <code>UnavailableException</code> should be thrown if the service
46: * is unavailble due to the backend server being down, etc. All other exceptions should
47: * be thrown as RuntimeException. When the framework catches a RuntimeException, the
48: * service will be marked inoperational.
49: */
50: Object invoke(RequestInfo reqInfo) throws WebServiceException;
51:
52: /**
53: * Notifies the service that it has been put in operation. Web services framework will
54: * begin to route operation requests after this method is called.
55: * @throws WebServiceException
56: */
57: void start() throws WebServiceException;
58:
59: /**
60: * Notifies the service that service operations have been suspended. Note that this is
61: * not the end of the object life-cycle which is indicated by a <code>destroy()</code>
62: * call. A subsequent <code>start()</code> call indicates operation resumption.
63: *
64: */
65: void stop();
66: }
|