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.
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.
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
david jencks
Thanks Srinath
