On Dec 14, 2004, at 10:24 PM, Srinath Perera wrote:

Hi David;
I don't think exactly this will work.  I have two related ideas that
will work;

1.  Supply the kernel name and axis gbean object name as init params
for the servlet.  The init method can then get the actual kernel using
the kernel name

Kernel kernel = Kernel.getKernel(kernelName);

and get a proxy to the axis gbean using its object name (don't remember
the code). This could be done with the current web deployment
framework.
there is a minus point as we need to user kernel to invoke the methods
that we do not like to do unless absolutly necessary

You can get a proxy implementing axis[GBean]. While calls do go through some CGLib machinery, they go through just as much with proposal (2). (1) can be implemented without writing a special builder, just generating web.xml.

2.  I think an even better approach is to extend JettyServletHolder to
include a reference to the AxisGBean and to construct the servlet
instance with the reference.  Since we would control the construction
of the servlet, it could have a non-default constructor.  This would
require writing some web services deployment code that would process
the web services dd and add gbeans to the context directly.

that would be nice :) if I got the idea correct it is if Servlet has constructor with AxisGBean the kernel injected refernace to AxisGBean for us! hope that is not unfair requirment from the web container point of view

we won't be deploying a normal servlet, but a "servlet" with a non-default constructor. This would depend on quite a few details of the jetty-geronimo integration.

david jencks



Thanks
Srinath




Reply via email to