We have created a plugin for our Joget installation and have successfully uploaded and integrated into our system on Tomcat over Windows without any issues. We've recently moved to Tomcat over Linux, but when we try to upload the plugin, it does not appear in the list and we get an exception in the server log "org.osgi.framework.BundleException: Unable to cache bundle: file:/usr/share/tomcat6/wflow/app_plugins/MyPlugin.jar". I've changed the permissions (to 777) of all folders and we get the same error. The MyPlugin.jar is in the app_plugins directory, so it is uploaded. When I restart the server, I see the same error (even if the permissions of the MyPlugin.jar are also 777.)

Can anyone give any insights? What are we doing wrong?

Thanks!

-Pete

  • No labels

4 Comments

  1. Hi there,

    Can you provide us with more information such as the version and build of Joget that you are using, which Linux variant that you are using and also the full server log on the exception?

    Thanks

    1. Hi Hugo,

      We are using Joget v3.0. We are trying to deploy on 2.6.32 GNU/Linux on Tomcat 6.0. We are compiling the plugin JAR on a Windows machine and copying it to the Linux machine.

      Here is the full exception.

      ERROR 12 Aug 2013 15:44:05 org.joget.plugin.base.PluginManager  - Failed bundle installation from file:/usr/share/tomcat6/wflow/app_plugins/AdvancedInboxPlugin-1.0-SNAPSHOT.jar: org.osgi.framework.BundleException: Unable to cache bundle: file:/usr/share/tomcat6/wflow/app_plugins/AdvancedInboxPlugin-1.0-SNAPSHOT.jar
      
      org.osgi.framework.BundleException: Unable to cache bundle: file:/usr/share/tomcat6/wflow/app_plugins/AdvancedInboxPlugin-1.0-SNAPSHOT.jar
      
              at org.apache.felix.framework.Felix.installBundle(Felix.java:2070)
      
              at org.apache.felix.framework.Felix.installBundle(Felix.java:2026)
      
              at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:130)
      
              at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:108)
      
              at org.joget.plugin.base.PluginManager.installBundle(PluginManager.java:199)
      
              at org.joget.plugin.base.PluginManager.upload(PluginManager.java:445)
      
              at org.joget.apps.app.controller.ConsoleWebController.consoleSettingPluginUploadSubmit(ConsoleWebController.java:3353)
      
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      
              at java.lang.reflect.Method.invoke(Method.java:606)
      
              at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:421)
      
              at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:136)
      
              at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:326)
      
              at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:313)
      
              at org.joget.commons.spring.web.ParameterizedAnnotationMethodHandlerAdapter.handle(ParameterizedAnnotationMethodHandlerAdapter.java:28)
      
              at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
      
              at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
      
              at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
      
              at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
      
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
      
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      
              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:235)
      
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:399)
      
              at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
      
              at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
      
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
      
              at org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:67)
      
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
      
              at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
      
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
      
              at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
      
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
      
              at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278)
      
              at org.joget.apps.workflow.security.WorkflowHttpAuthProcessingFilter.doFilterHttp(WorkflowHttpAuthProcessingFilter.java:57)
      
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
      
              at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
      
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
      
              at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
      
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)
      
              at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:188)
      
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
      
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
      
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      
              at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
      
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
      
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
      
              at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
      
              at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
      
              at java.lang.Thread.run(Thread.java:724)
      
      Caused by: java.io.IOException: Unable to create archive directory.
      
              at org.apache.felix.framework.cache.BundleArchive.initialize(BundleArchive.java:828)
      
              at org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:137)
      
              at org.apache.felix.framework.cache.BundleCache.create(BundleCache.java:158)
      
              at org.apache.felix.framework.Felix.installBundle(Felix.java:2066)
      
              ... 68 more
      
      Aug 12, 2013 3:44:05 PM org.apache.tomcat.util.http.Parameters processParameters
      
      WARNING: Parameters: Invalid chunk '' ignored.
      
      Aug 12, 2013 3:44:05 PM org.apache.tomcat.util.http.Parameters processParameters
      
      WARNING: Parameters: Invalid chunk '=' ignored.
      
       
      
      1. Any suggestions for this?

        1. We figured out a work-around for this problem. We originally installed Tomcat ourselves and ran the default Tomcat start-up script to start the server. 

          We went back and looked at the instructions on Linux Bundle and we no longer received the error when uploading plugins. It may have been a permissions problem with the wflow folder where the plugins were being stored when they were uploaded, even though we changed the permissions on that folder.