Picking up this thread to make sure it doesn't go too far into the side lines.

Here is some info on how things were implemented in Axis 1. It would follow the same architecture for Axis2.

The basic layout is:

 [Servlet or other front-end]
          ||
   [WebServiceContainer]
          ||
        [Pojo]


There is one Servlet and WebServiceContainer stack per POJO webservice. The endpoint url points directly to the Servlet. When a call comes in, the Servlet adapts the HTTP Request/Responses into more generic objects as to support more than servlets as a front- end. The Servlet or other front-end puts the POJO instance in the Request object and invokes the WebServiceContainer.service(req, res) method.

The contract from that point is that the WebServiceContainer will read the soap request off the wire via the Request object, demarshall the arguments, and invoke the POJO instance. It then writes any soap response on the wire and that's it.

The front-end is provided by Jetty or Tomcat and the implementation of WebServiceContainer is what is now provided by Axis 1. We'd need another one for Axis2.

Here is the WebServiceContainer interface:
http://svn.apache.org/repos/asf/geronimo/trunk/modules/webservices/ src/java/org/apache/geronimo/webservices/WebServiceContainer.java

The POJO WebService Stack looks like this

http://svn.apache.org/repos/asf/geronimo/trunk/modules/webservices/ src/java/org/apache/geronimo/webservices/WebServiceContainerInvoker.java http://svn.apache.org/repos/asf/geronimo/trunk/modules/axis/src/java/ org/apache/geronimo/axis/server/AxisWebServiceContainer.java http://svn.apache.org/repos/asf/geronimo/trunk/modules/axis/src/java/ org/apache/geronimo/axis/server/POJOProvider.java

The EJB WebServices Stack:

Same rules as above with the exception that we aren't invoking a POJO, we have to delegate that work to the EJB Provider.

http://svn.apache.org/repos/asf/geronimo/trunk/modules/jetty/src/java/ org/apache/geronimo/jetty/JettyEJBWebServiceContext.java http://svn.apache.org/repos/asf/geronimo/trunk/modules/axis/src/java/ org/apache/geronimo/axis/server/AxisWebServiceContainer.java http://fisheye.codehaus.org/browse/openejb/trunk/openejb2/modules/ core/src/java/org/openejb/server/axis/EJBContainerProvider.java?r=2683


-David





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to