Messaging Module Required Version

HI, I would like to know which openmrs version, the current messaging module omod (0.9.0 beta) would work. My module which runs on 1.11.4, requires sending an email to patient, therefore i want to use messaging module. I am trying to add the messaging module omod on openmrs platform version 1.11.4 and it is showing an error message which does not specify the version requirement. please let me know. Thank you. Tenzin

Hi, I have also tried MessageService messageService = Context.getMessageService();

	String recipients = "xxx■■■■■■■■■■";
	String subject = "HI";
	String content = "hello";
            String sender = "xxx■■■■■■■■■■";

messageService.sendMessage(recipients, sender, subject, content);

It is showing “connection refused” error message.

What error do you get. Can you share the log?

Hi Danial, MessageService messageService = Context.getMessageService(); messageService.sendMessage(recipients, sender, subject, content);

Here is the log file:

ERROR - MessageServiceImpl.sendMessage(91) |2016-08-08 23:47:16,150| Message could not be sent due to javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused org.openmrs.notification.MessageException: javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused at org.openmrs.notification.mail.MailMessageSender.send(MailMessageSender.java:74) at org.openmrs.notification.impl.MessageServiceImpl.sendMessage(MessageServiceImpl.java:88) at sun.reflect.GeneratedMethodAccessor785.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy222.sendMessage(Unknown Source) at sun.reflect.GeneratedMethodAccessor785.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.openmrs.aop.LoggingAdvice.invoke(LoggingAdvice.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy223.sendMessage(Unknown Source) at org.openmrs.notification.impl.MessageServiceImpl.sendMessage(MessageServiceImpl.java:153) at sun.reflect.GeneratedMethodAccessor783.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy222.sendMessage(Unknown Source) at sun.reflect.GeneratedMethodAccessor783.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.openmrs.aop.LoggingAdvice.invoke(LoggingAdvice.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy223.sendMessage(Unknown Source) at org.openmrs.module.radiology.fragment.controller.AddRadiologyOrderFormFragmentController.controller(AddRadiologyOrderFormFragmentController.java:65) 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.openmrs.ui.framework.UiFrameworkUtil.invokeMethodWithArguments(UiFrameworkUtil.java:109) at org.openmrs.ui.framework.UiFrameworkUtil.executeControllerMethod(UiFrameworkUtil.java:68) at org.openmrs.ui.framework.fragment.FragmentFactory.handleRequestWithController(FragmentFactory.java:232) at org.openmrs.ui.framework.fragment.FragmentFactory.processThisFragment(FragmentFactory.java:152) at org.openmrs.ui.framework.fragment.FragmentFactory.process(FragmentFactory.java:116) at org.openmrs.ui.framework.page.PageContext.includeFragment(PageContext.java:75) at org.openmrs.ui.framework.UiUtils.includeFragment(UiUtils.java:157) at sun.reflect.GeneratedMethodAccessor635.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:132) at SimpleTemplateScript45.run(SimpleTemplateScript45.groovy:68) at groovy.text.SimpleTemplateEngine$SimpleTemplate$1.writeTo(SimpleTemplateEngine.java:165) at groovy.text.SimpleTemplateEngine$SimpleTemplate$1.toString(SimpleTemplateEngine.java:177) at org.openmrs.ui.framework.page.GroovyPageView.render(GroovyPageView.java:43) at org.openmrs.ui.framework.page.PageFactory.processThisFragment(PageFactory.java:185) at org.openmrs.ui.framework.page.PageFactory.process(PageFactory.java:114) at org.openmrs.ui.framework.page.PageFactory.handle(PageFactory.java:84) at org.openmrs.module.uiframework.PageController.handlePath(PageController.java:115) at org.openmrs.module.uiframework.PageController.handleUrlWithDotPage(PageController.java:82) at sun.reflect.GeneratedMethodAccessor735.invoke(Unknown Source) 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:176) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.module.web.filter.ForcePasswordChangeFilter.doFilter(ForcePasswordChangeFilter.java:61) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.module.web.filter.ModuleFilterChain.doFilter(ModuleFilterChain.java:72) at org.openmrs.module.web.filter.ModuleFilter.doFilter(ModuleFilter.java:54) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.web.filter.OpenmrsFilter.doFilterInternal(OpenmrsFilter.java:109) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:230) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:288) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at javax.mail.Transport.send0(Transport.java:188) at javax.mail.Transport.send(Transport.java:118) at org.openmrs.notification.mail.MailMessageSender.send(MailMessageSender.java:68) … 140 more Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359) … 147 more ERROR - PageController.handlePath(150) |2016-08-08 23:47:16,170| Error rendering page view for radiologyOrder. Model properties: sessionContext featureToggles patient urgencies diagnosislist studyConceptNameList modalityConceptNameList performedStatuses returnUrl ui context contextPath session param out org.openmrs.ui.framework.ViewException: Error rendering page view for radiologyOrder. Model properties: sessionContext featureToggles patient urgencies diagnosislist studyConceptNameList modalityConceptNameList performedStatuses returnUrl ui context contextPath session param out at org.openmrs.ui.framework.page.GroovyPageView.render(GroovyPageView.java:55) at org.openmrs.ui.framework.page.PageFactory.processThisFragment(PageFactory.java:185) at org.openmrs.ui.framework.page.PageFactory.process(PageFactory.java:114) at org.openmrs.ui.framework.page.PageFactory.handle(PageFactory.java:84) at org.openmrs.module.uiframework.PageController.handlePath(PageController.java:115) at org.openmrs.module.uiframework.PageController.handleUrlWithDotPage(PageController.java:82) at sun.reflect.GeneratedMethodAccessor735.invoke(Unknown Source) 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:176) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.module.web.filter.ForcePasswordChangeFilter.doFilter(ForcePasswordChangeFilter.java:61) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.module.web.filter.ModuleFilterChain.doFilter(ModuleFilterChain.java:72) at org.openmrs.module.web.filter.ModuleFilter.doFilter(ModuleFilter.java:54) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.web.filter.OpenmrsFilter.doFilterInternal(OpenmrsFilter.java:109) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:230) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:105) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: org.openmrs.ui.framework.UiFrameworkException: Exception in controller method at org.openmrs.ui.framework.UiFrameworkUtil.invokeMethodWithArguments(UiFrameworkUtil.java:123) at org.openmrs.ui.framework.UiFrameworkUtil.executeControllerMethod(UiFrameworkUtil.java:68) at org.openmrs.ui.framework.fragment.FragmentFactory.handleRequestWithController(FragmentFactory.java:232) at org.openmrs.ui.framework.fragment.FragmentFactory.processThisFragment(FragmentFactory.java:152) at org.openmrs.ui.framework.fragment.FragmentFactory.process(FragmentFactory.java:116) at org.openmrs.ui.framework.page.PageContext.includeFragment(PageContext.java:75) at org.openmrs.ui.framework.UiUtils.includeFragment(UiUtils.java:157) at sun.reflect.GeneratedMethodAccessor635.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:132) at SimpleTemplateScript45.run(SimpleTemplateScript45.groovy:68) at groovy.text.SimpleTemplateEngine$SimpleTemplate$1.writeTo(SimpleTemplateEngine.java:165) at groovy.text.SimpleTemplateEngine$SimpleTemplate$1.toString(SimpleTemplateEngine.java:177) at org.openmrs.ui.framework.page.GroovyPageView.render(GroovyPageView.java:43) … 62 more Caused by: org.openmrs.notification.MessageException: org.openmrs.notification.MessageException: javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused at org.openmrs.notification.impl.MessageServiceImpl.sendMessage(MessageServiceImpl.java:92) at sun.reflect.GeneratedMethodAccessor785.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy222.sendMessage(Unknown Source) at sun.reflect.GeneratedMethodAccessor785.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.openmrs.aop.LoggingAdvice.invoke(LoggingAdvice.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy223.sendMessage(Unknown Source) at org.openmrs.notification.impl.MessageServiceImpl.sendMessage(MessageServiceImpl.java:153) at sun.reflect.GeneratedMethodAccessor783.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy222.sendMessage(Unknown Source) at sun.reflect.GeneratedMethodAccessor783.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.openmrs.aop.LoggingAdvice.invoke(LoggingAdvice.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy223.sendMessage(Unknown Source) at org.openmrs.module.radiology.fragment.controller.AddRadiologyOrderFormFragmentController.controller(AddRadiologyOrderFormFragmentController.java:65) 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.openmrs.ui.framework.UiFrameworkUtil.invokeMethodWithArguments(UiFrameworkUtil.java:109) … 80 more Caused by: org.openmrs.notification.MessageException: javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused at org.openmrs.notification.mail.MailMessageSender.send(MailMessageSender.java:74) at org.openmrs.notification.impl.MessageServiceImpl.sendMessage(MessageServiceImpl.java:88) … 139 more Caused by: javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:288) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at javax.mail.Transport.send0(Transport.java:188) at javax.mail.Transport.send(Transport.java:118) at org.openmrs.notification.mail.MailMessageSender.send(MailMessageSender.java:68) … 140 more Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359) … 147 more INFO - LoggingAdvice.invoke(115) |2016-08-09 00:25:39,126| In method ReportService.deleteOldReportRequests. Arguments: INFO - LoggingAdvice.invoke(155) |2016-08-09 00:25:39,139| Exiting method deleteOldReportRequests

Hi, When trying to add messagingmodule, it is showing the following errror.

INFO - LoggingAdvice.invoke(115) |2016-08-09 06:34:13,903| In method AlertService.saveAlert. Arguments: Alert=Alert: #73, INFO - LoggingAdvice.invoke(155) |2016-08-09 06:34:13,955| Exiting method saveAlert WARN - ModuleFactory.startModuleInternal(792) |2016-08-09 06:34:17,544| Error while trying to start module: messaging org.openmrs.module.ModuleException: Module requires version matching . Current code version is 1.11.4 at org.openmrs.module.ModuleUtil.checkRequiredVersion(ModuleUtil.java:345) at org.openmrs.module.ModuleFactory.startModuleInternal(ModuleFactory.java:643) at org.openmrs.api.context.Daemon$1.run(Daemon.java:68) INFO - LoggingAdvice.invoke(115) |2016-08-09 06:34:17,711| In method AlertService.saveAlert. Arguments: Alert=Alert: #null, INFO - LoggingAdvice.invoke(155) |2016-08-09 06:34:17,719| Exiting method saveAlert

thanks

For stack traces, always use tools like pastebin.com and then just include the link here.

As for the error, it is a bug in the platform where a module’s config.xml does not have a require element. The easiest workaround is for you to add something like: https://github.com/openmrs/openmrs-module-xforms/blob/master/omod/src/main/resources/config.xml#L20 to this file https://github.com/openmrs/openmrs-module-messaging/blob/master/omod/src/main/resources/config.xml and compile the module.

The other alternative is to use platform 2.0 which has this bug fixed.

Hi Daniel, Here is my config.xml file:

<!-- Basic Module Properties -->
<id>${project.parent.artifactId}</id>
<name>${project.parent.name}</name>
<version>${project.parent.version}</version>
<package>${project.parent.groupId}.${project.parent.artifactId}
</package>
<author>Cortex, Akhil Ravindran</author>
<description>
	Manage radiology orders and reports.
	http://wiki.openmrs.org/display/docs/Radiology+Module
</description>

<activator>${project.parent.groupId}.${project.parent.artifactId}.RadiologyActivator
</activator>

<require_version>1.11.4</require_version>
<require_database_version>1.0.0</require_database_version>
<!-- Required Modules -->
<require_modules>
	<require_module version="${emr-apiVersion}">org.openmrs.module.emrapi
	</require_module>
            <require_module version="0.9.0-beta">org.openmrs.module.emrapi
	</require_module>
            <require_module>
        org.openmrs.module.uiframework
    </require_module><require_module version="${uicommonsVersion}">
        org.openmrs.module.uicommons
    </require_module><require_module version="${appuiVersion}">
        org.openmrs.module.appui
    </require_module><require_module version="${appframeworkVersion}">
        org.openmrs.module.appframework
    </require_module>
</require_modules>
<!-- / Required Modules -->

<!-- Extensions -->
<extension>
	<point>org.openmrs.admin.list</point>
	<class>@MODULE_PACKAGE@.web.extension.html.AdminList</class>
</extension>

<extension>
	<point>org.openmrs.patientDashboardTab</point>
	<class>@MODULE_PACKAGE@.web.extension.html.RadiologyDashboardExt
	</class>
</extension>

<!-- /Extensions -->

<!--Required Global Properties -->
<globalProperty>
	<property>@MODULE_ID@.mwlDirectory</property>
	<defaultValue>mwl</defaultValue>
	<description>Directory for mwl entries. Ex: d:/tmp/mwl or /tmp/mwl
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.mppsDirectory</property>
	<defaultValue>mpps</defaultValue>
	<description>Directory for mpps entries</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.pacsAddress</property>
	<defaultValue>localhost</defaultValue>
	<description>IP address or hostname of the PACS</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.pacsHL7Port</property>
	<defaultValue>2575</defaultValue>
	<description>HL7 port of the PACS to send radiology orders to
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.pacsDicomAeTitle</property>
	<defaultValue>DCM4CHEE</defaultValue>
	<description>DICOM AE title of the PACS
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.dicomMppsPort</property>
	<defaultValue>11114</defaultValue>
	<description>DICOM port of the radiology module MPPS SCU to receive DICOM MPPS
		updates
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.dicomAeTitle</property>
	<defaultValue>RADIOLOGY_MODULE</defaultValue>
	<description>DICOM AE title of the radiology module
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.dicomApplicationUID</property>
	<defaultValue>1.2.826.0.1.3680043.8.2186</defaultValue>
	<description>
		You need an application root UID, this will be the prefix
		of any module
		DICOM object, the default value serves for debugging
		purposes
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.dicomStudyUIDSlug</property>
	<defaultValue>1</defaultValue>
	<description>Example: applicationUID+studyUIDSlug+orderId could be a
		study UID. Example values: 1.2, 1.1.1 (No
		start or end dots)
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.dicomSpecificCharacterSet</property>
	<defaultValue>ISO-8859-1</defaultValue>
	<description>DICOM working character set
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.dicomWebViewerAddress</property>
	<defaultValue>localhost</defaultValue>
	<description>IP address or hostname of the DICOM web viewer
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.dicomWebViewerPort</property>
	<defaultValue>8081</defaultValue>
	<description>Port of the DICOM web viewer</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.dicomWebViewerBaseUrl</property>
	<defaultValue>/weasis-pacs-connector/viewer</defaultValue>
	<description>Base URL of the DICOM web viewer (e.g. Weasis, Oviyam,
		...). Default is for Weasis using weasis-pacs-connector (Weasis needs
		java on client):
		"/weasis-pacs-connector/viewer". For
		Oviyam:
		"/oviyam2/viewer.html".
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.dicomWebViewerLocalServerName</property>
	<defaultValue></defaultValue>
	<description>This value if set, is added as query parameter to the
		DICOM web
		viewer URL.
		'http://{dicomWebViewerAddress}:{dicomWebViewerPort}{dicomWebViewerBaseUrl}?serverName={dicomWebViewerLocalServerName}'
		When deploying Oviyam set this to the local server name created in
		Oviyam UI
		(default
		value: "oviyamlocal"). Leave empty for
		Weasis.
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.radiologyCareSetting</property>
	<defaultValue>6f0c9a92-6f24-11e3-af88-005056821db0</defaultValue>
	<description>
		UUID of the Care Setting to use when creating radiology
		orders; the
		default is the uuid of the "Outpatient" setting baked into
		core
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.radiologyConceptClasses</property>
	<defaultValue></defaultValue>
	<description>Comma separated list of concept class UUIDs which define
		concepts that are orderable as radiology orders
	</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.radiologyOrderingProviderEncounterRole</property>
	<defaultValue>13fc9b4a-49ed-429c-9dde-ca005b387a3d</defaultValue>
	<description>Radiology Ordering Provider Encounter Role UUID</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.radiologyTestOrderType</property>
	<defaultValue>dbdb9a9b-56ea-11e5-a47f-08002719a237</defaultValue>
	<description>Radiology Test Order Type UUID</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.radiologyOrderEncounterType</property>
	<defaultValue>19db8c0d-3520-48f2-babd-77f2d450e5c7</defaultValue>
	<description>Radiology Order Encounter Type UUID</description>
</globalProperty>
<globalProperty>
	<property>@MODULE_ID@.radiologyVisitType</property>
	<defaultValue>fe898a34-1ade-11e1-9c71-00248140a5eb</defaultValue>
	<description>Radiology Visit Type UUID</description>
</globalProperty>
<!-- we provide the setting for the GP of the emr-api here since it is not provided by them. otherwise users would need to set the GP via the database. remove once emr-api defines this GP in their config.xml -->
<globalProperty>
    <property>emr.encounterMatcher</property>
    <defaultValue>org.openmrs.module.radiology.RadiologyEncounterMatcher</defaultValue>
    <description>
        Class name of a custom encounter matcher (e.g. org.openmrs.module.example.CustomEncounterMatcher)
    </description>
</globalProperty>

<!--Required Global Properties -->

<!-- Internationalization -->
<!-- All message codes should start with moduleId.* -->

<messages>
	<lang>en</lang>
	<file>hl7messages.properties</file>
</messages>
<messages>
	<lang>en</lang>
	<file>messages.properties</file>
</messages>
<messages>
	<lang>es</lang>
	<file>messages_es.properties</file>
</messages>
<!-- /Internationalization -->

<mappingFiles>RadiologyStudy.hbm.xml RadiologyOrder.hbm.xml
	RadiologyReport.hbm.xml RadiologyModalityList.hbm.xml
        RadiologyStudyList.hbm.xml
</mappingFiles>

<!-- Accessed through the url /pageContext()/moduleServlet/<moduleId>/<servlet-name> -->
<!-- <servlet> <servlet-name>viewer.jnlp</servlet-name> <servlet-class>org.weasis.servlet.Weasis_Launcher</servlet-class> 
	</servlet> <servlet> <servlet-name>wadoRequest</servlet-name> <servlet-class>com.hxti.xebra.com.wado.WADORequestServlet</servlet-class> 
	</servlet> -->

Here is my pom.xml

4.0.0

<groupId>org.openmrs.module</groupId>
<artifactId>radiology</artifactId>
<version>0.1.0.0-dev-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Radiology</name>
<description>Parent project for Radiology</description>

<url>https://wiki.openmrs.org/display/docs/Radiology+Module</url>

<scm>
	<connection>scm:git:https://github.com/openmrs/openmrs-module-radiology</connection>
	<developerConnection>scm:git:https://github.com/openmrs/openmrs-module-radiology</developerConnection>
	<url>https://github.com/openmrs/openmrs-module-radiology</url>
</scm>

<modules>
	<module>api</module>
	<module>omod</module>
</modules>

<properties>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<openMRSVersion>1.11.4</openMRSVersion>
	<hapiVersion>2.0</hapiVersion>
	<emr-apiVersion>1.13</emr-apiVersion>
	<formatterPluginVersion>0.5.2</formatterPluginVersion>
	<eclipseFormatterStyle>${project.parent.basedir}/tools/formatter/OpenMRSFormatter.xml</eclipseFormatterStyle>
</properties>

<dependencyManagement>
	<dependencies>
                <dependency>
			<groupId>org.openmrs.module</groupId>
                        <artifactId>messaging</artifactId>
                         <version>0.9.0-beta</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.openmrs.api</groupId>
			<artifactId>openmrs-api</artifactId>
			<version>${openMRSVersion}</version>
			<type>jar</type>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.openmrs.api</groupId>
			<artifactId>openmrs-api</artifactId>
			<version>${openMRSVersion}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.openmrs.web</groupId>
			<artifactId>openmrs-web</artifactId>
			<version>${openMRSVersion}</version>
			<type>jar</type>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.openmrs.web</groupId>
			<artifactId>openmrs-web</artifactId>
			<version>${openMRSVersion}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.openmrs.test</groupId>
			<artifactId>openmrs-test</artifactId>
			<version>${openMRSVersion}</version>
			<type>pom</type>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.openmrs.tools</groupId>
			<artifactId>openmrs-tools</artifactId>
			<version>${openMRSVersion}</version>
		</dependency>

		<!-- Added logging libraries at the parent project level so that its inherited 
			by child modules. Scope is 'provided' since they come with openmrs.war -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.6.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.6.1</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>ca.uhn.hapi</groupId>
			<artifactId>hapi-structures-v231</artifactId>
			<version>${hapiVersion}</version>
			<exclusions>
				<exclusion>
					<groupId>*</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

</dependencyManagement>

<dependencies>
	<dependency>
		<groupId>org.openmrs.module</groupId>
		<artifactId>emrapi-api</artifactId>
		<version>${emr-apiVersion}</version>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.openmrs.module</groupId>
		<artifactId>emrapi-api-1.11</artifactId>
		<version>${emr-apiVersion}</version>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.openmrs.module</groupId>
		<artifactId>reporting-api</artifactId>
		<version>0.9.9</version>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.openmrs.module</groupId>
		<artifactId>calculation-api</artifactId>
		<version>1.1</version>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.openmrs.module</groupId>
		<artifactId>serialization.xstream-api</artifactId>
		<version>0.2.10</version>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.openmrs.module</groupId>
		<artifactId>providermanagement-api</artifactId>
		<version>2.4</version>
		<scope>provided</scope>
	</dependency>
            <dependency>
             <groupId>org.openmrs.module</groupId>
            <artifactId>uiframework-api</artifactId>
            <version>3.4</version>
            <type>jar</type>
            <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.openmrs.module</groupId>
                <artifactId>uicommons-api</artifactId>
                <version>1.7</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.openmrs.module</groupId>
                <artifactId>appui-api</artifactId>
                <version>1.4</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.openmrs.module</groupId>
                <artifactId>appframework-api</artifactId>
                <version>2.4</version>
                <scope>provided</scope>
            </dependency>
</dependencies>
<build>
	<pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<target>1.6</target>
					<source>1.6</source>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.openmrs.maven.plugins</groupId>
				<artifactId>maven-openmrs-plugin</artifactId>
				<version>1.0.1</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>2.4</version>
			</plugin>
			<plugin>
				<groupId>net.revelc.code</groupId>
				<artifactId>formatter-maven-plugin</artifactId>
				<version>${formatterPluginVersion}</version>
				<configuration>
					<compilerSource>${javaCompilerVersion}</compilerSource>
					<compilerCompliance>${javaCompilerVersion}</compilerCompliance>
					<compilerTargetPlatform>${javaCompilerVersion}</compilerTargetPlatform>
					<configFile>${eclipseFormatterStyle}</configFile>
					<overrideConfigCompilerVersion>true</overrideConfigCompilerVersion>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.7.5.201505241946</version>
				<executions>
					<execution>
						<id>prepare-agent</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.eluder.coveralls</groupId>
				<artifactId>coveralls-maven-plugin</artifactId>
				<version>4.0.0</version>
			</plugin>
		</plugins>
	</pluginManagement>
</build>

<repositories>
	<repository>
		<id>openmrs-repo</id>
		<name>OpenMRS Nexus Repository</name>
		<url>http://mavenrepo.openmrs.org/nexus/content/repositories/public</url>
	</repository>
	<repository>
		<id>dcm4che</id>
		<name>dcm4che Repository</name>
		<url>http://www.dcm4che.org/maven2</url>
	</repository>
</repositories>

<pluginRepositories>
	<pluginRepository>
		<id>openmrs-repo</id>
		<name>OpenMRS Nexus Repository</name>
		<url>http://mavenrepo.openmrs.org/nexus/content/repositories/public</url>
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</pluginRepository>
</pluginRepositories>

<distributionManagement>
	<repository>
		<id>openmrs-repo-modules</id>
		<name>Modules</name>
		<url>http://mavenrepo.openmrs.org/nexus/content/repositories/modules/</url>
	</repository>
	<snapshotRepository>
		<id>openmrs-repo-snapshots</id>
		<name>OpenMRS Snapshots</name>
		<url>http://mavenrepo.openmrs.org/nexus/content/repositories/snapshots</url>
	</snapshotRepository>
</distributionManagement>

HI Daniel, Here is the messagingmodule config file.

<!-- Messaging Module Properties -->
<id>@MODULE_ID@</id>
<name>@MODULE_NAME@</name>
<version>@MODULE_VERSION@</version>
<package>@MODULE_PACKAGE@</package>
<author>Dieterich Lawson</author>
<description>
	Provides short messaging functionality for OpenMRS including SMS, email and twitter.
</description>
<activator>@MODULE_PACKAGE@.MessagingModuleActivator</activator>
<require_version>0.9.0-beta</require_version>

When I compile, i get the following build error: Failed to execute goal on project messaging-api: Could not resolve dependencies for project org.openmrs.module:messaging-api:jar:0.9.0-beta: Could not find artifact org.smslib:smslib:jar:3.5.0 in openmrs-repo (http://mavenrepo.openmrs.org/nexus/content/repositories/public) -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch. Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles: [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

After correcting the problems, you can resume the build with the command mvn -rf :messaging-api

Did you try using platform 2.0?

HI Daniel, I didn’t try on platform 2.0. My scope of the project is on 1.11.4. I have everything set up on 1.11.4. Thanks tenzin

Can you try 1.11.6 to see if it has this bug fixed?

Hi Daniel, I am able to upload the messaging module omod file on 1.11.6. Thank you. Tenzin