Hi, I could fix the error by registering *IssueTrackerService* as an OSGI bundle.
That line was missing in the service component. Thank you Danushka for pointing it out. Thank you everyone who helped. Regards, Dilhasha *M.N.F. Dilhasha* Software Engineering Intern | *WSO2 Lanka* email : *[email protected] <[email protected]>*mobile : +94 77 8449321 On Fri, Mar 20, 2015 at 10:16 AM, Fathima Dilhasha <[email protected]> wrote: > Hi Anuruddha, > > I also figured that *IssueTrackerService *class does not extend > *AbstractAdmin* unlike the* ApplicationManagementService *class. Can that > be the issue? > > Thanks. > > Regards, > Dilhasha > > *M.N.F. Dilhasha* > Software Engineering Intern | *WSO2 Lanka* > > email : > *[email protected] <[email protected]>*mobile : +94 77 8449321 > > On Fri, Mar 20, 2015 at 10:04 AM, Fathima Dilhasha <[email protected]> > wrote: > >> I compared services.xml files, >> >> And the only difference in *ApplicationManagementService* is the >> following part. >> >> <parameter name="AuthorizationAction" >> locked="false">/permission/admin/appfactory/application/create >> </parameter> >> <operation name="publishApplicationVersionCreation"> >> <parameter name="AuthorizationAction" >> locked="true">/permission/admin/appfactory/repository/branch >> </parameter> >> </operation> >> >> ..................................................................................................... >> >> >> *M.N.F. Dilhasha* >> Software Engineering Intern | *WSO2 Lanka* >> >> email : >> *[email protected] <[email protected]>*mobile : +94 77 8449321 >> >> On Fri, Mar 20, 2015 at 10:00 AM, Fathima Dilhasha <[email protected]> >> wrote: >> >>> Folowing is the code snippet in saveConfig.jag which I've used to access >>> the OSGI service, >>> >>> try { >>> >>> context.startTenantFlow(); >>> context.getThreadLocalCarbonContext().setTenantId(tenantId); >>> log.info('setting tennant id successful'); >>> >>> context.getThreadLocalCarbonContext().setTenantDomain(tenantDomain, >>> true); >>> log.info('setting tennant domain successful'); >>> log.info('server ' + server); >>> var service = >>> server.osgiService('org.wso2.carbon.appfactory.issuetracking.service.IssueTrackerService'); >>> >>> log.info('service is called successfully'); >>> >>> service.createProject("applicationName", issueTrackerConfig); >>> >>> } catch (e) { >>> log.error(e); >>> } finally { >>> context.endTenantFlow(); >>> } >>> >>> >>> In above code if I replace >>> org.wso2.carbon.appfactory.issuetracking.service.IssueTrackerService >>> >>> with >>> *org.wso2.carbon.appfactory.application.mgt.service.ApplicationManagementService,* >>> >>> I get no errors and it works fine. >>> >>> >>> *M.N.F. Dilhasha* >>> Software Engineering Intern | *WSO2 Lanka* >>> >>> email : >>> *[email protected] <[email protected]>*mobile : +94 77 8449321 >>> >>> On Fri, Mar 20, 2015 at 9:53 AM, Anuruddha Premalal <[email protected]> >>> wrote: >>> >>>> Hi Fathima, >>>> >>>> Could you provide the code snippets, which you used to access the OSGI >>>> service?. >>>> You could also refer to modules/manager/manager.jag to verify your >>>> method. >>>> >>>> Can you also check the service.xml file of the issuetracking service to >>>> see whether the methods are exposed with correct privileges. You could use >>>> application management service.xml as a reference. >>>> >>>> Regards, >>>> >>>> On Fri, Mar 20, 2015 at 9:40 AM, Fathima Dilhasha <[email protected]> >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>> Sorry about the previous email. After some time, >>>>> *org.wso2.carbon.appfactory.issuetracking* component is in >>>>> ''satisfied' state as follows. >>>>> >>>>> *osgi> comp 27 * >>>>> * Component[* >>>>> * name = org.wso2.carbon.issutracker* >>>>> * factory = null* >>>>> * autoenable = true* >>>>> * immediate = true* >>>>> * implementation = >>>>> org.wso2.carbon.appfactory.issuetracking.internal.IssueTrackerServiceComponent* >>>>> * state = Unsatisfied* >>>>> * properties = {service.pid=org.wso2.carbon.issutracker}* >>>>> * serviceFactory = false* >>>>> * serviceInterface = null* >>>>> * references = {* >>>>> * Reference[name = appfactory.configuration, interface = >>>>> org.wso2.carbon.appfactory.common.AppFactoryConfiguration, policy = >>>>> dynamic, cardinality = 1..1, target = null, bind = >>>>> setAppFactoryConfiguration, unbind = unsetAppFactoryConfiguration]* >>>>> * Reference[name = appfactory.application.mgt.service, interface = >>>>> org.wso2.carbon.appfactory.application.mgt.service.ApplicationManagementService, >>>>> policy = dynamic, cardinality = 1..1, target = null, bind = >>>>> setApplicationManagementService, unbind = >>>>> unsetApplicationManagementService]* >>>>> * }* >>>>> * located in bundle = >>>>> org.wso2.carbon.appfactory.issuetracking_2.1.0.SNAPSHOT [194]* >>>>> *]* >>>>> *Dynamic information :* >>>>> * The component is satisfied* >>>>> * All component references are satisfied* >>>>> * Component configurations :* >>>>> * Configuration properties:* >>>>> * service.pid = org.wso2.carbon.issutracker* >>>>> * component.name <http://component.name> = >>>>> org.wso2.carbon.issutracker* >>>>> * component.id <http://component.id> = 26* >>>>> * Instances:* >>>>> * >>>>> org.eclipse.equinox.internal.ds.impl.ComponentInstanceImpl@31be9a70* >>>>> * Bound References:* >>>>> * >>>>> String[org.wso2.carbon.appfactory.common.AppFactoryConfiguration]* >>>>> * -> >>>>> org.wso2.carbon.appfactory.common.AppFactoryConfiguration@588d4893* >>>>> * >>>>> String[org.wso2.carbon.appfactory.application.mgt.service.ApplicationManagementService]* >>>>> * -> >>>>> org.wso2.carbon.appfactory.application.mgt.service.ApplicationManagementService@2397d850* >>>>> >>>>> >>>>> Now, what could be the reason for the above null pointer exception? >>>>> >>>>> Thanks. >>>>> >>>>> Regards, >>>>> Dilhasha >>>>> >>>>> *M.N.F. Dilhasha* >>>>> Software Engineering Intern | *WSO2 Lanka* >>>>> >>>>> email : >>>>> *[email protected] <[email protected]>*mobile : +94 77 8449321 >>>>> >>>>> On Fri, Mar 20, 2015 at 9:32 AM, Fathima Dilhasha <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> I tried listing the osgi services and I found issue tracker service >>>>>> in 'UNSATISFIED' state. >>>>>> >>>>>> These are the details for *org.wso2.carbon.appfactory.issuetracking* >>>>>> component. >>>>>> >>>>>> *osgi> comp 27* >>>>>> * Component[* >>>>>> * name = org.wso2.carbon.issutracker* >>>>>> * factory = null* >>>>>> * autoenable = true* >>>>>> * immediate = true* >>>>>> * implementation = >>>>>> org.wso2.carbon.appfactory.issuetracking.internal.IssueTrackerServiceComponent* >>>>>> * state = Unsatisfied* >>>>>> * properties = {service.pid=org.wso2.carbon.issutracker}* >>>>>> * serviceFactory = false* >>>>>> * serviceInterface = null* >>>>>> * references = {* >>>>>> * Reference[name = appfactory.configuration, interface = >>>>>> org.wso2.carbon.appfactory.common.AppFactoryConfiguration, policy = >>>>>> dynamic, cardinality = 1..1, target = null, bind = >>>>>> setAppFactoryConfiguration, unbind = unsetAppFactoryConfiguration]* >>>>>> * Reference[name = appfactory.application.mgt.service, interface = >>>>>> org.wso2.carbon.appfactory.application.mgt.service.ApplicationManagementService, >>>>>> policy = dynamic, cardinality = 1..1, target = null, bind = >>>>>> setApplicationManagementService, unbind = >>>>>> unsetApplicationManagementService]* >>>>>> * }* >>>>>> * located in bundle = >>>>>> org.wso2.carbon.appfactory.issuetracking_2.1.0.SNAPSHOT [194]* >>>>>> *]* >>>>>> *Dynamic information :* >>>>>> * *The component is NOT satisfied* >>>>>> * The following references are not satisfied:* >>>>>> * Reference[name = appfactory.application.mgt.service, interface = >>>>>> org.wso2.carbon.appfactory.application.mgt.service.ApplicationManagementService, >>>>>> policy = dynamic, cardinality = 1..1, target = null, bind = >>>>>> setApplicationManagementService, unbind = >>>>>> unsetApplicationManagementService]* >>>>>> * Component configurations :* >>>>>> * Configuration properties:* >>>>>> * service.pid = org.wso2.carbon.issutracker* >>>>>> * component.name <http://component.name> = >>>>>> org.wso2.carbon.issutracker* >>>>>> * component.id <http://component.id> = 26* >>>>>> * Instances:* >>>>>> >>>>>> >>>>>> >>>>>> *M.N.F. Dilhasha* >>>>>> Software Engineering Intern | *WSO2 Lanka* >>>>>> >>>>>> email : >>>>>> *[email protected] <[email protected]>*mobile : +94 77 8449321 >>>>>> >>>>>> On Fri, Mar 20, 2015 at 8:43 AM, Fathima Dilhasha <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Thank you. >>>>>>> >>>>>>> That's correct, I used list admin services to see the services. I'll >>>>>>> debug more and see. >>>>>>> >>>>>>> Thanks. >>>>>>> >>>>>>> Regards, >>>>>>> Dilhasha >>>>>>> >>>>>>> *M.N.F. Dilhasha* >>>>>>> Software Engineering Intern | *WSO2 Lanka* >>>>>>> >>>>>>> email : >>>>>>> *[email protected] <[email protected]>*mobile : +94 77 8449321 >>>>>>> >>>>>>> On Fri, Mar 20, 2015 at 7:46 AM, Danushka Fernando < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> It needs to be an osgi service to do that. Probably you have used >>>>>>>> list admin services command to check in osgi console. That will list >>>>>>>> web >>>>>>>> services not osgi services. Same as wsdl. >>>>>>>> >>>>>>>> Thanks & Regards >>>>>>>> Danushka Fernando >>>>>>>> Software Engineer >>>>>>>> WSO2 inc. http://wso2.com/ >>>>>>>> Mobile : +94716332729 >>>>>>>> >>>>>>>> >>>>>>>> On Mar 20, 2015 7:33 AM, "Fathima Dilhasha" <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> I am trying to access the IssueTrackerService from a module in >>>>>>>>> appmgt. This gives a null pointer exception as follows. >>>>>>>>> >>>>>>>>> *TID: [0] [AF] [2015-03-20 01:27:36,329] ERROR >>>>>>>>> {module/issuetracker/saveConfig.jag} - >>>>>>>>> org.mozilla.javascript.WrappedException: Wrapped >>>>>>>>> java.lang.NullPointerException (osgi#8)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1754)* >>>>>>>>> * at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:148)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)* >>>>>>>>> * at org.mozilla.javascript.gen.osgi_11._c_anonymous_2(osgi:8)* >>>>>>>>> * at org.mozilla.javascript.gen.osgi_11.call(osgi)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.rhino.appmgt.modules.issuetracker.get.c1._c_anonymous_1(/appmgt/modules/issuetracker/get/saveConfig.jag:56)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.rhino.appmgt.modules.issuetracker.get.c1.call(/appmgt/modules/issuetracker/get/saveConfig.jag)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.rhino.appmgt.modules.issuetracker.c0._c_anonymous_4(/appmgt/modules/issuetracker/module.jag:32)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.rhino.appmgt.modules.issuetracker.c0.call(/appmgt/modules/issuetracker/module.jag)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:85)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.rhino.appmgt.site.blocks.issuetracker.list.ajax.c1._c_anonymous_1(/appmgt/site/blocks/issuetracker/list/ajax/save.jag:10)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.rhino.appmgt.site.blocks.issuetracker.list.ajax.c1.call(/appmgt/site/blocks/issuetracker/list/ajax/save.jag)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.rhino.appmgt.site.blocks.issuetracker.list.ajax.c1._c_script_0(/appmgt/site/blocks/issuetracker/list/ajax/save.jag:6)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.rhino.appmgt.site.blocks.issuetracker.list.ajax.c1.call(/appmgt/site/blocks/issuetracker/list/ajax/save.jag)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)* >>>>>>>>> * at >>>>>>>>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.rhino.appmgt.site.blocks.issuetracker.list.ajax.c1.call(/appmgt/site/blocks/issuetracker/list/ajax/save.jag)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.rhino.appmgt.site.blocks.issuetracker.list.ajax.c1.exec(/appmgt/site/blocks/issuetracker/list/ajax/save.jag)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:541)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24)* >>>>>>>>> * at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)* >>>>>>>>> * at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)* >>>>>>>>> * at >>>>>>>>> org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)* >>>>>>>>> * at >>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178)* >>>>>>>>> * at >>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)* >>>>>>>>> * at >>>>>>>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56)* >>>>>>>>> * at >>>>>>>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)* >>>>>>>>> * at >>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141)* >>>>>>>>> * at >>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)* >>>>>>>>> * at >>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)* >>>>>>>>> * at >>>>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)* >>>>>>>>> * at >>>>>>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)* >>>>>>>>> * at >>>>>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)* >>>>>>>>> * at >>>>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)* >>>>>>>>> * at >>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)* >>>>>>>>> * at >>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)* >>>>>>>>> * at java.lang.Thread.run(Thread.java:744)* >>>>>>>>> *Caused by: java.lang.NullPointerException* >>>>>>>>> * at >>>>>>>>> org.wso2.carbon.context.PrivilegedCarbonContext.getOSGiService(PrivilegedCarbonContext.java:448)* >>>>>>>>> * at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)* >>>>>>>>> * at >>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)* >>>>>>>>> * at java.lang.reflect.Method.invoke(Method.java:606)* >>>>>>>>> * at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)* >>>>>>>>> * ... 59 more* >>>>>>>>> * {module/issuetracker/saveConfig.jag}* >>>>>>>>> >>>>>>>>> >>>>>>>>> But when I try to access another service (e.g. >>>>>>>>> ApplicationManagementService) , no exception occurs and code works >>>>>>>>> fine. >>>>>>>>> >>>>>>>>> Regarding IssueTrackerService, >>>>>>>>> >>>>>>>>> >>>>>>>>> - It is listed in the osgi console. >>>>>>>>> - I can access the wsdl for the service at specified url >>>>>>>>> - I don't see any usage of the IssueTrackerService >>>>>>>>> >>>>>>>>> >>>>>>>>> What can be the issue with this service? >>>>>>>>> Any help is appreciated. >>>>>>>>> >>>>>>>>> Thanks. >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Dilhasha >>>>>>>>> >>>>>>>>> >>>>>>>>> *M.N.F. Dilhasha* >>>>>>>>> Software Engineering Intern | *WSO2 Lanka* >>>>>>>>> >>>>>>>>> email : >>>>>>>>> *[email protected] <[email protected]>*mobile : +94 77 8449321 >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>>> >>>> -- >>>> *Anuruddha Premalal* >>>> Software Eng. | WSO2 Inc. >>>> Mobile : +94710461070 >>>> Web site : www.regilandvalley.com >>>> >>>> >>> >> >
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
