When a Web service application is deployed into WebSphere Application Server, an instance is created for each application or module. The instance contains deployment information for the Web module or Enterprise JavaBeans (EJB) module, including implementation scope, client bindings and deployment descriptor information. There are three levels of scope that can be set: application, session and request. If you have not deployed the enterprise archive (EAR) file yet, you need to have it ready or already deployed into WebSphere Application Server.
For more information about wsadmin command options, review Options for the AdminApp object install, installInteractive, edit, editInteractive, update, and updateInteractive commands
Web Services for Java 2 platform Enterprise Edition (J2EE) specifies that Web services implementations must be stateless. Therefore, to maintain specification compliance, the scope can remain at the application level because the state relevant to the individual sessions level or the requests level is not supposed to be maintained in the implementation. If you want to deviate from the specification and want to access a different JavaBean instance, because you are looking for information that is located in another JavaBean, the scope settings need to change.
The setting that you configure for the scope determines how frequently a new instance of a service implementation class is created for the Web service ports in a module. The application scope causes the same instance of the implementation to be used for all requests on the application. The session scope causes the same instance to be used for all requests in each session. The request scope causes a new instance to be used for every request. For example, with the scope set to application, every message that comes to the server accesses the same Java bean instance.
To change the scope setting through the wsadmin tool:
$AdminApp install app_name {-usedefaultbindings -deployejb -WebServicesServerBindPort {{<module_name> <Web_service> <port><scope_setting>}...}The previous example indicates that the scope of multiple ports can be changed using one WebServicesServerBindPort command, where:
$AdminApp install WebServicesSamples.ear {-usedefaultbindings -deployejb -deployws -WebServicesServerBindPort {{AddressBookJ2WB.war AddressBookService AddressBook request} {AddressBookW2JB.war AddressBookService AddressBook application}}}