You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Paul French <pa...@kirona.com> on 2009/01/02 12:38:12 UTC

RE: Modules and Handlers

Hello Amila,
 
thanks for your input. As far as I can tell Axis2 provides Spring
integration for services but not modules hence the link you provided below
does not help me.
 
Having to obtain the required resources from the configuration context on
every invoke method of the handler method is not ideal in my opinion. I
prefer to setup all my required dependencies on startup of the module and so
can throw the appropriate exceptions at that point.
 
ta,
Paul

  _____  

From: Amila Suriarachchi [mailto:amilasuriarachchi@gmail.com] 
Sent: 30 December 2008 02:33
To: axis-user@ws.apache.org
Subject: Re: Modules and Handlers





On Mon, Dec 29, 2008 at 7:38 PM, Paul French <pa...@kirona.com> wrote:


Unfortunatley you cannot. The module.init() method is called after the
handler.init() methods and so any setup you do in the module init is not
available to the handlers.

Module init() is called after handler init(). but those init methods are
called before each handler get invoked. Therefore what ever you initialized
and put to the configuration context is available for handler invocations.
So the normal way is to initialize what ever in the module init() method
which are required in handler invocations.
Anyway I am not clear about your requirement.


In the end I created my resources in the module constructor since the module
class is instantiated before the handlers.

For example I initialise Spring as follows:
 
  public ModuleLogger()
  {
    String[] contexts = new String[] {"logging_module_spring.xml"};
    ClassPathXmlApplicationContext ac = new
ClassPathXmlApplicationContext(contexts,false);
    ac.setClassLoader(this.getClass().getClassLoader());
    ac.refresh();
  }

Then in the handler.init() method I obtain the spring context from the
ApplicationContextHolder and grab all resources required to support the
handler e.g. DataSource


If you use spring please look at here[1]. you can initialize things at the
startup method. It is worth to note that all these initializing methods are
happened at deployment time. and hence before processing any requests.

thanks,
Amila.


[1]http://ws.apache.org/axis2/1_4_1/spring.html 



 
Cheers,
Paul
 
  _____  

From: Amila Suriarachchi [mailto:amilasuriarachchi@gmail.com] 
Sent: 29 December 2008 05:29 

To: axis-user@ws.apache.org
Subject: Re: Modules and Handlers





On Sun, Dec 28, 2008 at 11:53 PM, Paul French <pa...@kirona.com>
wrote:


The handler.init method is not passed the configuration context. So I
suppose I have to obtain the resources on each invocation of the invoke or
revoke method of the handler. Being a big Spring fan I was looking for a way
to configure my module and handlers up front.


you have to use the module init method. write a class  which implements the
Module interface and declare it 
in the module.xml.

<module name="moduleName" class="moduleClass">

thanks,
Amila.




Thanks


-----Original Message-----
From: Deepal jayasinghe [mailto:deepalk@gmail.com]
Sent: 28 December 2008 17:47
To: axis-user@ws.apache.org
Subject: Re: Modules and Handlers

Paul French wrote:
> I have written a simple Module that logs all SOAP messages into a
> database.
>
> My handlers needs access to resources setup in the Module init method
> e.g a DataSource
>
> I cannot see how a handler can get access to resources setup in the
> module? Can someone give me a clue?
At the initialization put the resources into the ConfigurationContext, and
then you can access at the runtime

Deepal
>
> Thanks
> Paul
>
>


--
Thank you!


http://blogs.deepal.org
http://deepal.org



__________ NOD32 3719 (20081227) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com







-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/





-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/