org.apache.commons.dbcp.BasicDataSourceFactory not found

Confluence User - 26 Feb, 2016

Hi,

I'm getting this exception during using the jdbc store binder downloaded from the marketplace.

If configured to use default datastore is fine.

But if configured to custom datastore with mysql connection will hit this error.

 

26-Feb-2016 17:26:29.699 SEVERE [http-nio-8080-exec-10] org.apache.catalina.core.ApplicationDispatcher.invoke Servlet.service() for servlet jsp threw exception
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSourceFactory not found by org.joget.tutorial.jdbc_store_binder [1]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1558)
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.joget.tutorial.JdbcStoreBinder.createDataSource(JdbcStoreBinder.java:189)
at org.joget.tutorial.JdbcStoreBinder.store(JdbcStoreBinder.java:79)
at org.joget.apps.form.service.FormServiceImpl.recursiveExecuteFormStoreBinders(FormServiceImpl.java:526)
at org.joget.apps.form.service.FormServiceImpl.executeFormStoreBinders(FormServiceImpl.java:496)
at org.joget.apps.form.service.FormServiceImpl.submitForm(FormServiceImpl.java:286)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy31.submitForm(Unknown Source)
at org.joget.apps.app.service.AppServiceImpl.submitForm(AppServiceImpl.java:1241)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201)
at com.sun.proxy.$Proxy57.submitForm(Unknown Source)
at org.joget.apps.form.lib.SubmitButton.actionPerformed_aroundBody6(SubmitButton.java:36)
at org.joget.apps.form.lib.SubmitButton.actionPerformed_aroundBody7$advice(SubmitButton.java:94)
at org.joget.apps.form.lib.SubmitButton.actionPerformed(SubmitButton.java:1)
at org.joget.apps.form.service.FormUtil.executeActions(FormUtil.java:574)
at org.joget.apps.form.service.FormUtil.executeActions(FormUtil.java:582)
at org.joget.apps.form.service.FormUtil.executeActions(FormUtil.java:582)
at org.joget.apps.form.service.FormUtil.executeActions(FormUtil.java:582)
at org.joget.apps.form.service.FormServiceImpl.executeFormActions(FormServiceImpl.java:443)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201)
at com.sun.proxy.$Proxy31.executeFormActions(Unknown Source)
at org.joget.apps.userview.lib.FormMenu.submitDataForm_aroundBody34(FormMenu.java:478)
at org.joget.apps.userview.lib.FormMenu.submitDataForm_aroundBody35$advice(FormMenu.java:94)
at org.joget.apps.userview.lib.FormMenu.submitDataForm(FormMenu.java:1)
at org.joget.apps.userview.lib.FormMenu.submitForm_aroundBody26(FormMenu.java:227)
at org.joget.apps.userview.lib.FormMenu.submitForm_aroundBody27$advice(FormMenu.java:94)
at org.joget.apps.userview.lib.FormMenu.submitForm(FormMenu.java:1)
at org.joget.apps.userview.lib.FormMenu.getJspPage_aroundBody20(FormMenu.java:120)
at org.joget.apps.userview.lib.FormMenu.getJspPage_aroundBody21$advice(FormMenu.java:94)
at org.joget.apps.userview.lib.FormMenu.getJspPage(FormMenu.java:1)
at org.joget.apps.userview.model.UserviewMenu.getReadyJspPage_aroundBody12(UserviewMenu.java:132)
at org.joget.apps.userview.model.UserviewMenu.getReadyJspPage_aroundBody13$advice(UserviewMenu.java:94)
at org.joget.apps.userview.model.UserviewMenu.getReadyJspPage(UserviewMenu.java:1)
at org.joget.apps.userview.service.UserviewUtil.getUserviewMenuHtml(UserviewUtil.java:91)
at org.joget.apps.userview.service.UserviewThemeProcesser.getContent(UserviewThemeProcesser.java:561)
at org.joget.apps.userview.service.UserviewThemeProcesser.getHtml(UserviewThemeProcesser.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
at org.apache.el.parser.AstValue.getValue(AstValue.java:167)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:115)
at org.apache.jsp.WEB_002dINF.jsp.ubuilder.v5view_jsp._jspx_meth_c_005fset_005f0(v5view_jsp.java:223)
at org.apache.jsp.WEB_002dINF.jsp.ubuilder.v5view_jsp._jspx_meth_c_005fif_005f0(v5view_jsp.java:185)
at org.apache.jsp.WEB_002dINF.jsp.ubuilder.v5view_jsp._jspService(v5view_jsp.java:138)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:431)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1244)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.joget.commons.util.AnalyzerFilter.doFilter_aroundBody0(AnalyzerFilter.java:17)
at org.joget.commons.util.AnalyzerFilter.doFilter_aroundBody1$advice(AnalyzerFilter.java:54)
at org.joget.commons.util.AnalyzerFilter.doFilter(AnalyzerFilter.java:1)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
at org.joget.apps.workflow.security.WorkflowHttpAuthProcessingFilter.doFilter(WorkflowHttpAuthProcessingFilter.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
at org.joget.commons.spring.web.CustomDelegatingFilterProxy.doFilter(CustomDelegatingFilterProxy.java:30)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

plugins

8


29 Feb, 2016
confluenceUser
confluenceUser

But if configured to custom datastore with mysql connection will hit this error.

With the way you explained it, it seems that your custom configurations is the problem. Probably your

Custom JDBC Driver or URL is wrong.
01 Mar, 2016
confluenceUser
confluenceUser

Hi,

I'm also getting this similar error, looking at the exception I suspect the OSGI configuration of the plugin might not entirely correct.

02 Mar, 2016
confluenceUser
1
confluenceUser

Hey there, please help yourself to the latest update of the plugin at http://marketplace.joget.com/jw/web/userview/mp/mpp/_/vad?id=jdbc_store_binder-v1. There have been some fixes applied based on your findings. Thanks for reporting this. Cheers

02 Mar, 2016
confluenceUser
confluenceUser

Hi Hugo, Thanks for your update of the plugin. Is it possible to get the download link of source code? Like previously: http://dev.joget.org/community/display/KBv5/How+to+develop+a+JDBC+Form+Store+Binder?preview=/21594397/21594533/jdbc_store_binder.zip So that I can customize the plugin.

02 Mar, 2016
confluenceUser
confluenceUser

Hi, I updated the source code in the tutorial. You can download it from the link below: http://dev.joget.org/community/download/attachments/21594397/jdbc_store_binder_src.zip

02 Mar, 2016
confluenceUser
confluenceUser

Hi Hugo, Appreciated the update of the plugin. I have downloaded and tested, the custom datasource is working now, even the test connection bug is fixed. Btw, Im also using another plugin call 'Database Update Tool'. It having the same problem like jdbc store binder previously. I go through the source code changes in jdbc store binder, and make the same changes in my database update tool plugin, by implement the class PluginWebSupport, and add in additional test connection button for it (for quick testing). But it still having the same exception like previously if Im using custom datasource, default one is fine. Kindly advise. Thanks.

02 Mar, 2016
confluenceUser
confluenceUser

Hi Hugo, Appreciated the update of the plugin. I have downloaded and tested, the custom datasource is working now, even the test connection bug is fixed. Btw, Im also using another plugin call 'Database Update Tool'. It having the same problem like jdbc store binder previously. I go through the source code changes in jdbc store binder, and make the same changes in my database update tool plugin, by implement the class PluginWebSupport, and add in additional test connection button for it (for quick testing). But it still having the same exception like previously if Im using custom datasource, default one is fine. Kindly advise. Thanks.

I tested the "Database Update Tool" in version 5.0-RC11 and it is working fine. Are you mean you has a custom build "Database Update Tool" and it is not working? The JDBC Binder issue is due to the commons-dbcp dependency is not included in POM. Please refer to this.

02 Mar, 2016
confluenceUser
confluenceUser

Hi Owen Ong, Yes, Im building custom database update tool, every things is fine now, thanks for your reply. (Y)

RELATED QUESTIONS

Your answer


To answer a question you'll need an account.

Print