personalcancertoolkit / openmrs-module-patientportaltoolkit

Other
7 stars 9 forks source link

Could not find Spring bean with id myBean #301

Open uladkasach opened 6 years ago

uladkasach commented 6 years ago

The line public void controller(@SpringBean("myBean") DataAccessPermissionService permissionService){, introduced with https://github.com/uladkasach/openmrs-module-patientportaltoolkit/commit/77fd350edae39c6fe7038f2f586c6670732d5131#diff-8adf24a115067a8c687e64d81ef3898f, results in the error appended below.

org.openmrs.ui.framework.UiFrameworkException: Could not find Spring bean with id myBean
    at org.openmrs.ui.framework.UiFrameworkUtil.determineArgumentValue(UiFrameworkUtil.java:304)
    at org.openmrs.ui.framework.UiFrameworkUtil.invokeMethodWithArguments(UiFrameworkUtil.java:101)
    at org.openmrs.ui.framework.UiFrameworkUtil.executeControllerMethod(UiFrameworkUtil.java:71)
    at org.openmrs.ui.framework.fragment.FragmentFactory.handleRequestWithController(FragmentFactory.java:241)
    at org.openmrs.ui.framework.fragment.FragmentFactory.processThisFragment(FragmentFactory.java:160)
    at org.openmrs.ui.framework.fragment.FragmentFactory.process(FragmentFactory.java:124)
    at org.openmrs.ui.framework.page.PageContext.includeFragment(PageContext.java:75)
    at org.openmrs.ui.framework.UiUtils.includeFragment(UiUtils.java:152)
    at org.openmrs.ui.framework.UiUtils$includeFragment.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
    at SimpleTemplateScript167.run(SimpleTemplateScript167.groovy:57)
    at groovy.text.SimpleTemplateEngine$SimpleTemplate$1.writeTo(SimpleTemplateEngine.java:168)
    at groovy.text.SimpleTemplateEngine$SimpleTemplate$1.toString(SimpleTemplateEngine.java:180)
    at org.openmrs.ui.framework.page.GroovyPageView.render(GroovyPageView.java:43)
    at org.openmrs.ui.framework.page.PageFactory.processThisFragment(PageFactory.java:187)
    at org.openmrs.ui.framework.page.PageFactory.process(PageFactory.java:116)
    at org.openmrs.ui.framework.page.PageFactory.handle(PageFactory.java:86)
    at org.openmrs.module.uiframework.PageController.handlePath(PageController.java:116)
    at org.openmrs.module.uiframework.PageController.handleUrlWithDotPage(PageController.java:83)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:177)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:446)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:434)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:816)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1686)
    at org.openmrs.module.web.filter.ForcePasswordChangeFilter.doFilter(ForcePasswordChangeFilter.java:60)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    at org.openmrs.module.web.filter.ModuleFilterChain.doFilter(ModuleFilterChain.java:72)
    at org.openmrs.module.owa.filter.OwaFilter.doFilter(OwaFilter.java:57)
    at org.openmrs.module.web.filter.ModuleFilterChain.doFilter(ModuleFilterChain.java:70)
    at org.openmrs.module.web.filter.ModuleFilter.doFilter(ModuleFilter.java:54)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    at org.openmrs.web.filter.OpenmrsFilter.doFilterInternal(OpenmrsFilter.java:108)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1156)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1088)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
    at org.eclipse.jetty.server.Server.handle(Server.java:517)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
    at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
    at java.lang.Thread.run(Thread.java:748)
uladkasach commented 6 years ago

I've attempted to remove the @SpringBean('myBean') portion and it resolved with this error:

java.lang.NoSuchMethodError: org.openmrs.module.patientportaltoolkit.api.PatientPortalRelationService.hasAccessToShareType(Lorg/openmrs/Person;Lorg/openmrs/Person;Lorg/openmrs/module/patientportaltoolkit/SecurityLayer;Lorg/openmrs/User;)Z
    at org.openmrs.module.patientportaltoolkit.fragment.controller.home.HealthyBehaviorsFragmentController.controller(HealthyBehaviorsFragmentController.java:39)
uladkasach commented 6 years ago

        PatientPortalRelationService relationService = Context.getService(PatientPortalRelationService.class);
        System.out.println("-------------");
        System.out.println(relationService);
        System.out.println(relationService.getClass());
        Method[] methods = relationService.getClass().getMethods();
        System.out.println("-------------");
        for (Method method : methods) {
          System.out.println(method.getName());
        }
        System.out.println("-------------");

Produces

-------------
org.openmrs.module.patientportaltoolkit.api.impl.PatientPortalRelationServiceImpl@20eeb560
class com.sun.proxy.$Proxy314
-------------
getAllPatientPortalRelations
getPatientPortalRelationByPatient
getPatientPortalRelationByPatient
getPatientPortalRelationByRelatedPerson
getAcceptedPatientPortalRelationByRelatedPerson
savePatientPortalRelation
deletePatientPortalRelation
deletePatientPortalRelation
updatePatientPortalRelation
getPatientPortalRelationByPerson
getPatientPortalRelationByPerson
getPatientPortalRelation
getPatientPortalRelation
onShutdown
addAdvisor
addAdvisor
addAdvice
addAdvice
removeAdvisor
removeAdvisor
removeAdvice
getTargetClass
onStartup
setTargetSource
getTargetSource
isProxyTargetClass
setPreFiltered
isInterfaceProxied
setExposeProxy
isExposeProxy
isPreFiltered
getProxiedInterfaces
getAdvisors
replaceAdvisor
toProxyConfigString
equals
toString
hashCode
indexOf
indexOf
isFrozen
getInvocationHandler
getProxyClass
newProxyInstance
isProxyClass
wait
wait
wait
getClass
notify
notifyAll
-------------

Meaning that hasAccessToShareType and saveShareTypes are not accessible even though they are defined.