We are still on 5.13 but I thought we may upgrade to 5.14 so that we have the awesome docker support out of the box.
I did this:
git checkout v5.14
mvn -Pct -DskipTests=true clean package
mvn -Pct docker:run
The containers started up but then it failes with this:
dev_dataverse> [#|2023-11-09T14:37:07.003+0000|INFO|Payara 6.2023.8|org.jboss.weld.Bootstrap|_ThreadID=28;_ThreadName=RunLevelControllerThread-1699540613511;_TimeMillis=1699540627003;_LevelValue=800;|
dev_dataverse> WELD-000119: Not generating any bean definitions from org.omnifaces.cdi.push.SocketSessionManager because of underlying class loading error: Type javax.websocket.CloseReason$CloseCode not found. If this is unexpected, enable DEBUG logging to see the full error.|#]
dev_dataverse>
dev_dataverse> [#|2023-11-09T14:37:07.011+0000|SEVERE|Payara 6.2023.8|javax.enterprise.system.core|_ThreadID=28;_ThreadName=RunLevelControllerThread-1699540613511;_TimeMillis=1699540627011;_LevelValue=1000;_MessageID=NCLS-CORE-00026;|
dev_dataverse> Exception during lifecycle processing
dev_dataverse> org.glassfish.deployment.common.DeploymentException: CDI deployment failure:javax/faces/component/behavior/ClientBehaviorHolder -- javax/faces/component/behavior/ClientBehaviorHolder
dev_dataverse> at java.base/java.lang.ClassLoader.defineClass1(Native Method)
dev_dataverse> at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
dev_dataverse> at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
dev_dataverse> at org.glassfish.web.loader.WebappClassLoader.defineLoadedClass(WebappClassLoader.java:3504)
dev_dataverse> at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:1246)
dev_dataverse> at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1818)
dev_dataverse> at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1696)
dev_dataverse> at java.base/java.lang.Class.getEnclosingMethod0(Native Method)
dev_dataverse> at java.base/java.lang.Class.hasEnclosingMethodInfo(Unknown Source)
dev_dataverse> at java.base/java.lang.Class.isLocalOrAnonymousClass(Unknown Source)
dev_dataverse> at java.base/java.lang.Class.isAnonymousClass(Unknown Source)
dev_dataverse> at org.jboss.weld.bootstrap.AnnotatedTypeLoader.internalLoadAnnotatedType(AnnotatedTypeLoader.java:92)
dev_dataverse> at org.jboss.weld.bootstrap.AnnotatedTypeLoader.loadAnnotatedType(AnnotatedTypeLoader.java:75)
dev_dataverse> at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:92)
dev_dataverse> at org.jboss.weld.bootstrap.BeanDeployer.addLoadedClasses(BeanDeployer.java:199)
dev_dataverse> at org.jboss.weld.bootstrap.BeanDeployment.createClasses(BeanDeployment.java:197)
dev_dataverse> at org.jboss.weld.bootstrap.WeldStartup.startInitialization(WeldStartup.java:409)
dev_dataverse> at org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:80)
dev_dataverse> at org.glassfish.weld.WeldDeployer.processApplicationLoaded(WeldDeployer.java:579)
dev_dataverse> at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:437)
dev_dataverse> at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
dev_dataverse> at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:344)
dev_dataverse> at com.sun.enterprise.v3.server.ApplicationLifecycle.prepare(ApplicationLifecycle.java:580)
dev_dataverse> at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:570)
dev_dataverse> at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:556)
dev_dataverse> at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:552)
dev_dataverse> at java.base/java.security.AccessController.doPrivileged(Unknown Source)
dev_dataverse> at java.base/javax.security.auth.Subject.doAs(Unknown Source)
dev_dataverse> at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:551)
dev_dataverse> at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:582)
dev_dataverse> at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:574)
dev_dataverse> at java.base/java.security.AccessController.doPrivileged(Unknown Source)
dev_dataverse> at java.base/javax.security.auth.Subject.doAs(Unknown Source)
dev_dataverse> at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:573)
dev_dataverse> at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1497)
dev_dataverse> at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1879)
dev_dataverse> at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1755)
dev_dataverse> at com.sun.enterprise.admin.cli.embeddable.CommandExecutorImpl.executeCommand(CommandExecutorImpl.java:183)
dev_dataverse> at com.sun.enterprise.admin.cli.embeddable.CommandExecutorImpl.run(CommandExecutorImpl.java:96)
dev_dataverse> at fish.payara.boot.runtime.BootCommand.execute(BootCommand.java:69)
dev_dataverse> at fish.payara.boot.runtime.BootCommands.executeCommands(BootCommands.java:166)
dev_dataverse> at fish.payara.boot.runtime.BootCommands.executeCommands(BootCommands.java:160)
dev_dataverse> at com.sun.enterprise.v3.bootstrap.BootCommandService.doBootCommands(BootCommandService.java:81)
dev_dataverse> at com.sun.enterprise.v3.bootstrap.BootCommandService.postConstruct(BootCommandService.java:91)
dev_dataverse> at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:303)
dev_dataverse> at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:351)
dev_dataverse> at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:466)
dev_dataverse> at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:281)
dev_dataverse> at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:65)
dev_dataverse> at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2103)
dev_dataverse> at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
dev_dataverse> at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67)
dev_dataverse> at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213)
dev_dataverse> at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144)
dev_dataverse> at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$UpOneLevel.run(CurrentTaskFuture.java:762)
dev_dataverse> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
dev_dataverse> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
dev_dataverse> at java.base/java.lang.Thread.run(Unknown Source)
dev_dataverse> |#]
dev_dataverse>
I think the problem is that it runs Payara 6.2023.8 while the 5.14 version actually is for 5.2022.3 (based on modules/dataverse-parent/pom.xml)
The docker build scripts probably take the latest version of Payara that's why we end up with 6.2023.8.
Can you please help me where I could set an explicit version of Payara to be installed in the container? I just couldn't find it anywhere.
I found this issue of Phil with a similar bug:
https://github.com/IQSS/dataverse/issues/9749
So, it may not be related to the Payara version as it was 5.2022.5 in the issue.
As we said in the call, please check your base image and let us know if it helps!
Yes, it was the base image. So, the best way to do is:
git checkout v5.14
mvn -Pct -f modules/container-base install
mvn -Pct clean package
mvn -Pct docker:run
Ah, I see you mentioned the fix here too: https://github.com/IQSS/dataverse/issues/9749#issuecomment-1804095033
Thanks!
Balázs Pataki has marked this topic as resolved.
Last updated: Oct 30 2025 at 05:14 UTC