Hi Manorama,

This could be due to a bundle/service activation order issue. Could be ESB
is starting up and deploying services, before activating your component
MLModelHandler.

On Fri, Mar 27, 2015 at 8:38 AM, Manorama Perera <[email protected]> wrote:

> Hi,
>
> I'm implementing the ESB mediator for WSO2 Machine Learner.
>
> To use this mediator, Machine Learner features need to be installed in the
> ESB.
>
> I have a requirement to create a new instance of
> org.wso2.carbon.ml.core.impl.MLModelHandler at the mediator initialization.
> (MLModelHandler class will be avaiable in the classpath once the Machine
> Learner feature is installed)
>
> At the initialization of the MLModelHandler, it needs to read some
> configuration files (in repository/conf).
>
> I tried the following steps and got the below mentioned exception,
> indicating that the proxy cannot be loaded.
>
>    1. Add the machineLearner mediator in the inSequence of a proxy
>    service. (Machine Learner feature is already installed in ESB)
>    2. Restart the ESB server
>    3. At the server startup, a null pointer exception is thrown as below,
>    indicating that the configurations required at the initlializatoin of
>    org.wso2.carbon.ml.core.impl.MLModelHandler are not loaded.
>
> WARN - SynapseXMLConfigurationFactory Proxy Service configuration:
> MLMediatorTestProxy cannot be built - Continue in fail-safe mode
> java.lang.NullPointerException
>     at
> org.wso2.carbon.ml.core.utils.ThreadExecutor.<init>(ThreadExecutor.java:32)
>     at
> org.wso2.carbon.ml.core.impl.MLModelHandler.<init>(MLModelHandler.java:68)
>     at
> org.wso2.carbon.mediator.machinelearner.util.ModelHandler.<init>(ModelHandler.java:65)
>     at
> org.wso2.carbon.mediator.machinelearner.MachineLearnerMediator.<init>(MachineLearnerMediator.java:45)
>     at
> org.wso2.carbon.mediator.machinelearner.xml.MachineLearnerMediatorFactory.createSpecificMediator(MachineLearnerMediatorFactory.java:46)
>
> I noticed that, at the ESB server start-up, the mediator constructor is
> called twice per each proxy server configuration.
>
> However at the second time of mediator initialization, the configurations
> are available. So the proxy service is loaded successfully.
>
> It seems that the proxy is loaded before loading the configuration files
> required for the installed Machine Learner feature.
>
> How can I overcome this issue?
>
> Isn't it a good practice to access the installed features at the mediator
> initialization?
>
> As a solution, I can use the lazy loading approach. So that the new
> instance of org.wso2.carbon.ml.core.impl.MLModelHandler will be initialized
> only when the first message comes to the the mediator's mediate() method.
> Is this a suitable approach?
>
> Thanks.
>
> --
> Manorama Perera
> Software Engineer
> WSO2, Inc.;  http://wso2.com/
> Mobile : +94716436216
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
*Isuru Udana*
Senior
*Software Engineer*
WSO2 Inc.; http://wso2.com
email: [email protected] cell: +94 77 3791887
blog: http://mytecheye.blogspot.com/
twitter: http://twitter.com/isudana
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to