Date: 2004-09-27T02:31:19 Editor: SrinathPerera <[EMAIL PROTECTED]> Wiki: Apache Geronimo Wiki Page: EWSGeronimoIntegeration URL: http://wiki.apache.org/geronimo/EWSGeronimoIntegeration
no comment Change Log: ------------------------------------------------------------------------------ @@ -1,38 +1,28 @@ -== Geronimo – JSR-109 Service Impl Integration == -Here I am trying to extend the Proposal by Luis and Jeremy Geronimov Axis Integration. +== Web Service Stack of the Geronimo == -The geronimo – JSR-109 Service Impl integration basically consists in the definition of a deployment architecture that defines the way how web services are implemented in Geronimo server and a set of interfaces that will be used by classes responsible for the ws's deployment. +The Web Service Stack of the Geronimo has two parts + 1.The runtime that wait for the SOAP requests in a well known port and dispatch the request using the J2EE component on which the Web Service is Based on. + 1. A deployment architecture that accept a Web Service Module as explained by the J2EE web Service specification and deploy the Web Service in Geronimo. +== The Web Service Runtime == +=== Architecture Diagram === http://cvs.apache.org/viewcvs.cgi/*checkout*/ws-axis/contrib/ews/docs/images/ews-GerInt.gif +=== How a web service request is served === +Axis is integrated to the Geronimo as a Gbean called AxisGBean. The WebServiceManager will check and start the Web Container (Jetty) and the EJB Container (OpenEJB) if they are not already started. The Axis Servlet, the servlet listener will wait for soap calls. This servlet provide by Axis will act as a JAX-RPC handler and will be in charge to dispatch request either to POJOs or EJBs. -== How a web service request is served == -A servlet listener that will wait for soap calls. This servlet provide by Axis will act as a JAX-RPC handler and will be in charge to dispatch request either to POJOs or EJBs. -The Axis webapp will be deployed at startup. Or if It's possible as soon as JAX-RPC handler is need. -There will be only one web-app where will reside the listeners and impl for the web ws, and the proxys to call the ejb service impl. +== Web Service Deployment == +1. Geronimo Deployment module will find that the J2EE module it accepts is a web Service module by looking at the webservices.xml file in the META-INF. +1. The Geronimo deployer will call the EWS tool and it will generate the implementation classes + DD looking at the web service module. The EWS will take care of the parsing of the JSR109 specific DD (webservice.xml file and jaxrpc mapping file.) For avoid the web.xml and ejb-jar.xml are parsed twice EWS hope to use Geronimo DD mechanism (to my understating that can done via GBeans.) But right now EWS use DOM to parse them. + 1. The deployment module will call the deploy method in the AxisGBean to deploy the web Service in the Geronimo + 1. The implementation classes will contains a web service. To deploy the web service in the Axis 3 things should be done. -== Deployment == - 1. We will extend existing module in charge of WAR and EJB-JAR deployment, to take into consideration specific ws deployment files. + * the classes in the web service should be loaded to the Web Container the web service can be deployed in Geronimo using the Axis AdminClient - 2. The Geronimo deployer will call the EWS tool and it will generate the implementation classes + DD looking at the web service module. The EWS will take care of the parsing of the JSR109 specific DD (webservice.xml file and jaxrpc mapping file.) For avoid the web.xml and ejb-jar.xml are parsed twice EWS hope to use Geronimo DD mechanism (to my understating that can done via GBeans.) But right now EWS use DOM to parse them. + * The web service Client side stubs should be generated and the service interface (XXLocator) should be bind under the JNDI context. (if service mappings defined) The WSDL file of the Web service should be published in the JAXR registry - 3. The implementation classes will contains a web service. To deploy the webservice in the Axis 3 things should be done. - - 3.1. the classes in the webservice should be loaded to the WebContiner the web service can be deployed in Geronimo using the Axis AdminClient - - 3.2. The web service Client side stubs should be generated and the service interface (XXLocator) should be bind under the JNDI context. (if service mappings defined) The WSDL file of the Web service should be published in the JAXR registry - - 3.3. If the implementation bean is based on EJB the EWS will generate an EJB that used the Session Bean. The Geronimo EJB-Jar deployment support will be used to deploy the generated EJB. The EJB should be Bind under the JNDI name as given in the Open EJB DD generated by the EWS. - - 4. If we deployed the Axis webapp the first time a JAX-RPC handler is need, we will trigger an event that will do it - -== Concerns == - 1. We have to be sure that the service has started after the web container, because our service depends on it. How do we manage dependencies?? - - 2. Is it possible to have more than one listener (JAX-RPC handler) - - 3. How the “extend existing module in charge of WAR and EJB-JAR deployment” is done and we should decide how the EWS called from the module. I think to read and Loading the web service module, Class loading and parsing (created DDBeans and pass them in if that works or should I create the DDBeans myself.) the ejb-jar.xml and web.xml file EWS can use Geronimo services. - - 4. To get the Geronimo Internal based implementation working. I think it is theoretically resolved but got to get it working. + * If the implementation bean is based on EJB the EWS will generate an EJB that used the Session Bean. The Geronimo EJB-Jar deployment support will be used to deploy the generated EJB. The EJB should be Bind under the JNDI name as given in the Open EJB DD generated by the EWS. + +== TODO ==