I did not wish to install the joget 3.0.3 Windows Bundle using a setup program because I already operate a MySql 5 database server and a JBoss JEE Application Server (with embedded Tomcat 6).

With a little help, I was shown where to download the Zip file version which contained the Sql script to populate a new schema for joget and also the directions as to how to modify the joget DataSource properties to connect to that schema.

I can now successfully start joget using the batch file tomcat6-run.bat

However, when I tried to deploy the two joget war files into my JBoss server, there were a large number of unsatisfied dependencies on third part libraries.

I noted that the Glassfish server seems to be a supported environment for joget.  I couldn't find any reference to jboss.

Are there any instructions available for deploying to an appserver the joget war applications and their required libraries ?

Thanks

Gerry Matte

  • No labels

15 Comments

  1. Hi Gerry,

    We had tried deploy Joget Workflow war on JBoss 5.1.0 GA previously. Unfortunately there is a bug in JBoss itself, one of the library (xercesImpl.jar) we used in Joget Workflow has classloader issue in JBoss.

    Refer to Jboss bug ticket https://jira.jboss.org/jira/browse/JBAS-7210. The description of bug as below:

    The parsing of the context.xml by the JBossContextConfig class is using the tccl which causes problems when the war app has tried to load its own xml parser.

    According to them, the bug is actually fixed but not available for community yet.

    Refer to this link http://community.jboss.org/wiki/WhyDoIGetJavalangClassCastExceptionOrgapachexercesparsersXIncludeAwareParserConfigurationInAS-5, actually there is a workaround which is delete the jar file from either Joget Workflow or JBoss. But this solution cannot apply here because Joget Workflow is using a different version of xercesImpl.jar.

    There is a available patch code provided by JBoss user in this forum thread http://community.jboss.org/thread/65754?tstart=0 which is required to be built manually. We have not yet try this patch code.

    I just added a new page about deploying Joget Workflow on Glassfish. Please refer to this Deploy Joget Workflow on Glassfish (Linux). The instruction is for Ubuntu, but the steps should be almost same for other OS too.

    Best regards,

    Owen 

  2. Hey there!

    Is it possible for a jogget application or a Process , to create a BUILD (a WAR)  file of the process you made and upload it to any other tomcat hosting and run it just like any other web app ?

    What I am looking for is a proof of concept that If I make a small process (suppose the  LeaveApproval Example of Jogget) and make a BUILD file (war)  and place it on a normal tomcat and run it .. will it work ?

    Secondly If yes then How will I create a war file ...

    Thanx;

    -Waqar

  3. Hi

    Has there been any attempt to run Joget on JBoss 7?

    1. Good to know that you are attempting. Please share with us on your findings soon!

      Thanks.

  4. Hello ,

    I have tried to deploy jw.war to Glassfish 4.1 with some errors. At the beginning it was tracking-mode at web.xml file, so a remove it and use the session-timeout instead. later it was the hibernate.dialect not available in the files:

    commonsApplicationContext.xml

    directoryApplicationContext.xml

    wfengineApplicationContext.xml

    I just add the hibernate.dialect to those files, but now I have the following exception:

    C:\Program Files\glassfish-4.1\bin>asadmin deploy jw.war remote failure: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'workflowManager' defined in class path resource [wfengineApplicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.joget.workflow.model.service.WorkflowManagerImpl]: Constructor threw exception; nested exception is org.enhydra.shark.api.RootError. Please see server.log for more details.

    Command deploy failed.

    as you can see the last nested exception is org.enhydra.shark.api.RootError, but no more information are shown.

    any comment about this, any suggestion ??? it seems at the constructor of WorkflowManagerImpl an object related to the Shark API launch an error, but with out any detail.

    Thanks,

      1. Thank you Bastiana, 

        but those steps are for Glassfish 3 and Joget V3.

        I am using Joget V4 and I would like to use the Glassfish 4.1.

        By the way, I followed those steps (for the Joget V3 and Glassfish3) and doing my additional steps I could get the error mentioned above.

        Could you please follow the same steps from above and tell any suggestion about the Shark API RootError??

        Thanks in advance.

        1. Hi Francisco,

          I've tested on Glassfish 4.1, and it works after removing the tracking-mode tag from web.xml. It seems like the error you're getting could be a database connection issue. You might want to try checking your Custom Database Configuration?

          1. Hi Julian ... 

            could you tell me if you try it in a Linux or Windows environment ?? 

            Best regards,

          2. Hi Julian,

            I did test Glassfish+joget it in a windows environment and using the same mysql configuration, so I dont think it was a database configuration ...

            Last weekend I installed a CentOS + joget 4.0.8 + PostgreSQL ... it is working using the default appserver (tomcat) but I would like to use Glassfish or other appserver in the future.

            best regards,

            1. Hi Francisco,

              I tested in a Linux and Mac environment. Based on the short log snippet you provided earlier it looks like some kind of problem connecting to the database. Maybe you could share your log file?

              Best Regards
              Julian

              1. Hi Julian, 

                great news .. now Joget is working with Glassfish 4.1 under Linux ... 

                the problem is for Windows environment ... here is the last exception from the logs files.

                [2014-11-08T13:40:36.317-0500] [glassfish 4.1] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=42 _ThreadName=admin-listener(3)] [timeMillis: 1415472036317] [levelValue: 1000] [[
                  Exception during lifecycle processing
                java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'workflowManager' defined in class path resource [wfengineApplicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.joget.workflow.model.service.WorkflowManagerImpl]: Constructor threw exception; nested exception is org.enhydra.shark.api.RootError at com.sun.enterprise.web.WebApplication.start(WebApplication.java:168) at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122) at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291) at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:352) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:500) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Unknown Source) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534) at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565) at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Unknown Source) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464) at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722) at org.glassfish.admin.rest.resources.admin.CommandResource.executeCommand(CommandResource.java:404) at org.glassfish.admin.rest.resources.admin.CommandResource.execCommandSimpInMultOut(CommandResource.java:234) 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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:387) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:331) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:103) at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028) at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:365) at org.glassfish.admin.rest.adapter.JerseyContainerCommandService$3.service(JerseyContainerCommandService.java:173) at org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:179) at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) at java.lang.Thread.run(Unknown Source)
                ]]

              2. Hi Julian,

                I have attached a log file from my joget at glassfish with linux environment  .. i have some problems trying to init a process, watch data list, and other ... 

                it works for a while but later it show the errors that I mention ... 

                joget-20141121.log

              3. Hello Julian,

                here I have another question ... with Glassfish in Linux environment it is possible to me to enter data in my forms, 

                but when i do click to run a process I've got the following error message:

                javax.el.ELException: org.springframework.transaction.TransactionSystemException: Unexpected internal transaction state; nested exception is java.lang.IllegalStateException: This method needs a transaction for the calling thread and none exists. Possible causes: either you didn't start a transaction, it rolledback due to timeout, or it was committed already. ACTIONS: You can try one of the following: 1. Make sure you started a transaction for the thread. 2. Make sure you didn't terminate it yet. 3. Increase the transaction timeout to avoid automatic rollback of long transactions; checkhttp://www.atomikos.com/Documentation/JtaProperties for how to do this.

                it seems a configuration param .. .what do you think ??

                best regards,

                Francisco

                1. Hi Francisco,

                  Based on the log provided, the errors is due to a missing column in the database:

                    Failed to allocate object id.  Caused by SQLException:
                      SQLState = 42703
                      SQLError = 0
                      SQLMsg   = ERROR: column "objectid" of relation "objectid" does not exist
                  

                  There seems to be something wrong with your database structure, you might want to start from a clean copy of the database from a fresh installation.

                  Best Regards
                  Julian